<?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>110024</bug_id>
          
          <creation_ts>2013-02-16 12:47:48 -0800</creation_ts>
          <short_desc>Move all Structure out-of-line inline methods to StructureInlines.h</short_desc>
          <delta_ts>2013-02-18 09:53:55 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>buildbot</cc>
    
    <cc>ggaren</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>japhet</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kadam</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zarvai</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834776</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-16 12:47:48 -0800</bug_when>
    <thetext>Already rubber stamped by Mark Hahnenberg.  But I&apos;ll put it up to EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834777</commentid>
    <comment_count>1</comment_count>
      <attachid>188723</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-16 12:48:46 -0800</bug_when>
    <thetext>Created attachment 188723
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834778</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-16 12:51:28 -0800</bug_when>
    <thetext>Attachment 188723 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/GNUmakefile.list.am&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp&apos;, u&apos;Source/JavaScriptCore/heap/HandleStack.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/DatePrototype.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.h&apos;, u&apos;Source/JavaScriptCore/runtime/Operations.h&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureInlines.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureRareData.cpp&apos;]&quot; exit_code: 1
Source/JavaScriptCore/runtime/StructureInlines.h:42:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/runtime/StructureInlines.h:60:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/runtime/StructureInlines.h:174:  Missing space before ( in while(  [whitespace/parens] [5]
Total errors found: 3 in 11 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>834783</commentid>
    <comment_count>3</comment_count>
      <attachid>188723</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-16 12:57:40 -0800</bug_when>
    <thetext>Comment on attachment 188723
patch for landing

Attachment 188723 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16593722</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834784</commentid>
    <comment_count>4</comment_count>
      <attachid>188723</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-16 12:57:42 -0800</bug_when>
    <thetext>Comment on attachment 188723
patch for landing

Attachment 188723 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16590669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834790</commentid>
    <comment_count>5</comment_count>
      <attachid>188723</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-16 13:17:46 -0800</bug_when>
    <thetext>Comment on attachment 188723
patch for landing

Attachment 188723 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16586725</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834809</commentid>
    <comment_count>6</comment_count>
      <attachid>188723</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-16 13:39:38 -0800</bug_when>
    <thetext>Comment on attachment 188723
patch for landing

Attachment 188723 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16593728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834830</commentid>
    <comment_count>7</comment_count>
      <attachid>188723</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-02-16 14:39:59 -0800</bug_when>
    <thetext>Comment on attachment 188723
patch for landing

Attachment 188723 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/16590674</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834955</commentid>
    <comment_count>8</comment_count>
      <attachid>188756</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 01:08:10 -0800</bug_when>
    <thetext>Created attachment 188756
work in progress

It turns out that this is harder than it looked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834968</commentid>
    <comment_count>9</comment_count>
      <attachid>188759</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 01:53:36 -0800</bug_when>
    <thetext>Created attachment 188759
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835021</commentid>
    <comment_count>10</comment_count>
      <attachid>188759</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-17 12:37:45 -0800</bug_when>
    <thetext>Comment on attachment 188759
the patch

Attachment 188759 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16595861</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835046</commentid>
    <comment_count>11</comment_count>
      <attachid>188777</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 14:42:37 -0800</bug_when>
    <thetext>Created attachment 188777
the patch

Rebased. (A semantically but not textually conflicting change was the reason for the wk2 failure, above.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835111</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-17 21:34:57 -0800</bug_when>
    <thetext>Attachment 188777 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackFunction.cpp&apos;, u&apos;Source/JavaScriptCore/CMakeLists.txt&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/GNUmakefile.list.am&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/JavaScriptCore/Target.pri&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.h&apos;, u&apos;Source/JavaScriptCore/bytecode/EvalCodeCache.h&apos;, u&apos;Source/JavaScriptCore/bytecode/SamplingTool.h&apos;, u&apos;Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp&apos;, u&apos;Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/Label.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGByteCodeParser.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGFPRInfo.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGRegisterBank.h&apos;, u&apos;Source/JavaScriptCore/heap/HandleStack.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITWriteBarrier.h&apos;, u&apos;Source/JavaScriptCore/parser/Nodes.h&apos;, u&apos;Source/JavaScriptCore/parser/Parser.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserError.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserModes.h&apos;, u&apos;Source/JavaScriptCore/parser/SourceProvider.cpp&apos;, u&apos;Source/JavaScriptCore/parser/SourceProvider.h&apos;, u&apos;Source/JavaScriptCore/runtime/ArrayPrototype.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/DatePrototype.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/Executable.h&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.h&apos;, u&apos;Source/JavaScriptCore/runtime/Operations.h&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureInlines.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureRareData.cpp&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/ForwardingHeaders/parser/SourceProviderCache.h&apos;, u&apos;Source/WebCore/loader/cache/CachedScript.cpp&apos;]&quot; exit_code: 1
Source/JavaScriptCore/runtime/StructureInlines.h:41:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/runtime/StructureInlines.h:59:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/runtime/StructureInlines.h:168:  Missing space before ( in while(  [whitespace/parens] [5]
Source/JavaScriptCore/jit/JITWriteBarrier.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/dfg/DFGFPRInfo.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/parser/SourceProvider.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/parser/SourceProvider.h:46:  The parameter name &quot;cache&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/bytecompiler/Label.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 8 in 35 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>835120</commentid>
    <comment_count>13</comment_count>
      <attachid>188795</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 21:53:45 -0800</bug_when>
    <thetext>Created attachment 188795
patch for landing

I think I figured it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835124</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-17 21:55:57 -0800</bug_when>
    <thetext>Attachment 188795 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackFunction.cpp&apos;, u&apos;Source/JavaScriptCore/CMakeLists.txt&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/GNUmakefile.list.am&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj&apos;, u&apos;Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/JavaScriptCore/Target.pri&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.h&apos;, u&apos;Source/JavaScriptCore/bytecode/EvalCodeCache.h&apos;, u&apos;Source/JavaScriptCore/bytecode/SamplingTool.h&apos;, u&apos;Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp&apos;, u&apos;Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h&apos;, u&apos;Source/JavaScriptCore/bytecompiler/Label.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGByteCodeParser.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGFPRInfo.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGRegisterBank.h&apos;, u&apos;Source/JavaScriptCore/heap/HandleStack.cpp&apos;, u&apos;Source/JavaScriptCore/jit/JITWriteBarrier.h&apos;, u&apos;Source/JavaScriptCore/parser/Nodes.h&apos;, u&apos;Source/JavaScriptCore/parser/Parser.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserError.h&apos;, u&apos;Source/JavaScriptCore/parser/ParserModes.h&apos;, u&apos;Source/JavaScriptCore/parser/SourceProvider.cpp&apos;, u&apos;Source/JavaScriptCore/parser/SourceProvider.h&apos;, u&apos;Source/JavaScriptCore/runtime/ArrayPrototype.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/DatePrototype.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/Executable.h&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObject.h&apos;, u&apos;Source/JavaScriptCore/runtime/Operations.h&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/Structure.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureInlines.h&apos;, u&apos;Source/JavaScriptCore/runtime/StructureRareData.cpp&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/ForwardingHeaders/parser/SourceProviderCache.h&apos;, u&apos;Source/WebCore/loader/cache/CachedScript.cpp&apos;]&quot; exit_code: 1
Source/JavaScriptCore/parser/SourceProvider.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/bytecompiler/Label.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 35 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>835136</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 22:31:20 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/143147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835164</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-17 23:42:38 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Landed in http://trac.webkit.org/changeset/143147

It broke JSVALUE32_64 builds:
In file included from /mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/dfg/DFGOSREntry.cpp:34:0:
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/jit/JIT.h:549:77: error: &apos;ResultType&apos; has not been declared
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/jit/JIT.h:550:77: error: &apos;ResultType&apos; has not been declared

The problem was the following lines in JIT.h:
        void emitAdd32Constant(unsigned dst, unsigned op, int32_t constant, ResultType opType);
        void emitSub32Constant(unsigned dst, unsigned op, int32_t constant, ResultType opType);

Buildfix landed in https://trac.webkit.org/changeset/143154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835167</commentid>
    <comment_count>17</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-17 23:44:45 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Landed in http://trac.webkit.org/changeset/143147
&gt; 
&gt; It broke JSVALUE32_64 builds:
&gt; In file included from /mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/dfg/DFGOSREntry.cpp:34:0:
&gt; /mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/jit/JIT.h:549:77: error: &apos;ResultType&apos; has not been declared
&gt; /mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/JavaScriptCore/jit/JIT.h:550:77: error: &apos;ResultType&apos; has not been declared
&gt; 
&gt; The problem was the following lines in JIT.h:
&gt;         void emitAdd32Constant(unsigned dst, unsigned op, int32_t constant, ResultType opType);
&gt;         void emitSub32Constant(unsigned dst, unsigned op, int32_t constant, ResultType opType);
&gt; 
&gt; Buildfix landed in https://trac.webkit.org/changeset/143154

Ugh, sorry about that.  And thanks for the fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835170</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-17 23:47:18 -0800</bug_when>
    <thetext>and it broke QtWebKit build on Mountain Lion:

Undefined symbols for architecture x86_64:
  &quot;JSC::Structure::get(JSC::JSGlobalData&amp;, JSC::PropertyName)&quot;, referenced from:
      bool JSC::getStaticFunctionSlot&lt;JSC::InternalFunction&gt;(JSC::ExecState*, JSC::HashTable const*, JSC::JSObject*, JSC::PropertyName, JSC::PropertySlot&amp;) in libJavaScriptCore.a(DateConstructor.o)
      JSC::JSObject::getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&amp;) in libJavaScriptCore.a(DateInstance.o)
     (maybe you meant: __ZN3JSC9Structure3getERNS_12JSGlobalDataENS_12PropertyNameERjRPNS_6JSCellE)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [../../bin/jsc] Error 1

Zeno, could you check and fix it, please? (We can&apos;t do it without Mac environment.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835580</commentid>
    <comment_count>19</comment_count>
    <who name="Ádám Kallai">kadam</who>
    <bug_when>2013-02-18 09:53:55 -0800</bug_when>
    <thetext>I fixed it. I added missing header.
http://trac.webkit.org/changeset/143235
http://trac.webkit.org/changeset/143231</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188723</attachid>
            <date>2013-02-16 12:48:46 -0800</date>
            <delta_ts>2013-02-17 01:08:10 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25380</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEzLTAyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBhbGwgU3RydWN0dXJlIG91dC1vZi1saW5lIGlubGluZSBtZXRob2RzIHRvIFN0cnVjdHVy
ZUlubGluZXMuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwMDI0CisKKyAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgTWFyayBIYWhuZW5iZXJnLgor
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGRmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHA6CisgICAgICAgICogaGVhcC9IYW5kbGVTdGFjay5jcHA6CisgICAgICAg
ICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6bWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpp
bnRlcm5hbEFwcGVuZCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJh
bnNpdGlvbmVkRnJvbSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0RW51bWVyYXRpb25D
YWNoZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZW51bWVyYXRpb25DYWNoZSk6CisgICAg
ICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKToKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6aXNW
YWxpZCk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHA6CisKIDIwMTMt
MDItMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggaW5k
ZW50YXRpb24gb2YgU3RydWN0dXJlLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNDMxMDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNzYwLDYgKzc2MCw3IEBA
IGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZUNoYWluLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
IFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggXApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2oJKHJldmlzaW9uIDE0MzEwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzM4LDYgKzEzMzgsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTdHJ1Y3R1cmVJbmxp
bmVzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHJ1bnRpbWVcU3RydWN0dXJlUmFyZURhdGEuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDMxMDcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBACiAJCTBGOTZFQkIzMTY2NzZFRjYw
MDhCQURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NkVCQjExNjY3NkVGNDAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTc0OTZGMTY4
N0FERTIwMEE0RkY2QSAvKiBKU0NlbGxJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8qIFBy
ZWNpc2VKdW1wVGFyZ2V0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk4MjA1RDE2QkZFMzdGMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRz
LmNwcCAqLzsgfTsKLSAgICAgICAgICAgICAgICAwRjk4MjA2MTE2QkZFMzgzMDAyNDBEMDIgLyog
UHJlY2lzZUp1bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk4MjA1RTE2QkZFMzdGMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY5
ODIwNjExNkJGRTM4MzAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5ODIwNUUxNkJGRTM3RjAwMjQw
RDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVBRDM4NyAvKiBEaXNhc3Nl
bWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5RDMzNkUxNjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5jcHAgKi87IH07CiAJCTBG
OUZDOEMzMTRFMUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZDOEJGMTRFMUI1
RkIwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAqLzsgfTsKIAkJMEY5RkM4
QzQxNEUxQjYwMDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZDOEMwMTRFMUI1RkIwMEQ1
MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI1NCw2ICsyNTQsNyBAQAogCQkwRkM4MTUwQjE0
MDQzQzBFMDBDRkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4MTUwODE0MDQzQkNBMDBDRkE2MDMg
LyogV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAgKi87IH07CiAJCTBGQzgxNTE1MTQwNTExOUIwMENG
QTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZD
ODE1MTYxNDA1MTFCNTAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTEyMTQwNTExODYwMENGQTYw
MyAvKiBWVGFibGVTcGVjdHJ1bS5jcHAgKi87IH07CisJCTBGRDJDOTI0MTZEMDFFRTkwMEM3ODAz
RiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RDNDODI2MTQxMTVENDAwMEZEODFDQiAvKiBERkdEcml2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0M4MjAxNDExNUNGODAwRkQ4MUNCIC8q
IERGR0RyaXZlci5jcHAgKi87IH07CiAJCTBGRDNDODI4MTQxMTVENEYwMEZEODFDQiAvKiBERkdE
cml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RDNDODIyMTQxMTVEMEUwMEZEODFDQiAvKiBERkdEcml2ZXIuaCAqLzsgfTsKIAkJMEZEODFBRDIx
NTRGQjRFRTAwOTgzRTcyIC8qIERGR0RvbWluYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEODFBQ0YxNTRGQjRFQjAwOTgzRTcyIC8qIERG
R0RvbWluYXRvcnMuY3BwICovOyB9OwpAQCAtMTE0Nyw2ICsxMTQ4LDcgQEAKIAkJMEZDODE1MTIx
NDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90
VmlzaXRvcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xvdFZp
c2l0b3JJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJDOTIzMTZE
MDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZEM0M4MjAxNDExNUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdEcml2ZXIuY3BwOyBwYXRoID0gZGZnL0RG
R0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNDODIyMTQxMTVE
MEUwMEZEODFDQiAvKiBERkdEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gREZHRHJpdmVyLmg7IHBhdGggPSBkZmcvREZHRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGRDU2NTIyMTZBQjc4MEEwMDE5NzY1MyAvKiBERkdCYXNpY0Jsb2NrSW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYXNpY0Jsb2NrSW5s
aW5lcy5oOyBwYXRoID0gZGZnL0RGR0Jhc2ljQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNTMwLDYgKzI1MzIsNyBAQAogCQkJCUJDREUzQUIxMEU2QzgyQ0Yw
MDE0NTNBNyAvKiBTdHJ1Y3R1cmUuaCAqLywKIAkJCQk3RTRFRTcwRTBFQkI3QTVCMDA1OTM0QUEg
LyogU3RydWN0dXJlQ2hhaW4uY3BwICovLAogCQkJCTdFNEVFNzA4MEVCQjc5NjMwMDU5MzRBQSAv
KiBTdHJ1Y3R1cmVDaGFpbi5oICovLAorCQkJCTBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAvKiBT
dHJ1Y3R1cmVJbmxpbmVzLmggKi8sCiAJCQkJQzJGMEYyRDAxNkJBRUVFOTAwMTg3QzE5IC8qIFN0
cnVjdHVyZVJhcmVEYXRhLmNwcCAqLywKIAkJCQlDMkZFMThBMzE2QkFFQzQwMDBBRjMwNjEgLyog
U3RydWN0dXJlUmFyZURhdGEuaCAqLywKIAkJCQlDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIgLyog
U3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggKi8sCkBAIC0zMzUxLDYgKzMzNTQsNyBAQAogCQkJ
CTBGQkUwRjczMTZDMURCMDUwMDgyQzVFOCAvKiBERkdDUFNSZXRocmVhZGluZ1BoYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkJFMEY3NTE2QzFEQjBCMDA4MkM1RTggLyogREZHUHJlZGljdGlv
bkluamVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJFMEY3NzE2QzFEQjEyMDA4
MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEMkM5
MjQxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNp
b24gMTQzMTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDk2LDExICsxNDk2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgfQogI2VuZGlmCiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWUgU3RydWN0dXJlOjpwcm90b3R5
cGVGb3JMb29rdXAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gcHJvdG90eXBlRm9yTG9va3VwKGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpOwotICAg
IH0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBDb2RlQmxvY2tfaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDE0MzEwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiREZH
QXJyYXlNb2RlLmgiCiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiR2V0
QnlJZFN0YXR1cy5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1wVGFyZ2V0cy5oIgogI2luY2x1ZGUg
IlB1dEJ5SWRTdGF0dXMuaCIKICNpbmNsdWRlICJSZXNvbHZlR2xvYmFsU3RhdHVzLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTdGFjay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCShyZXZpc2lvbiAx
NDMxMDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTdGFjay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJIYW5kbGVTdGFjay5oIgog
CiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNDMxMDcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
MTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiRGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJEYXRl
SW5zdGFuY2UuaCIKICNpbmNsdWRlICJFcnJvci5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIK
ICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiBIQVZFKExBTkdJTkZP
X0gpCiAjaW5jbHVkZSA8bGFuZ2luZm8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE0MzEwNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVk
ZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCi0jaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aCIKICNpbmNsdWRlICJKU0NhbGxiYWNrRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NhbGxiYWNr
T2JqZWN0LmgiCkBAIC03MSw2ICs3MCw3IEBACiAjaW5jbHVkZSAiTnVtYmVyUHJvdG90eXBlLmgi
CiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5
cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUmVnRXhwQ29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNsdWRlICJSZWdFeHBP
YmplY3QuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAkocmV2aXNpb24gMTQzMTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDUxLDU2ICs0NTEsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICFlbnRyeS5pc051bGwoKTsKICAgICB9
CiAKLSAgICBpbmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzT2Jq
ZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gbV9wcm90b3R5cGUuZ2V0KCk7Ci0KLSAgICAgICAg
QVNTRVJUKHR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ1R5cGUpOwotICAgICAgICByZXR1cm4g
Z2xvYmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgSlNW
YWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gcHJvdG90eXBlRm9yTG9va3VwKGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1
Y3R1cmU6OnByb3RvdHlwZUNoYWluKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKLSAgICB7Ci0gICAgICAgIC8vIFdlIGNhY2hlIG91
ciBwcm90b3R5cGUgY2hhaW4gc28gb3VyIGNsaWVudHMgY2FuIHNoYXJlIGl0LgotICAgICAgICBp
ZiAoIWlzVmFsaWQoZ2xvYmFsT2JqZWN0LCBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKSkg
ewotICAgICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVGb3JMb29rdXAoZ2xv
YmFsT2JqZWN0KTsKLSAgICAgICAgICAgIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0KGdsb2Jh
bERhdGEsIHRoaXMsIFN0cnVjdHVyZUNoYWluOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBl
LmlzTnVsbCgpID8gMCA6IGFzT2JqZWN0KHByb3RvdHlwZSktPnN0cnVjdHVyZSgpKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCk7Ci0gICAg
fQotCi0gICAgaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWlu
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGVD
aGFpbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0g
ICAgfQotCi0gICAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbikgY29u
c3QKLSAgICB7Ci0gICAgICAgIGlmICghY2FjaGVkUHJvdG90eXBlQ2hhaW4pCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVG
b3JMb29rdXAoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4q
IGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hlZFByb3RvdHlwZUNoYWluLT5oZWFkKCk7Ci0gICAgICAg
IHdoaWxlKCpjYWNoZWRTdHJ1Y3R1cmUgJiYgIXByb3RvdHlwZS5pc051bGwoKSkgewotICAgICAg
ICAgICAgaWYgKGFzT2JqZWN0KHByb3RvdHlwZSktPnN0cnVjdHVyZSgpICE9IGNhY2hlZFN0cnVj
dHVyZS0+Z2V0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
KytjYWNoZWRTdHJ1Y3R1cmU7Ci0gICAgICAgICAgICBwcm90b3R5cGUgPSBhc09iamVjdChwcm90
b3R5cGUpLT5wcm90b3R5cGUoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcHJvdG90eXBl
LmlzTnVsbCgpICYmICEqY2FjaGVkU3RydWN0dXJlOwotICAgIH0KLQotICAgIGlubGluZSBib29s
IFN0cnVjdHVyZTo6aXNWYWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNo
ZWRQcm90b3R5cGVDaGFpbikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc1ZhbGlkKGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgY2FjaGVkUHJvdG90eXBlQ2hhaW4pOwotICAgIH0K
LQogICAgIGlubGluZSBKU0dsb2JhbE9iamVjdCogRXhlY1N0YXRlOjpkeW5hbWljR2xvYmFsT2Jq
ZWN0KCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzID09IGxleGljYWxHbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0
aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJh
dGlvbnMuaAkocmV2aXNpb24gMTQzMTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1Byb3h5LmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAko
cmV2aXNpb24gMTQzMTA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwNCwxMDUgKzUwNCw2IEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV9zdGF0aWNGdW5jdGlvblJlaWZpZWQ7CiB9OwogCi1pbmxpbmUgU3RydWN0dXJl
KiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlw
ZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdU
eXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKLXsKLSAgICBBU1NFUlQoZ2xvYmFsRGF0YS5z
dHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VSVChjbGFzc0luZm8pOwotICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9i
YWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIHR5cGVJbmZvLCBjbGFzc0luZm8sIGluZGV4aW5nVHlwZSwgaW5saW5lQ2FwYWNpdHkpOwot
ICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgcmV0dXJuIHN0
cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0
ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17Ci0gICAgQVNTRVJUKCFnbG9i
YWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0
cnVjdHVyZShnbG9iYWxEYXRhKTsKLSAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIENyZWF0aW5nRWFybHlDZWxsKTsKLSAgICByZXR1cm4gc3RydWN0dXJlOwotfQotCi1p
bmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotICAgIEFTU0VSVChnbG9iYWxEYXRh
LnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1cmUgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVj
dHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwotICAgIG5ld1N0cnVjdHVyZS0+ZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5zdHJ1Y3R1
cmVIYXNSYXJlRGF0YSgpKQotICAgICAgICBuZXdTdHJ1Y3R1cmUtPmNsb25lUmFyZURhdGFGcm9t
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIG5ld1N0cnVjdHVyZTsKLX0KLSAg
ICAgICAgCi1pbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQotewotICAgIEFTU0VSVChz
dHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRhYmxl
KQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkq
IGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51aWQoKSkuZmlyc3Q7
Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Ci19Ci0K
LWlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQotewotICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElm
TmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQotICAgICAg
ICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0g
bV9wcm9wZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmltcGwoKSkuZmlyc3Q7Ci0gICAg
cmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Ci19Ci0gICAgCi1p
bmxpbmUgYm9vbCBTdHJ1Y3R1cmU6Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIHR5cGVJbmZvKCkubWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVjdCgpID09IGxleGljYWxHbG9iYWxPYmpl
Y3Q7Ci19Ci0KLUFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6aW50ZXJuYWxBcHBlbmQo
SlNDZWxsKiBjZWxsKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nRm9yRGVmYXVsdE1hcmtW
aW9sYXRpb24pOwotICAgIGlmICghY2VsbCkKLSAgICAgICAgcmV0dXJuOwotI2lmIEVOQUJMRShH
Q19WQUxJREFUSU9OKQotICAgIHZhbGlkYXRlKGNlbGwpOwotI2VuZGlmCi0gICAgaWYgKEhlYXA6
OnRlc3RBbmRTZXRNYXJrZWQoY2VsbCkgfHwgIWNlbGwtPnN0cnVjdHVyZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3Zpc2l0Q291bnQrKzsKLSAgICAgICAgCi0gICAgTUFSS19MT0dfQ0hJ
TEQoKnRoaXMsIGNlbGwpOwotCi0gICAgLy8gU2hvdWxkIG5ldmVyIGF0dGVtcHQgdG8gbWFyayBz
b21ldGhpbmcgdGhhdCBpcyB6YXBwZWQuCi0gICAgQVNTRVJUKCFjZWxsLT5pc1phcHBlZCgpKTsK
LSAgICAgICAgCi0gICAgbV9zdGFjay5hcHBlbmQoY2VsbCk7Ci19Ci0KLWlubGluZSBib29sIFN0
cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZVRvRmluZCkKLXsKLSAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRoaXM7IGN1cnJlbnQ7
IGN1cnJlbnQgPSBjdXJyZW50LT5wcmV2aW91c0lEKCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnQg
PT0gc3RydWN0dXJlVG9GaW5kKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotaW5saW5lIHZvaWQgU3RydWN0dXJlOjpzZXRFbnVtZXJhdGlv
bkNhY2hlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciog
ZW51bWVyYXRpb25DYWNoZSkKLXsKLSAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKLSAgICBp
ZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAgYWxsb2NhdGVS
YXJlRGF0YShnbG9iYWxEYXRhKTsKLSAgICByYXJlRGF0YSgpLT5zZXRFbnVtZXJhdGlvbkNhY2hl
KGdsb2JhbERhdGEsIHRoaXMsIGVudW1lcmF0aW9uQ2FjaGUpOwotfQotCi1pbmxpbmUgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogU3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hlKCkKLXsKLSAgICBp
ZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPmVudW1lcmF0aW9uQ2FjaGUoKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFN0cnVjdHVyZUlu
bGluZXNfaAorI2RlZmluZSBTdHJ1Y3R1cmVJbmxpbmVzX2gKKworI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5l
IFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlw
ZUluZm8mIHR5cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCit7CisgICAgQVNTRVJUKGds
b2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoY2xhc3NJbmZvKTsKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVj
dHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCB0eXBlSW5mbywgY2xhc3NJbmZvLCBpbmRleGluZ1R5cGUsIGlubGluZUNh
cGFjaXR5KTsKKyAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBzdHJ1Y3R1cmU7Cit9CisgICAgICAgIAoraW5saW5lIFN0cnVjdHVyZSogU3RydWN0
dXJlOjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEFT
U0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRh
LmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSk7CisgICAgc3RydWN0dXJlLT5maW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhLCBDcmVhdGluZ0Vhcmx5Q2VsbCk7CisgICAgcmV0dXJuIHN0cnVjdHVy
ZTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBjb25zdCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBBU1NFUlQo
Z2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogbmV3U3RydWN0
dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhl
YXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBuZXdTdHJ1Y3R1cmUt
PmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgbmV3U3RydWN0dXJlLT5jbG9uZVJh
cmVEYXRhRnJvbShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOworICAgIHJldHVybiBuZXdTdHJ1Y3R1
cmU7Cit9CisgICAgICAgIAoraW5saW5lIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0KEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3sKKyAg
ICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOworICAgIG1hdGVy
aWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAgICBpZiAoIW1fcHJv
cGVydHlUYWJsZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisKKyAgICBQcm9wZXJ0
eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZChwcm9wZXJ0eU5hbWUudWlk
KCkpLmZpcnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zm
c2V0OworfQorCitpbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKK3sKKyAgICBBU1NFUlQo
c3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOworICAgIG1hdGVyaWFsaXplUHJv
cGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAgICBpZiAoIW1fcHJvcGVydHlUYWJs
ZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisKKyAgICBQcm9wZXJ0eU1hcEVudHJ5
KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZFdpdGhTdHJpbmcobmFtZS5pbXBsKCkpLmZp
cnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0Owor
fQorICAgIAoraW5saW5lIGJvb2wgU3RydWN0dXJlOjptYXNxdWVyYWRlc0FzVW5kZWZpbmVkKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiB0eXBlSW5m
bygpLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSAmJiBnbG9iYWxPYmplY3QoKSA9PSBsZXhpY2Fs
R2xvYmFsT2JqZWN0OworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmludGVy
bmFsQXBwZW5kKEpTQ2VsbCogY2VsbCkKK3sKKyAgICBBU1NFUlQoIW1faXNDaGVja2luZ0ZvckRl
ZmF1bHRNYXJrVmlvbGF0aW9uKTsKKyAgICBpZiAoIWNlbGwpCisgICAgICAgIHJldHVybjsKKyNp
ZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyAgICB2YWxpZGF0ZShjZWxsKTsKKyNlbmRpZgorICAg
IGlmIChIZWFwOjp0ZXN0QW5kU2V0TWFya2VkKGNlbGwpIHx8ICFjZWxsLT5zdHJ1Y3R1cmUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV92aXNpdENvdW50Kys7CisgICAgICAgIAorICAgIE1B
UktfTE9HX0NISUxEKCp0aGlzLCBjZWxsKTsKKworICAgIC8vIFNob3VsZCBuZXZlciBhdHRlbXB0
IHRvIG1hcmsgc29tZXRoaW5nIHRoYXQgaXMgemFwcGVkLgorICAgIEFTU0VSVCghY2VsbC0+aXNa
YXBwZWQoKSk7CisgICAgICAgIAorICAgIG1fc3RhY2suYXBwZW5kKGNlbGwpOworfQorCitpbmxp
bmUgYm9vbCBTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZyb20oU3RydWN0dXJl
KiBzdHJ1Y3R1cmVUb0ZpbmQpCit7CisgICAgZm9yIChTdHJ1Y3R1cmUqIGN1cnJlbnQgPSB0aGlz
OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cHJldmlvdXNJRCgpKSB7CisgICAgICAgIGlm
IChjdXJyZW50ID09IHN0cnVjdHVyZVRvRmluZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSB2b2lkIFN0cnVjdHVyZTo6c2V0
RW51bWVyYXRpb25DYWNoZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUpCit7CisgICAgQVNTRVJUKCFpc0RpY3Rpb25hcnko
KSk7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAg
IGFsbG9jYXRlUmFyZURhdGEoZ2xvYmFsRGF0YSk7CisgICAgcmFyZURhdGEoKS0+c2V0RW51bWVy
YXRpb25DYWNoZShnbG9iYWxEYXRhLCB0aGlzLCBlbnVtZXJhdGlvbkNhY2hlKTsKK30KKworaW5s
aW5lIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIFN0cnVjdHVyZTo6ZW51bWVyYXRpb25DYWNoZSgp
Cit7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiByYXJlRGF0YSgpLT5lbnVtZXJhdGlvbkNhY2hlKCk7Cit9
CisKK2lubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKENvZGVCbG9j
ayogY29kZUJsb2NrKSBjb25zdAoreworICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAoY29k
ZUJsb2NrLT5nbG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6
cHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7
CisgICAgaWYgKGlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsK
KworICAgIEFTU0VSVCh0eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKTsKKyAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUg
U3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoRXhlY1N0YXRlKiBleGVjKSBjb25zdAorewor
ICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWlu
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkg
Y29uc3QKK3sKKyAgICAvLyBXZSBjYWNoZSBvdXIgcHJvdG90eXBlIGNoYWluIHNvIG91ciBjbGll
bnRzIGNhbiBzaGFyZSBpdC4KKyAgICBpZiAoIWlzVmFsaWQoZ2xvYmFsT2JqZWN0LCBtX2NhY2hl
ZFByb3RvdHlwZUNoYWluLmdldCgpKSkgeworICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHBy
b3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOworICAgICAgICBtX2NhY2hlZFByb3RvdHlw
ZUNoYWluLnNldChnbG9iYWxEYXRhLCB0aGlzLCBTdHJ1Y3R1cmVDaGFpbjo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvdHlwZS5pc051bGwoKSA/IDAgOiBhc09iamVjdChwcm90b3R5cGUpLT5zdHJ1
Y3R1cmUoKSkpOworICAgIH0KKyAgICByZXR1cm4gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQo
KTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWlu
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvdG90eXBlQ2hhaW4oZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworfQorCitpbmxp
bmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25zdAoreworICAgIGlmICgh
Y2FjaGVkUHJvdG90eXBlQ2hhaW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEpTVmFs
dWUgcHJvdG90eXBlID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9iamVjdCk7CisgICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4qIGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hlZFByb3RvdHlwZUNo
YWluLT5oZWFkKCk7CisgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAmJiAhcHJvdG90eXBlLmlz
TnVsbCgpKSB7CisgICAgICAgIGlmIChhc09iamVjdChwcm90b3R5cGUpLT5zdHJ1Y3R1cmUoKSAh
PSBjYWNoZWRTdHJ1Y3R1cmUtPmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICArK2NhY2hlZFN0cnVjdHVyZTsKKyAgICAgICAgcHJvdG90eXBlID0gYXNPYmplY3QocHJv
dG90eXBlKS0+cHJvdG90eXBlKCk7CisgICAgfQorICAgIHJldHVybiBwcm90b3R5cGUuaXNOdWxs
KCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBib29sIFN0cnVjdHVyZTo6aXNW
YWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFp
bikgY29uc3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIGNhY2hlZFByb3RvdHlwZUNoYWluKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBTdHJ1Y3R1cmVJbmxpbmVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNpb24gMTQzMTA3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAKLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5s
aW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU1N0cmluZy5o
IgotI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAK
</data>
<flag name="commit-queue"
          id="208928"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188756</attachid>
            <date>2013-02-17 01:08:10 -0800</date>
            <delta_ts>2013-02-17 01:53:36 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>75717</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEzLTAyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBhbGwgU3RydWN0dXJlIG91dC1vZi1saW5lIGlubGluZSBtZXRob2RzIHRvIFN0cnVjdHVy
ZUlubGluZXMuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwMDI0CisKKyAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgTWFyayBIYWhuZW5iZXJnLgor
ICAgICAgICAKKyAgICAgICAgVGhpcyB3YXMgc3VwcG9zZWQgdG8gYmUgZWFzeS4KKyAgICAgICAg
CisgICAgICAgIEJ1dCwgaW5pdGlhbGx5LCB0aGVyZSB3YXMgYSBTdHJ1Y3R1cmUgaW5saW5lIG1l
dGhvZCBpbiBDb2RlQmxvY2suaCwgYW5kIG1vdmluZyB0aGF0CisgICAgICAgIGludG8gU3RydWN0
dXJlSW5saW5lcy5oIG1lYW50IHRoYXQgT3BlcmF0aW9ucy5oIGluY2x1ZGVkIENvZGVCbG9jay5o
LiBUaGlzIHdvdWxkCisgICAgICAgIGNhdXNlIFdlYkNvcmUgYnVpbGQgZmFpbHVyZXMsIGJlY2F1
c2UgQ29kZUJsb2NrLmggdHJhbnNpdGl2ZWx5IGluY2x1ZGVkIHRoZSBKU0MKKyAgICAgICAgcGFy
c2VyICh2aWEgbWFueSwgbWFueSBwYXRocyksIGFuZCB0aGUgSlNDIHBhcnNlciBkZWZpbmVzIHRv
a2VucyB1c2luZyBlbnVtZXJhdGlvbgorICAgICAgICBlbGVtZW50cyB0aGF0IENTU0dyYW1tYXIu
Y3BwIChnZW5lcmF0ZWQgYnkgYmlzb24pIHdvdWxkICNkZWZpbmUuIEZvciBleGFtcGxlLAorICAg
ICAgICBiaXNvbiB3b3VsZCBnaXZlIENTU0dyYW1tYXIuY3BwIGEgI2RlZmluZSBGVU5DVElPTiAx
MjMsIGFuZCB3b3VsZCBkbyBzbyBiZWZvcmUKKyAgICAgICAgaW5jbHVkaW5nIGFueXRoaW5nIGlu
dGVyZXN0aW5nLiBUaGUgSlNDIHBhcnNlciB3b3VsZCBoYXZlIGFuIGVudW0gdGhhdCBpbmNsdWRl
ZAorICAgICAgICBGVU5DVElPTiBhcyBhbiBlbGVtZW50LiBIZW5jZSB0aGUgSlNDIHBhcnNlciBp
bmNsdWRlZCBpbnRvIENTU0dyYW1tYXIuY3BwIHdvdWxkIGhhdmUKKyAgICAgICAgYSB0b2tlbiBl
bGVtZW50IGNhbGxlZCBGVU5DVElPTiBkZWNsYXJlZCBpbiBhbiBlbnVtZXJhdGlvbiwgYnV0IEZV
TkNUSU9OIHdhcworICAgICAgICAjZGVmaW5lJ2QgdG8gMTIzLCBsZWFkaW5nIHRvIGEgcGFyc2Vy
IGVycm9yLgorICAgICAgICAKKyAgICAgICAgV293LgorICAgICAgICAKKyAgICAgICAgU28gSSBy
ZW1vdmVkIGFsbCB0cmFuc2l0aXZlIGluY2x1ZGUgcGF0aHMgZnJvbSBDb2RlQmxvY2suaCB0byB0
aGUgSlNDIFBhcnNlci4gSQorICAgICAgICBiZWxpZXZlIEkgd2FzIGFibGUgdG8gZG8gc28gd2l0
aG91dCBvdXQtb2YtbGluaW5nIGFueXRoaW5nIGludGVyZXN0aW5nIG9yIHBlcmZvcm1hbmNlCisg
ICAgICAgIGNyaXRpY2FsLiBUaGlzIGlzIHByb2JhYmx5IGEgcHVyZWx5IGdvb2QgdGhpbmcgdG8g
aGF2ZSBkb25lOiBpdCB3aWxsIGJlIG5pY2UgdG8gYmUKKyAgICAgICAgYWJsZSB0byBtYWtlIGNo
YW5nZXMgdG8gdGhlIHBhcnNlciB3aXRob3V0IGhhdmluZyB0byBjb21waWxlIHRoZSB1bml2ZXJz
ZS4KKyAgICAgICAgCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgICogaGVhcC9IYW5kbGVTdGFjay5j
cHA6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldCk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6bWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OlNs
b3RWaXNpdG9yOjppbnRlcm5hbEFwcGVuZCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6dHJh
bnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c2V0
RW51bWVyYXRpb25DYWNoZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZW51bWVyYXRpb25D
YWNoZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbik6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6aXNWYWxpZCk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5j
cHA6CisKIDIwMTMtMDItMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgYnl0ZWNvZGUgY29tbWVudHMsIHNpbmNlIGl0IGRvZXNu
J3QgYnVpbGQsIGFuZCBoYXNuJ3QgYmVlbiB1c2VkIGluIGEgd2hpbGUuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHBhcnNlci9Ob2Rlcy5jcHAKICAg
ICBwYXJzZXIvUGFyc2VyLmNwcAogICAgIHBhcnNlci9QYXJzZXJBcmVuYS5jcHAKKyAgICBwYXJz
ZXIvU291cmNlUHJvdmlkZXIuY3BwCiAgICAgcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3Bw
CiAKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00
OTgsNiArNDk4LDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1Jlc3VsdFR5cGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VDb2RlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5oIFwKQEAg
LTc1OSw2ICs3NjAsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlSW5saW5lcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVS
YXJlRGF0YS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVE
YXRhSW5saW5lcy5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAx
NDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5
KQpAQCAtMTkzLDYgKzE5Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhcnNlci9Ob2Rlcy5jcHAg
XAogICAgIHBhcnNlci9QYXJzZXJBcmVuYS5jcHAgXAogICAgIHBhcnNlci9QYXJzZXIuY3BwIFwK
KyAgICBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwIFwKICAgICBwYXJzZXIvU291cmNlUHJvdmlk
ZXJDYWNoZS5jcHAgXAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwIFwKICAgICBw
cm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmggXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJU2hpbXMuaCIKICNpbmNsdWRl
ICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiRXJyb3IuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5
cGUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24gMTQz
MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMzgs
NiArMTMzOCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxydW50aW1lXFN0cnVjdHVyZUlubGluZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTdHJ1Y3R1cmVSYXJl
RGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjQ3OCw2ICsyNDgyLDEwIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBhcnNlclxT
b3VyY2VQcm92aWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHBhcnNlclxTb3VyY2VQcm92aWRlci5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDMxMjIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw4IEBACiAJCTBGMkJEQzUxMTUy
MjhGRkQwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkJEQzUwMTUyMjhGRkEwMENEODkxMCAvKiBE
RkdWYXJpYWJsZUV2ZW50LmNwcCAqLzsgfTsKIAkJMEYyQzU1NkYxNDczOEYzMTAwMTIxRTRGIC8q
IERGR0NvZGVCbG9ja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGMkM1NTZFMTQ3MzhGMkUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyQzU1NzAxNDcz
OEYzNTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQzU1NkQxNDczOEYyRTAwMTIxRTRGIC8qIERGR0Nv
ZGVCbG9ja3MuY3BwICovOyB9OworCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2Vk
UG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjJFODkyRDE2RDAyQkFGMDA5
RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVkSUQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNC
M0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTcxNTNFNjhF
RjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLzsgfTsKIAkJMEYzQjNB
MUIxNTNFNjhGNDAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExODE1M0U2OEVGMDAz
RUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0EyNzE1NDRDOTk1MDAzRUQwRkYgLyog
REZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZHU2lt
cGxpZmljYXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0xMzEsNiArMTMzLDcgQEAKIAkJMEY0Njgw
RDMxNEJCRDE2NzAwQkZFMjcyIC8qIExMSW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNDY4MEQ0MTRCQkQyNDkwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQwMTRCQkM1
RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcCAqLzsgfTsKIAkJMEY0NjgwRDUx
NEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAv
KiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi87IH07CiAJCTBG
NTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1NDFBRjE2MTNDMUZCMDBDRTNF
MjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICovOyB9OwogCQkwRjU1NDFCMjE2MTNDMUZCMDBDRTNF
MjUgLyogU3BlY2lhbFBvaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNTU0MUIwMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTVG
MEY0MTREMTA2MzkwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTVGMEYxMTREMTA2MzYwMEFDNzY0OSAvKiBB
YnN0cmFjdFBDLmNwcCAqLzsgfTsKQEAgLTIwMSw3ICsyMDQsNyBAQAogCQkwRjk2RUJCMzE2Njc2
RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURFMyAvKiBD
b2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk3NDk2
RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTgyMDYwMTZCRkUzODEwMDI0MEQwMiAv
KiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5ODIwNUQxNkJGRTM3RjAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFy
Z2V0cy5jcHAgKi87IH07Ci0gICAgICAgICAgICAgICAgMEY5ODIwNjExNkJGRTM4MzAwMjQwRDAy
IC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5ODIwNUUxNkJGRTM3RjAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFy
Z2V0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGOTgyMDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTgyMDVFMTZCRkUzN0Yw
MDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjlEMzM3MDE2NURCQjkwMDA1QUQzODcgLyogRGlz
YXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUQzMzZFMTY1REJCOEQwMDVBRDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwICovOyB9Owog
CQkwRjlGQzhDMzE0RTFCNUZFMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlGQzhCRjE0
RTFCNUZCMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5jcHAgKi87IH07CiAJCTBG
OUZDOEM0MTRFMUI2MDAwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlGQzhDMDE0RTFCNUZC
MDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTQsNiArMjU3LDggQEAKIAkJMEZDODE1
MEIxNDA0M0MwRTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDODE1MDgxNDA0M0JDQTAwQ0ZB
NjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwICovOyB9OwogCQkwRkM4MTUxNTE0MDUxMTlC
MDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTE0MTQwNTExOEQwMENGQTYwMyAvKiBWVGFibGVTcGVj
dHJ1bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGQzgxNTE2MTQwNTExQjUwMENGQTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4MTUxMjE0MDUxMTg2MDBD
RkE2MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwICovOyB9OworCQkwRkNDQUU0NTE2RDBDRjc0MDBE
MEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQ0NBRTQzMTZEMENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRDJDOTI0
MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyog
U3RydWN0dXJlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGRDNDODI2MTQxMTVENDAwMEZEODFDQiAvKiBERkdEcml2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0M4MjAxNDEx
NUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi87IH07CiAJCTBGRDNDODI4MTQxMTVENEYw
MEZEODFDQiAvKiBERkdEcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAvKiBERkdEcml2ZXIuaCAqLzsg
fTsKIAkJMEZEODFBRDIxNTRGQjRFRTAwOTgzRTcyIC8qIERGR0RvbWluYXRvcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEODFBQ0YxNTRGQjRF
QjAwOTgzRTcyIC8qIERGR0RvbWluYXRvcnMuY3BwICovOyB9OwpAQCAtMzIwLDYgKzMyNSwxNCBA
QAogCQkwRkY3MjlCRjE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjcyOUEwMTY2QUQzNDcw
MDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRjcyOUMwMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxl
ck9yaWdpblN0YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkY3MjlBMjE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRjkyMkQ0
MTRGNDZCNDEwMDQxQTI0RSAvKiBMTEludE9mZnNldHNFeHRyYWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwQTExNEJBN0Y4MjAwQkZF
MjcyIC8qIExMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAgKi87IH07CisJCTBGRkI5MjE4MTZEMDJF
QjIwMDU1QTVEQiAvKiBERkdBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjRCNTE5MTZCNjI3NzIwMDNGNjk2QiAvKiBERkdBbGxvY2F0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RkZCOTIxQTE2RDAyRUM1MDA1NUE1REIgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDU2NTIyMTZBQjc4MEEw
MDE5NzY1MyAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFCMTZEMDJGMDEwMDU1QTVEQiAvKiBE
RkdOb2RlQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkI0QjUxRjE2QjYyNzcyMDAzRjY5NkIgLyogREZHTm9kZUFsbG9jYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFD
MTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTk4N0YyQzE2N0ZFODRCMDAz
QzJGOEQgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFEMTZEMDJGMzAwMDU1QTVEQiAv
KiBERkdTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYxRTNBNTAxNTM3QzJDQjAwMEY5NDU2IC8qIERGR1Nsb3dQYXRoR2Vu
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMEZGQjkyMUUxNkQwMkY0NzAwNTVBNURCIC8qIERGR1ZhcmlhZGljRnVuY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODVBMzFFMTZBQjc2
QUUwMDc3NTcxRSAvKiBERkdWYXJpYWRpY0Z1bmN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUYxNkQwMzMwNTAwNTVBNURCIC8q
IChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkZCOTIyMDE2RDAzM0I3MDA1NUE1
REIgLyogTm9kZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwREFEMDMwRkIxRUIxQTAwODJEMjA1IC8qIE5vZGVDb25zdHJ1Y3Rv
cnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
RkZGQzk1NzE0RUY5MEEwMDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRkM5NEIxNEVGOTA5NTAwQzcyNTMy
IC8qIERGR0NGQVBoYXNlLmNwcCAqLzsgfTsKIAkJMEZGRkM5NTgxNEVGOTBBMjAwQzcyNTMyIC8q
IERGR0NGQVBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkZGQzk0QzE0RUY5MDk1MDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkZGQzk1OTE0RUY5MEE2
MDBDNzI1MzIgLyogREZHQ1NFUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZGRkM5NEQxNEVGOTA5NTAwQzcyNTMyIC8qIERGR0NTRVBoYXNl
LmNwcCAqLzsgfTsKQEAgLTUwNSw3ICs1MTgsNyBAQAogCQk2NTVFQjI5QjEwQ0UyNTgxMDAxQTk5
MEUgLyogTm9kZXNDb2RlZ2VuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1NUVCMjlBMTBDRTI1ODEwMDFBOTkwRSAvKiBOb2Rlc0NvZGVnZW4uY3Bw
ICovOyB9OwogCQk3RTRFRTcwOTBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEVFNzA4MEVC
Qjc5NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBT
dHJ1Y3R1cmVDaGFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTRFRTcwRTBFQkI3QTVCMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uY3BwICov
OyB9OwotCQk3RUZGMDA2NDBFQzA1QTlBMDBBQTdDOTMgLyogTm9kZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRkYwMDYzMEVDMDVBOUEwMEFB
N0M5MyAvKiBOb2RlSW5mby5oICovOyB9OworCQk3RUZGMDA2NDBFQzA1QTlBMDBBQTdDOTMgLyog
Tm9kZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFRkYwMDYzMEVDMDVBOUEwMEFBN0M5MyAvKiBOb2RlSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MDQ4MDEzMTAyMUExRDkwMDhFN0Yw
MSAvKiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwODk0RDYwRkFGQkEyRDAwMDAxODY1IC8qIEpTQVBJVmFsdWVXcmFw
cGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODYwMTYxRTMwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MDE2MURGMEYzQTgz
QzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYwMTYxRTQwRjNBODNDMTAwRjg0NzEw
IC8qIE1hY3JvQXNzZW1ibGVyWDg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjAxNjFFMDBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJY
ODYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
NTQ0LDEyICs1NTcsMTIgQEAKIAkJODZBRTY0QTgxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNz
ZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2QUU2NEE1MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5jcHAgKi87
IH07CiAJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTY0QTYxMzVF
NUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZBRTY0QUExMzVFNUUxQzAwOTYzMDEyIC8q
IFNINEFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZBRTY0QTcxMzVFNUUxQzAwOTYzMDEyIC8qIFNINEFzc2VtYmxlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg2QUU2QzREMTM2QTEx
RTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkFFNkM0QjEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBSSW5mby5o
ICovOyB9OwotCQk4NkFFNkM0RTEzNkExMUU0MDA5NjMwMTIgLyogREZHR1BSSW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTZDNEMxMzZBMTFF
NDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCAqLzsgfTsKKwkJODZBRTZDNEQxMzZBMTFFNDAwOTYz
MDEyIC8qIERGR0ZQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2QUU2QzRCMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZBRTZDNEUxMzZB
MTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2QzRDMTM2QTExRTQwMDk2MzAxMiAvKiBERkdHUFJJbmZv
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZC
NTgyNjcxNEQyNzk2QzAwQTlDMzA2IC8qIENvZGVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QjU4MjJFMTREMjM3M0IwMEE5QzMwNiAv
KiBDb2RlUHJvZmlsZS5jcHAgKi87IH07CiAJCTg2QjU4MjY5MTREMjc5NzAwMEE5QzMwNiAvKiBD
b2RlUHJvZmlsaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MDNDRUYyMTRDNzU0NjQwMEFFNTlFMyAvKiBDb2RlUHJvZmlsaW5nLmNwcCAqLzsg
fTsKIAkJODZCQjA5QzAxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCQjA5QkUxMzhFMzgxQjAw
NTY3MDJGIC8qIERGR1JlcGF0Y2guY3BwICovOyB9OwotCQk4NkJCMDlDMTEzOEUzODFCMDA1Njcw
MkYgLyogREZHUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZCQjA5QkYxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCAqLzsgfTsK
KwkJODZCQjA5QzExMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkIwOUJGMTM4RTM4MUIwMDU2NzAy
RiAvKiBERkdSZXBhdGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODZDMzZFRUEwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkMzNkVFOTBF
RTEyODlEMDBCM0RGNTkgLyogTWFjcm9Bc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAgLyog
TWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJN
LmNwcCAqLzsgfTsKIAkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVy
TUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZD
NTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01ODksMTkgKzYwMiwxOSBA
QAogCQk4NkVCRjMwMzE1NjBGMDZBMDA4RTkyMjIgLyogTmFtZVByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVCRjJGRDE1NjBGMDM2
MDA4RTkyMjIgLyogTmFtZVByb3RvdHlwZS5jcHAgKi87IH07CiAJCTg2RUJGMzA0MTU2MEYwNkEw
MDhFOTIyMiAvKiBOYW1lUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkVCRjJGRTE1NjBGMDM2MDA4RTkyMjIgLyogTmFtZVByb3RvdHlw
ZS5oICovOyB9OwogCQk4NkVDOURDNDEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZF
QzlEQjQxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmNwcCAqLzsgfTsKLQkJ
ODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNTEzMjhERjgyMDAy
QjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsgfTsKLQkJODZFQzlEQzYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJh
dGlvbkluZm8uaCAqLzsgfTsKKwkJODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVD
b2RlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NkVDOURCNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkVDOURDNjEzMjhE
RjgyMDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBERkdH
ZW5lcmF0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNzEzMjhERjgy
MDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovOyB9OwotCQk4NkVDOURDODEzMjhERjgyMDAyQjJB
RDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2RUM5REI4MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5oICovOyB9OworCQk4
NkVDOURDODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI4MTMyOERGODIwMDJCMkFENyAvKiBE
RkdHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg2RUM5RENCMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21waWxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCQjEzMjhERjgy
MDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuY3BwICovOyB9OwotCQk4NkVDOURDQzEzMjhERjgy
MDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REJDMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21w
aWxlci5oICovOyB9OworCQk4NkVDOURDQzEzMjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGls
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5
REJDMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21waWxlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUM5RENGMTMyOERGODIwMDJCMkFE
NyAvKiBERkdPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2RUM5REJGMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmNw
cCAqLzsgfTsKLQkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMwMTMy
OERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IH07Ci0JCTg2RUM5REQxMTMyOERG
ODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdp
c3RlckJhbmsuaCAqLzsgfTsKKwkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJh
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REMwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQzlERDExMzI4REY4MjAwMkIy
QUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZFQzlEQzExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFu
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2
RUM5REQyMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgyMDAy
QjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhERjgy
MDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVj
dWxhdGl2ZUpJVC5oICovOyB9OwotCQk4NkVDQTNFQTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQ0Ez
RTkxMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCAqLzsgfTsKLQkJODZFQ0EzRkExMzJERjI1
QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJv
YXJkLmggKi87IH07CisJCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2
ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZF
QzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQ0EzRUExMzJERUYxQzAw
MkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQ0EzRkExMzJERjI1
QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJv
YXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODZGM0VFQkIxNjhDREU5MzAwNzdCOTJBIC8qIEpTQmxvY2tBZGFwdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCNzE2OENDRjc1MDA3N0I5
MkEgLyogSlNCbG9ja0FkYXB0b3IuaCAqLzsgfTsKIAkJODZGM0VFQkMxNjhDREU5MzAwNzdCOTJB
IC8qIEpTQmxvY2tBZGFwdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODZGM0VFQjgxNjhDQ0Y3NTAwNzdCOTJBIC8qIEpTQmxvY2tBZGFwdG9yLm1t
ICovOyB9OwogCQk4NkYzRUVCRDE2OENERTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNF
RUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OwpAQCAt
NjM3LDkgKzY1MCw5IEBACiAJCTk2OUEwNzJBMEVEMUNFNjkwMEYxRjY4MSAvKiBMYWJlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3MjcwRUQx
Q0U2OTAwRjFGNjgxIC8qIExhYmVsLmggKi87IH07CiAJCTk2OUEwNzJCMEVEMUNFNjkwMEYxRjY4
MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NjlBMDcyODBFRDFDRTY5MDBGMUY2ODEgLyogUmVnaXN0ZXJJRC5oICovOyB9Owog
CQk5NjlBMDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzkwMEVEMUQzQUUwMEYxRjY4
MSAvKiBDb2RlQmxvY2suY3BwICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItZm5v
LXN0cmljdC1hbGlhc2luZyI7IH07IH07Ci0JCTk2OUEwNzk3MEVEMUQzQUUwMEYxRjY4MSAvKiBD
b2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk2OUEwNzkxMEVEMUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2ODEgLyogRXZh
bENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTY5QTA3OTIwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCAqLzsgfTsKLQkJ
OTY5QTA3OTkwRUQxRDNBRTAwRjFGNjgxIC8qIEluc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MzBFRDFEM0FFMDBGMUY2ODEg
LyogSW5zdHJ1Y3Rpb24uaCAqLzsgfTsKKwkJOTY5QTA3OTcwRUQxRDNBRTAwRjFGNjgxIC8qIENv
ZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTY5QTA3OTEwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk2OUEwNzk4MEVEMUQzQUUwMEYxRjY4
MSAvKiBFdmFsQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NjlBMDc5MjBFRDFEM0FFMDBGMUY2ODEgLyogRXZhbENvZGVDYWNoZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk2OUEwNzk5
MEVEMUQzQUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTMwRUQxRDNBRTAwRjFGNjgxIC8qIEluc3Ry
dWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5NDBFRDFEM0FFMDBGMUY2ODEg
LyogT3Bjb2RlLmNwcCAqLzsgfTsKIAkJOTY5QTA3OUIwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3
OTUwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MUVERUE2MTE2OUUwRDMwMDVFNDI2MiAvKiBUZXJt
aW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NjgsMTIgKzY4MSwxMiBAQAogCQlB
NzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjUwRUU3NENGQzAw
RENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzZDNTE3NjExODI3NDhEMDA3MTVCMDUgLyogSlNJ
bnRlcmZhY2VKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NkYyNzk0MTVGMTND
OTYwMDUxN0Q2NyAvKiBVbmxpbmtlZENvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzlFNzgxRTE1RUVDQkE4MDA0N0M4NTUgLyogVW5s
aW5rZWRDb2RlQmxvY2suY3BwICovOyB9OwotCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyog
SklUV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi87
IH07CisJCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkY1NEEyMTNCMjhB
QUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdGMTgyMTE2NDA4OEIyMDA2NDBBNDcgLyogQ29k
ZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3N0YxODFGMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwICovOyB9OwogCQlBNzdG
MTgyMjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdGMTgyMDE2NDA4OEIyMDA2NDBBNDcgLyogQ29k
ZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTc3RjE4MjUxNjQxOTJDNzAwNjQwQTQ3IC8qIFBhcnNlck1vZGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdGMTgyNDE2NDE5MjU0MDA2NDBB
NDcgLyogUGFyc2VyTW9kZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQlBNzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzQxMUI5
OEI4RDAwNjVBMTRGIC8qIEFTVEJ1aWxkZXIuaCAqLzsgfTsKLQkJQTc4NEEyNjQxMUQxNjYyMjAw
NTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc3MTFCOThCOEQwMDY1QTE0RiAvKiBTeW50YXhDaGVja2Vy
LmggKi87IH07CisJCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NDExQjk4
QjhEMDA2NUExNEYgLyogQVNUQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUE3ODRBMjY0MTFEMTY2MjIwMDU3NzZBQyAvKiBTeW50YXhD
aGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0E3RUU3NzExQjk4QjhEMDA2NUExNEYgLyogU3ludGF4Q2hlY2tlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QUZDMTc5MTVGN0VGRTMwMDQ4
RjU3QiAvKiBSZXNvbHZlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0FGQzE3NzE1RjdFRkUzMDA0OEY1N0IgLyogUmVzb2x2ZU9wZXJh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3QjQ4RjQ5MEVFODkzNkYwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2MEVFNzRD
RkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQTdCNEFDQUYx
NDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0QUNBRTE0ODRDOUNFMDBCMzhBMzYgLyogSlNF
eHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNzQwLDcgKzc1Myw3IEBACiAJCUJDMThDNDJDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U1ZhbHVlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDgyQjZFQTBBNDMwMEIzMDA1MTdDRkMgLyogSlNWYWx1ZVJlZi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0
NDYwIC8qIEpTVmFyaWFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0RjI1MjU2MEQwOEREOEQwMDRFQ0ZGRiAvKiBKU1ZhcmlhYmxlT2Jq
ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkMxOEM0MkUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVDN0ExNzIwQThFQUFDQjAwRkEz
N0VBIC8qIEpTV3JhcHBlck9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDMxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NjYwMjU1
NTk3RDAxRkY2MEY3IC8qIExleGVyLmggKi87IH07CisJCUJDMThDNDMxMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjY5MkE4NjYwMjU1NTk3RDAxRkY2MEY3IC8qIExleGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0MzcwRTE2RjVDRDAwQjM0NDYw
IC8qIExvb2t1cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjY5MkE4NjkwMjU1NTk3RDAxRkY2MEY3IC8qIExvb2t1cC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDNDMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBNYXRoT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNjkyQTg2QjAyNTU1OTdEMDFGRjYwRjcgLyogTWF0aE9iamVjdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDNGMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBOb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjY5MkE4NkUwMjU1NTk3RDAxRkY2MEY3IC8qIE5vZGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc1MSw3ICs3NjQsNyBA
QAogCQlCQzE4QzQ0NTBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0Q29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjY4MEM3MEUxNkQ0
RTkwMEEwNkU5MiAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDQ2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBP
YmplY3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMjY4MEM5MEUxNkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RQcm90b3R5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ0ODBF
MTZGNUNEMDBCMzQ0NjAgLyogT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NzgwMjU1NTk3RDAxRkY2MEY3IC8qIE9wZXJhdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlC
QzE4QzQ0QjBFMTZGNUNEMDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFy
c2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJQkMxOEM0NEIw
RTE2RjVDRDAwQjM0NDYwIC8qIFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDUw
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2NDBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThD
NDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFBy
b2ZpbGVOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQkMxOEM0NTIwRTE2RjVDRDAwQjM0NDYwIC8qIExlZ2FjeVByb2ZpbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFCODMyRjBEQTQyQ0FE
MDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzg0LDcgKzc5Nyw3IEBACiAJCUJDOTA0MTQ4MEVCOTI1
MDkwMEZFMjZGQSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTA0MTQ3MEVCOTI1MDkwMEZFMjZGQSAv
KiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzk1NDM3RDBFQkE3MEZEMDA3MkI2RDMgLyogUHJvcGVy
dHlNYXBIYXNoVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDOTU0MzdDMEVCQTcwRkQwMDcyQjZEMyAvKiBQcm9wZXJ0eU1hcEhhc2hUYWJsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkUy
Q0FFMTRFOTg1QUEwMDA1OTNBRCAvKiBHQ0Fzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkUyQ0FEMTRFOTg1QUEwMDA1OTNBRCAvKiBH
Q0Fzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlCQ0NGMEQwODBFRjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0YwRDA3MEVG
MEFBQjkwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5oICovOyB9OworCQlCQ0NGMEQwODBF
RjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0YwRDA3MEVGMEFBQjkwMDQxM0M4RiAvKiBT
dHJ1Y3R1cmVTdHViSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDQ0YwRDBDMEVGMEI4QTUwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5m
by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0NG
MEQwQjBFRjBCOEE1MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uY3BwICovOyB9OwogCQlC
Q0QyMDJDMjBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDIwMkJFMEUxNzA2QTcwMDJD
N0U4MiAvKiBSZWdFeHBDb25zdHJ1Y3Rvci5oICovOyB9OwogCQlCQ0QyMDJDNDBFMTcwNkE3MDAy
QzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0QyMDJDMDBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwUHJvdG90
eXBlLmggKi87IH07CkBAIC03OTcsNyArODEwLDcgQEAKIAkJQkNERTNCNDMwRTZDODMyRDAwMTQ1
M0E3IC8qIFN0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0RFM0FCMDBFNkM4MkNGMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCAqLzsg
fTsKIAkJQkNGNjA1MTQwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjYwNTEyMEUyMDNFRjgwMEI5QTY0
RCAvKiBBcmdMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MDBFRUIyRUU3
MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCAqLzsgfTsKLQkJQkNGRDhDOTMwRUVCMkVFNzAwMjgz
ODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oICovOyB9Owor
CQlCQ0ZEOEM5MzBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4NDgg
LyogSnVtcFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQzIwQkE5MkQxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIw
QkE5MkMxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMTEyMkUxMTVE
RDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIxMTIyREUxNUREOUFCMzAwNzkwRTNBIC8q
IEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAgKi87IH07CiAJCUMyMTEyMkUyMTVERDlBQjMwMDc5MEUz
QSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyMTEyMkRGMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJl
ZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTAxMiw2ICsxMDI1LDcgQEAKIAkJMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0
aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ2
ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhv
c3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9z
dENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ5M0FG
ODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlY2lhbFBvaW50ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1NDFCMDE2MTNDMUZCMDBDRTNF
MjUgLyogU3BlY2lhbFBvaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlY2lhbFBvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NUYwRjEx
NEQxMDYzNjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQWJzdHJhY3RQQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMTQ3LDYgKzExNjEsOCBAQAogCQkwRkM4MTUxMjE0MDUxMTg2MDBDRkE2MDMgLyogVlRh
YmxlU3BlY3RydW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlRh
YmxlU3BlY3RydW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM4MTUxNDE0
MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVlRhYmxlU3BlY3RydW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZDQjQwODUxNUMwQTNDMzAwNDg5MzJCIC8qIFNsb3RWaXNpdG9ySW5saW5lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbG90VmlzaXRvcklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDQ0FFNDMxNkQwQ0Y2RTAwRDBDNjVCIC8qIFBhcnNl
ckVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlckVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAv
KiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0M4MjAx
NDExNUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdEcml2ZXIuY3BwOyBwYXRoID0gZGZnL0RGR0RyaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAvKiBE
RkdEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRHJpdmVyLmg7
IHBhdGggPSBkZmcvREZHRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
RDU2NTIyMTZBQjc4MEEwMDE5NzY1MyAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYXNpY0Jsb2NrSW5saW5lcy5oOyBwYXRoID0g
ZGZnL0RGR0Jhc2ljQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjkyLDEwICsyMzA4LDEyIEBACiAJCQkJOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBh
cnNlci5oICovLAogCQkJCTkzMDUyQzMyMEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5j
cHAgKi8sCiAJCQkJOTMwNTJDMzMwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmggKi8s
CisJCQkJMEZDQ0FFNDMxNkQwQ0Y2RTAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggKi8sCiAJCQkJ
QTc3RjE4MjQxNjQxOTI1NDAwNjQwQTQ3IC8qIFBhcnNlck1vZGVzLmggKi8sCiAJCQkJNjUzMDNE
NjMxNDQ3QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oICovLAogCQkJCTg2OUVCQ0I2MEU4
QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggKi8sCiAJCQkJNjVFODY2RUUwREQ1OUFGQTAw
QTJCMkExIC8qIFNvdXJjZUNvZGUuaCAqLywKKwkJCQkwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIg
LyogU291cmNlUHJvdmlkZXIuY3BwICovLAogCQkJCTY1RTg2NkVEMERENTlBRkEwMEEyQjJBMSAv
KiBTb3VyY2VQcm92aWRlci5oICovLAogCQkJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLywKIAkJCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovLApAQCAtMjUyOSw2ICsyNTQ3LDcgQEAKIAkJCQlC
Q0RFM0FCMTBFNkM4MkNGMDAxNDUzQTcgLyogU3RydWN0dXJlLmggKi8sCiAJCQkJN0U0RUU3MEUw
RUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAqLywKIAkJCQk3RTRFRTcwODBF
QkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCAqLywKKwkJCQkwRkQyQzkyMzE2RDAx
RUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovLAogCQkJCUMyRjBGMkQwMTZCQUVF
RTkwMDE4N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgKi8sCiAJCQkJQzJGRTE4QTMxNkJB
RUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRhLmggKi8sCiAJCQkJQzIwQkE5MkMxNkJC
MUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oICovLApAQCAtMzM0OSw2
ICszMzY4LDE4IEBACiAJCQkJMEZCRTBGNzMxNkMxREIwNTAwODJDNUU4IC8qIERGR0NQU1JldGhy
ZWFkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkUwRjc1MTZDMURCMEIwMDgyQzVF
OCAvKiBERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QkUwRjc3MTZDMURCMTIwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlvblBoYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBv
aW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBE
RkdNaW5pZmllZElELmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxODE2RDAyRUIyMDA1NUE1
REIgLyogREZHQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxQTE2RDAyRUM1
MDA1NUE1REIgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RkI5MjFCMTZEMDJGMDEwMDU1QTVEQiAvKiBERkdOb2RlQWxsb2NhdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkZCOTIxQzE2RDAyRjExMDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9u
SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMUQxNkQwMkYzMDAwNTVBNURCIC8qIERG
R1Nsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxRTE2RDAyRjQ3
MDA1NUE1REIgLyogREZHVmFyaWFkaWNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZG
QjkyMUYxNkQwMzMwNTAwNTVBNURCIC8qIChudWxsKSBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5
MjIwMTZEMDMzQjcwMDU1QTVEQiAvKiBOb2RlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMzk4Nyw2ICs0MDE4LDcgQEAKIAkJCQkwRkJFMEY3MjE2QzFEQjAzMDA4MkM1RTgg
LyogREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJFMEY3
NDE2QzFEQjA5MDA4MkM1RTggLyogREZHUHJlZGljdGlvbkluamVjdGlvblBoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlv
blBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAv
KiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
NjEsNyArNjEsNiBAQAogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAi
TGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCIKICNpbmNsdWRlICJMaW5lSW5mby5oIgotI2luY2x1
ZGUgIk5vZGVzLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogI2luY2x1ZGUg
IlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUgIlJlc29sdmVPcGVyYXRpb24uaCIKQEAgLTE0NjEs
MTEgKzE0NjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9CiAjZW5kaWYKICAgICAKLSAgICBp
bmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChDb2RlQmxvY2sqIGNv
ZGVCbG9jaykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAo
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSk7Ci0gICAgfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIENvZGVCbG9ja19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRXZhbENvZGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9FdmFsQ29kZUNhY2hlLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FdmFsQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDggKzMxLDYgQEAKIAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIk5vZGVzLmgiCi0jaW5jbHVkZSAiUGFyc2VyLmgiCiAj
aW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Nh
bXBsaW5nVG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TYW1wbGluZ1Rvb2wuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw3ICszMCw2IEBA
CiAjZGVmaW5lIFNhbXBsaW5nVG9vbF9oCiAKICNpbmNsdWRlICJTdHJvbmcuaCIKLSNpbmNsdWRl
ICJOb2Rlcy5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nQ291bnRl
ci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHJldmlzaW9u
IDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDExIEBAIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmMKIHsKIH0KIAorc2l6ZV90IFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpwYXJhbWV0ZXJDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFy
YW1ldGVycy0+c2l6ZSgpOworfQorCiB2b2lkIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8VW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUqPihjZWxsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCShyZXZpc2lvbiAxNDMxMjIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzIsMTAgKzMyLDEyIEBACiAjaW5jbHVkZSAiRXhwcmVzc2lvblJhbmdlSW5m
by5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKKyNpbmNs
dWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxpbmVJbmZvLmgiCi0jaW5jbHVkZSAiTm9kZXMu
aCIKKyNpbmNsdWRlICJQYXJzZXJNb2Rlcy5oIgogI2luY2x1ZGUgIlJlZ0V4cC5oIgogI2luY2x1
ZGUgIlNwZWNpYWxQb2ludGVyLmgiCisjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKICNpbmNsdWRl
ICJXZWFrLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+CkBAIC05Myw3ICs5
NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiAoa2luZCA9PSBDb2RlRm9yQ2Fs
bCkgPyBtX3N5bWJvbFRhYmxlRm9yQ2FsbC5nZXQoKSA6IG1fc3ltYm9sVGFibGVGb3JDb25zdHJ1
Y3QuZ2V0KCk7CiAgICAgfQotICAgIHNpemVfdCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVycy0+c2l6ZSgpOyB9CisgICAgc2l6ZV90IHBhcmFtZXRlckNvdW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBpc0luU3RyaWN0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJ
blN0cmljdENvbnRleHQ7IH0KICAgICBGdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUgZnVuY3Rp
b25OYW1lSXNJblNjb3BlVG9nZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9mdW5jdGlvbk5hbWVJc0lu
U2NvcGVUb2dnbGU7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMTQzMTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTGFiZWwuaCIKICNpbmNs
dWRlICJMYWJlbFNjb3BlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJQ
YXJzZXJFcnJvci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVySUQuaCIKICNpbmNsdWRlICJTeW1ib2xU
YWJsZS5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9MYWJlbC5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYg
KzM3LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBCeXRlY29kZUdlbmVyYXRv
cjsKKwogICAgIGNsYXNzIExhYmVsIHsKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0IExh
YmVsKEJ5dGVjb2RlR2VuZXJhdG9yKiBnZW5lcmF0b3IpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTQzMTIyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJERkdBcnJheU1vZGUuaCIKICNp
bmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCi0j
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJnZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5o
IgogI2luY2x1ZGUgIlJlc29sdmVHbG9iYWxTdGF0dXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmgJKHJldmlzaW9uIDE0MzEyMikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRl
IDxkZmcvREZHR3JhcGguaD4KKyNpbmNsdWRlICJERkdHcmFwaC5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGUFJJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGUFJJbmZvLmgJKHJldmlzaW9u
IDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRlBSSW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2lu
Y2x1ZGUgPGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oPgotI2luY2x1ZGUgPGRmZy9ERkdSZWdp
c3RlckJhbmsuaD4KKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIkRGR1Jl
Z2lzdGVyQmFuay5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVnaXN0ZXJCYW5rLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJhbmsuaAkocmV2aXNpb24g
MTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJhbmsuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAK
LSNpbmNsdWRlIDxkZmcvREZHQ29tbW9uLmg+CisjaW5jbHVkZSAiREZHQ29tbW9uLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hhbmRsZVN0YWNrLmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4
ICsyNyw4IEBACiAjaW5jbHVkZSAiSGFuZGxlU3RhY2suaCIKIAogI2luY2x1ZGUgIkhlYXBSb290
VmlzaXRvci5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNP
YmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVyLmgJKHJldmlz
aW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJNYWNyb0Fzc2Vt
Ymxlci5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVy
LmgiCi0jaW5jbHVkZSAiaml0L1VudXNlZFBvaW50ZXIuaCIKKyNpbmNsdWRlICJVbnVzZWRQb2lu
dGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJK
SVRDb2RlLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUGFyc2VyQXJlbmEuaCIK
KyNpbmNsdWRlICJQYXJzZXJUb2tlbnMuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAjaW5j
bHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgiCkBAIC00NywxOSAr
NDgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU1Njb3BlOwogICAgIGNsYXNzIFNj
b3BlTm9kZTsKIAotICAgIHR5cGVkZWYgdW5zaWduZWQgQ29kZUZlYXR1cmVzOwotCi0gICAgY29u
c3QgQ29kZUZlYXR1cmVzIE5vRmVhdHVyZXMgPSAwOwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBF
dmFsRmVhdHVyZSA9IDEgPDwgMDsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgQXJndW1lbnRzRmVh
dHVyZSA9IDEgPDwgMTsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgV2l0aEZlYXR1cmUgPSAxIDw8
IDI7Ci0gICAgY29uc3QgQ29kZUZlYXR1cmVzIENhdGNoRmVhdHVyZSA9IDEgPDwgMzsKLSAgICBj
b25zdCBDb2RlRmVhdHVyZXMgVGhpc0ZlYXR1cmUgPSAxIDw8IDQ7Ci0gICAgY29uc3QgQ29kZUZl
YXR1cmVzIFN0cmljdE1vZGVGZWF0dXJlID0gMSA8PCA1OwotICAgIGNvbnN0IENvZGVGZWF0dXJl
cyBTaGFkb3dzQXJndW1lbnRzRmVhdHVyZSA9IDEgPDwgNjsKLSAgICAKLSAgICBjb25zdCBDb2Rl
RmVhdHVyZXMgQWxsRmVhdHVyZXMgPSBFdmFsRmVhdHVyZSB8IEFyZ3VtZW50c0ZlYXR1cmUgfCBX
aXRoRmVhdHVyZSB8IENhdGNoRmVhdHVyZSB8IFRoaXNGZWF0dXJlIHwgU3RyaWN0TW9kZUZlYXR1
cmUgfCBTaGFkb3dzQXJndW1lbnRzRmVhdHVyZTsKLQogICAgIGVudW0gT3BlcmF0b3IgewogICAg
ICAgICBPcEVxdWFsLAogICAgICAgICBPcFBsdXNFcSwKQEAgLTE0MTIsNyArMTQwMCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkKiBtX3N0b3JhZ2U7CiAgICAgfTsKIAotICAgIGVu
dW0gRnVuY3Rpb25OYW1lSXNJblNjb3BlVG9nZ2xlIHsgRnVuY3Rpb25OYW1lSXNOb3RJblNjb3Bl
LCBGdW5jdGlvbk5hbWVJc0luU2NvcGUgfTsKICAgICBjbGFzcyBGdW5jdGlvbkJvZHlOb2RlIDog
cHVibGljIFNjb3BlTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgYm9v
bCBpc0Z1bmN0aW9uTm9kZSA9IHRydWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDEwIEBACiAjaW5jbHVkZSAi
TGV4ZXIuaCIKICNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIlBhcnNlckFyZW5hLmgiCisj
aW5jbHVkZSAiUGFyc2VyRXJyb3IuaCIKICNpbmNsdWRlICJQYXJzZXJUb2tlbnMuaCIKICNpbmNs
dWRlICJTb3VyY2VQcm92aWRlci5oIgorI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIK
ICNpbmNsdWRlICJTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Niw0OSArNzgsNiBAQCBD
T01QSUxFX0FTU0VSVChMYXN0VW50YWdnZWRUb2tlbiA8IDY0LCBMCiBlbnVtIFNvdXJjZUVsZW1l
bnRzTW9kZSB7IENoZWNrRm9yU3RyaWN0TW9kZSwgRG9udENoZWNrRm9yU3RyaWN0TW9kZSB9Owog
ZW51bSBGdW5jdGlvblJlcXVpcmVtZW50cyB7IEZ1bmN0aW9uTm9SZXF1aXJlbWVudHMsIEZ1bmN0
aW9uTmVlZHNOYW1lIH07CiAKLXN0cnVjdCBQYXJzZXJFcnJvciB7Ci0gICAgZW51bSBFcnJvclR5
cGUgeyBFcnJvck5vbmUsIFN0YWNrT3ZlcmZsb3csIFN5bnRheEVycm9yLCBFdmFsRXJyb3IsIE91
dE9mTWVtb3J5IH0gbV90eXBlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgaW50IG1fbGlu
ZTsKLSAgICBQYXJzZXJFcnJvcigpCi0gICAgICAgIDogbV90eXBlKEVycm9yTm9uZSkKLSAgICAg
ICAgLCBtX2xpbmUoLTEpCi0gICAgewotICAgIH0KLQotICAgIFBhcnNlckVycm9yKEVycm9yVHlw
ZSB0eXBlKQotICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fbGluZSgtMSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgUGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUsIFN0cmluZyBtc2cs
IGludCBsaW5lKQotICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fbWVzc2FnZSht
c2cpCi0gICAgICAgICwgbV9saW5lKGxpbmUpCi0gICAgewotICAgIH0KLQotICAgIEpTT2JqZWN0
KiB0b0Vycm9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgICAg
IGNhc2UgRXJyb3JOb25lOgotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGNhc2UgU3lu
dGF4RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gYWRkRXJyb3JJbmZvKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRXhlYygpLCBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSks
IG1fbGluZSwgc291cmNlKTsKLSAgICAgICAgY2FzZSBFdmFsRXJyb3I6Ci0gICAgICAgICAgICBy
ZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtX21lc3NhZ2UpOwotICAgICAg
ICBjYXNlIFN0YWNrT3ZlcmZsb3c6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIGNhc2UgT3V0T2ZNZW1vcnk6Ci0gICAg
ICAgICAgICByZXR1cm4gY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpOwotICAg
ICAgICB9Ci0gICAgICAgIENSQVNIKCk7Ci0gICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9y
eUVycm9yKGdsb2JhbE9iamVjdCk7IC8vIEFwcGVhc2UgUXQgYm90Ci0gICAgfQotCi19OwotCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgaXNFdmFsTm9kZSgpIHsgcmV0dXJuIGZh
bHNlOyB9CiB0ZW1wbGF0ZSA8PiBpbmxpbmUgYm9vbCBpc0V2YWxOb2RlPEV2YWxOb2RlPigpIHsg
cmV0dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXJFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyRXJyb3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyRXJyb3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGFyc2VyRXJyb3JfaAor
I2RlZmluZSBQYXJzZXJFcnJvcl9oCisKKyNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIEpTQyB7CisKK3N0cnVjdCBQYXJzZXJFcnJvciB7CisgICAgZW51bSBFcnJvclR5cGUg
eyBFcnJvck5vbmUsIFN0YWNrT3ZlcmZsb3csIFN5bnRheEVycm9yLCBFdmFsRXJyb3IsIE91dE9m
TWVtb3J5IH0gbV90eXBlOworICAgIFN0cmluZyBtX21lc3NhZ2U7CisgICAgaW50IG1fbGluZTsK
KyAgICBQYXJzZXJFcnJvcigpCisgICAgICAgIDogbV90eXBlKEVycm9yTm9uZSkKKyAgICAgICAg
LCBtX2xpbmUoLTEpCisgICAgeworICAgIH0KKworICAgIFBhcnNlckVycm9yKEVycm9yVHlwZSB0
eXBlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fbGluZSgtMSkKKyAgICB7
CisgICAgfQorCisgICAgUGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUsIFN0cmluZyBtc2csIGlu
dCBsaW5lKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fbWVzc2FnZShtc2cp
CisgICAgICAgICwgbV9saW5lKGxpbmUpCisgICAgeworICAgIH0KKworICAgIEpTT2JqZWN0KiB0
b0Vycm9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgIGNh
c2UgRXJyb3JOb25lOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgU3ludGF4
RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gYWRkRXJyb3JJbmZvKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRXhlYygpLCBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSksIG1f
bGluZSwgc291cmNlKTsKKyAgICAgICAgY2FzZSBFdmFsRXJyb3I6CisgICAgICAgICAgICByZXR1
cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtX21lc3NhZ2UpOworICAgICAgICBj
YXNlIFN0YWNrT3ZlcmZsb3c6CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVyZmxv
d0Vycm9yKGdsb2JhbE9iamVjdCk7CisgICAgICAgIGNhc2UgT3V0T2ZNZW1vcnk6CisgICAgICAg
ICAgICByZXR1cm4gY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpOworICAgICAg
ICB9CisgICAgICAgIENSQVNIKCk7CisgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVy
cm9yKGdsb2JhbE9iamVjdCk7IC8vIEFwcGVhc2UgUXQgYm90CisgICAgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBQYXJzZXJFcnJvcl9oCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM1LDYgKzM1LDIxIEBAIGVudW0gSlNQYXJzZXJNb2RlIHsgSlNQYXJzZVByb2dyYW1Db2RlLCAK
IGVudW0gUHJvZmlsZXJNb2RlIHsgUHJvZmlsZXJPZmYsIFByb2ZpbGVyT24gfTsKIGVudW0gRGVi
dWdnZXJNb2RlIHsgRGVidWdnZXJPZmYsIERlYnVnZ2VyT24gfTsKIAotfQorZW51bSBGdW5jdGlv
bk5hbWVJc0luU2NvcGVUb2dnbGUgeyBGdW5jdGlvbk5hbWVJc05vdEluU2NvcGUsIEZ1bmN0aW9u
TmFtZUlzSW5TY29wZSB9OwogCi0jZW5kaWYKK3R5cGVkZWYgdW5zaWduZWQgQ29kZUZlYXR1cmVz
OworCitjb25zdCBDb2RlRmVhdHVyZXMgTm9GZWF0dXJlcyA9IDA7Citjb25zdCBDb2RlRmVhdHVy
ZXMgRXZhbEZlYXR1cmUgPSAxIDw8IDA7Citjb25zdCBDb2RlRmVhdHVyZXMgQXJndW1lbnRzRmVh
dHVyZSA9IDEgPDwgMTsKK2NvbnN0IENvZGVGZWF0dXJlcyBXaXRoRmVhdHVyZSA9IDEgPDwgMjsK
K2NvbnN0IENvZGVGZWF0dXJlcyBDYXRjaEZlYXR1cmUgPSAxIDw8IDM7Citjb25zdCBDb2RlRmVh
dHVyZXMgVGhpc0ZlYXR1cmUgPSAxIDw8IDQ7Citjb25zdCBDb2RlRmVhdHVyZXMgU3RyaWN0TW9k
ZUZlYXR1cmUgPSAxIDw8IDU7Citjb25zdCBDb2RlRmVhdHVyZXMgU2hhZG93c0FyZ3VtZW50c0Zl
YXR1cmUgPSAxIDw8IDY7CisKK2NvbnN0IENvZGVGZWF0dXJlcyBBbGxGZWF0dXJlcyA9IEV2YWxG
ZWF0dXJlIHwgQXJndW1lbnRzRmVhdHVyZSB8IFdpdGhGZWF0dXJlIHwgQ2F0Y2hGZWF0dXJlIHwg
VGhpc0ZlYXR1cmUgfCBTdHJpY3RNb2RlRmVhdHVyZSB8IFNoYWRvd3NBcmd1bWVudHNGZWF0dXJl
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFBhcnNlck1vZGVzX2gKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRl
ci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U291cmNlUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIKKwor
bmFtZXNwYWNlIEpTQyB7CisKK1NvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcihjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92
aWRlckNhY2hlKiBjYWNoZSkKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fc3RhcnRQb3NpdGlv
bihzdGFydFBvc2l0aW9uKQorICAgICwgbV92YWxpZGF0ZWQoZmFsc2UpCisgICAgLCBtX2NhY2hl
KGNhY2hlID8gY2FjaGUgOiBuZXcgU291cmNlUHJvdmlkZXJDYWNoZSkKKyAgICAsIG1fY2FjaGVP
d25lZCghY2FjaGUpCit7Cit9CisKK1NvdXJjZVByb3ZpZGVyOjp+U291cmNlUHJvdmlkZXIoKQor
eworICAgIGlmIChtX2NhY2hlT3duZWQpCisgICAgICAgIGRlbGV0ZSBtX2NhY2hlOworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwzMiArMjksMjMgQEAKICNpZm5kZWYgU291cmNlUHJvdmlkZXJfaAog
I2RlZmluZSBTb3VyY2VQcm92aWRlcl9oCiAKLSNpbmNsdWRlICJTb3VyY2VQcm92aWRlckNhY2hl
LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAorICAgIGNsYXNzIFNvdXJjZVByb3ZpZGVyQ2FjaGU7CisKICAgICBjbGFzcyBT
b3VyY2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZVByb3ZpZGVyPiB7CiAgICAg
cHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbnVsbElEID0gMTsKICAgICAg
ICAgCi0gICAgICAgIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGNhY2hlID0gMCkK
LSAgICAgICAgICAgIDogbV91cmwodXJsKQotICAgICAgICAgICAgLCBtX3N0YXJ0UG9zaXRpb24o
c3RhcnRQb3NpdGlvbikKLSAgICAgICAgICAgICwgbV92YWxpZGF0ZWQoZmFsc2UpCi0gICAgICAg
ICAgICAsIG1fY2FjaGUoY2FjaGUgPyBjYWNoZSA6IG5ldyBTb3VyY2VQcm92aWRlckNhY2hlKQot
ICAgICAgICAgICAgLCBtX2NhY2hlT3duZWQoIWNhY2hlKQotICAgICAgICB7Ci0gICAgICAgIH0K
KyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJDYWNo
ZSogY2FjaGUgPSAwKTsKIAotICAgICAgICB2aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChtX2NhY2hlT3duZWQpCi0gICAgICAgICAgICAgICAgZGVs
ZXRlIG1fY2FjaGU7Ci0gICAgICAgIH0KKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB+U291cmNlUHJvdmlkZXIoKTsKIAogICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291
cmNlKCkgY29uc3QgPSAwOwogICAgICAgICBTdHJpbmcgZ2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ2FsbC5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgorI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5j
bHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVQuaCIKICNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90
b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTMgKzI3
LDEzIEBACiAjaW5jbHVkZSAiRGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJEYXRlSW5zdGFu
Y2UuaCIKICNpbmNsdWRlICJFcnJvci5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNEYXRlTWF0aC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNpbmNs
dWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiBIQVZFKExBTkdJTkZPX0gpCiAj
aW5jbHVkZSA8bGFuZ2luZm8uaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTAg
KzMyLDExIEBACiAjaW5jbHVkZSAiSGFuZGxlckluZm8uaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9u
LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJMTEludENMb29wLmgiCi0jaW5jbHVk
ZSAiTm9kZXMuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKKyNpbmNsdWRlICJTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcg
KzQ5LDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQWN0aXZhdGlv
bi5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
SlNDYWxsYmFja0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVjdC5oIgpAQCAt
NzEsNiArNzAsOCBAQAogI2luY2x1ZGUgIk51bWJlclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIk9i
amVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCisjaW5jbHVk
ZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCiAjaW5jbHVkZSAiUmVn
RXhwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJSZWdFeHBNYXRjaGVzQXJyYXkuaCIKICNpbmNs
dWRlICJSZWdFeHBPYmplY3QuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDUx
LDU2ICs0NTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICFlbnRyeS5pc051
bGwoKTsKICAgICB9CiAKLSAgICBpbmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZv
ckxvb2t1cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotICAgIHsKLSAgICAg
ICAgaWYgKGlzT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gbV9wcm90b3R5cGUuZ2V0KCk7
Ci0KLSAgICAgICAgQVNTRVJUKHR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ1R5cGUpOwotICAg
ICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChFeGVjU3RhdGUq
IGV4ZWMpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gcHJvdG90eXBlRm9yTG9va3VwKGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0cnVjdHVy
ZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWluKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKLSAgICB7Ci0gICAgICAgIC8v
IFdlIGNhY2hlIG91ciBwcm90b3R5cGUgY2hhaW4gc28gb3VyIGNsaWVudHMgY2FuIHNoYXJlIGl0
LgotICAgICAgICBpZiAoIWlzVmFsaWQoZ2xvYmFsT2JqZWN0LCBtX2NhY2hlZFByb3RvdHlwZUNo
YWluLmdldCgpKSkgewotICAgICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVG
b3JMb29rdXAoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgIG1fY2FjaGVkUHJvdG90eXBlQ2hh
aW4uc2V0KGdsb2JhbERhdGEsIHRoaXMsIFN0cnVjdHVyZUNoYWluOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLmlzTnVsbCgpID8gMCA6IGFzT2JqZWN0KHByb3RvdHlwZSktPnN0cnVjdHVy
ZSgpKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4u
Z2V0KCk7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnBy
b3RvdHlwZUNoYWluKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBwcm90b3R5cGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5
cGVDaGFpbikgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghY2FjaGVkUHJvdG90eXBlQ2hhaW4p
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUg
PSBwcm90b3R5cGVGb3JMb29rdXAoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgV3JpdGVCYXJyaWVy
PFN0cnVjdHVyZT4qIGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hlZFByb3RvdHlwZUNoYWluLT5oZWFk
KCk7Ci0gICAgICAgIHdoaWxlKCpjYWNoZWRTdHJ1Y3R1cmUgJiYgIXByb3RvdHlwZS5pc051bGwo
KSkgewotICAgICAgICAgICAgaWYgKGFzT2JqZWN0KHByb3RvdHlwZSktPnN0cnVjdHVyZSgpICE9
IGNhY2hlZFN0cnVjdHVyZS0+Z2V0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgKytjYWNoZWRTdHJ1Y3R1cmU7Ci0gICAgICAgICAgICBwcm90b3R5cGUgPSBh
c09iamVjdChwcm90b3R5cGUpLT5wcm90b3R5cGUoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm4gcHJvdG90eXBlLmlzTnVsbCgpICYmICEqY2FjaGVkU3RydWN0dXJlOwotICAgIH0KLQotICAg
IGlubGluZSBib29sIFN0cnVjdHVyZTo6aXNWYWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVy
ZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBpc1ZhbGlkKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgY2FjaGVkUHJvdG90eXBlQ2hh
aW4pOwotICAgIH0KLQogICAgIGlubGluZSBKU0dsb2JhbE9iamVjdCogRXhlY1N0YXRlOjpkeW5h
bWljR2xvYmFsT2JqZWN0KCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzID09IGxleGljYWxHbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wZXJhdGlvbnMuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU1Byb3h5Lmgi
CiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwNCwxMDUgKzUwNCw2IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9zdGF0aWNGdW5jdGlvblJlaWZpZWQ7CiB9OwogCi1pbmxp
bmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBU
eXBlSW5mbyYgdHlwZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBJbmRleGluZ1R5
cGUgaW5kZXhpbmdUeXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKLXsKLSAgICBBU1NFUlQo
Z2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VSVChjbGFzc0luZm8pOwot
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3Ry
dWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIHR5cGVJbmZvLCBjbGFzc0luZm8sIGluZGV4aW5nVHlwZSwgaW5saW5l
Q2FwYWNpdHkpOwotICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0g
ICAgcmV0dXJuIHN0cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1
Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17Ci0gICAg
QVNTRVJUKCFnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERh
dGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKLSAgICBzdHJ1Y3R1cmUtPmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIENyZWF0aW5nRWFybHlDZWxsKTsKLSAgICByZXR1cm4gc3RydWN0
dXJlOwotfQotCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotICAgIEFTU0VS
VChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBuZXdTdHJ1
Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEu
aGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwotICAgIG5ld1N0cnVjdHVy
ZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUlu
Zm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQotICAgICAgICBuZXdTdHJ1Y3R1cmUtPmNsb25l
UmFyZURhdGFGcm9tKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIG5ld1N0cnVj
dHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQotewot
ICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0
ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9w
cm9wZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3Bl
cnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51
aWQoKSkuZmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRP
ZmZzZXQ7Ci19Ci0KLWlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQotewotICAgIEFTU0VS
VChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQ
cm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRh
YmxlKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50
cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmltcGwoKSku
Zmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7
Ci19Ci0gICAgCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIHR5cGVJ
bmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVjdCgpID09IGxleGlj
YWxHbG9iYWxPYmplY3Q7Ci19Ci0KLUFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6aW50
ZXJuYWxBcHBlbmQoSlNDZWxsKiBjZWxsKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nRm9y
RGVmYXVsdE1hcmtWaW9sYXRpb24pOwotICAgIGlmICghY2VsbCkKLSAgICAgICAgcmV0dXJuOwot
I2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQotICAgIHZhbGlkYXRlKGNlbGwpOwotI2VuZGlmCi0g
ICAgaWYgKEhlYXA6OnRlc3RBbmRTZXRNYXJrZWQoY2VsbCkgfHwgIWNlbGwtPnN0cnVjdHVyZSgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Zpc2l0Q291bnQrKzsKLSAgICAgICAgCi0gICAg
TUFSS19MT0dfQ0hJTEQoKnRoaXMsIGNlbGwpOwotCi0gICAgLy8gU2hvdWxkIG5ldmVyIGF0dGVt
cHQgdG8gbWFyayBzb21ldGhpbmcgdGhhdCBpcyB6YXBwZWQuCi0gICAgQVNTRVJUKCFjZWxsLT5p
c1phcHBlZCgpKTsKLSAgICAgICAgCi0gICAgbV9zdGFjay5hcHBlbmQoY2VsbCk7Ci19Ci0KLWlu
bGluZSBib29sIFN0cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShTdHJ1Y3R1
cmUqIHN0cnVjdHVyZVRvRmluZCkKLXsKLSAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRo
aXM7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wcmV2aW91c0lEKCkpIHsKLSAgICAgICAg
aWYgKGN1cnJlbnQgPT0gc3RydWN0dXJlVG9GaW5kKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotaW5saW5lIHZvaWQgU3RydWN0dXJlOjpz
ZXRFbnVtZXJhdGlvbkNhY2hlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSkKLXsKLSAgICBBU1NFUlQoIWlzRGljdGlvbmFy
eSgpKTsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAg
ICAgYWxsb2NhdGVSYXJlRGF0YShnbG9iYWxEYXRhKTsKLSAgICByYXJlRGF0YSgpLT5zZXRFbnVt
ZXJhdGlvbkNhY2hlKGdsb2JhbERhdGEsIHRoaXMsIGVudW1lcmF0aW9uQ2FjaGUpOwotfQotCi1p
bmxpbmUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogU3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hl
KCkKLXsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPmVudW1lcmF0aW9uQ2FjaGUoKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFN0cnVjdHVyZUlubGluZXNfaAorI2RlZmluZSBTdHJ1Y3R1cmVJbmxpbmVzX2gKKworI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorCituYW1lc3BhY2UgSlND
IHsKKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywg
SW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCit7Cisg
ICAgQVNTRVJUKGdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoY2xh
c3NJbmZvKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoTm90TnVsbCwgYWxsb2Nh
dGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEs
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywgY2xhc3NJbmZvLCBpbmRleGluZ1R5
cGUsIGlubGluZUNhcGFjaXR5KTsKKyAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworICAgIHJldHVybiBzdHJ1Y3R1cmU7Cit9CisgICAgICAgIAoraW5saW5lIFN0cnVj
dHVyZSogU3RydWN0dXJlOjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
KQoreworICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJl
PihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSk7CisgICAgc3RydWN0dXJl
LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBDcmVhdGluZ0Vhcmx5Q2VsbCk7CisgICAgcmV0
dXJuIHN0cnVjdHVyZTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sK
KyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVy
ZSogbmV3U3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihn
bG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBu
ZXdTdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIGlmIChzdHJ1Y3R1
cmUtPnR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgbmV3U3RydWN0
dXJlLT5jbG9uZVJhcmVEYXRhRnJvbShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOworICAgIHJldHVy
biBuZXdTdHJ1Y3R1cmU7Cit9CisgICAgICAgIAoraW5saW5lIFByb3BlcnR5T2Zmc2V0IFN0cnVj
dHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSkKK3sKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8p
OworICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAg
ICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisK
KyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZChwcm9w
ZXJ0eU5hbWUudWlkKCkpLmZpcnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZzZXQg
OiBpbnZhbGlkT2Zmc2V0OworfQorCitpbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpn
ZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKK3sK
KyAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOworICAgIG1h
dGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAgICBpZiAoIW1f
cHJvcGVydHlUYWJsZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisKKyAgICBQcm9w
ZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZFdpdGhTdHJpbmcobmFt
ZS5pbXBsKCkpLmZpcnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBpbnZh
bGlkT2Zmc2V0OworfQorICAgIAoraW5saW5lIGJvb2wgU3RydWN0dXJlOjptYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0KQoreworICAgIHJl
dHVybiB0eXBlSW5mbygpLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSAmJiBnbG9iYWxPYmplY3Qo
KSA9PSBsZXhpY2FsR2xvYmFsT2JqZWN0OworfQorCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZp
c2l0b3I6OmludGVybmFsQXBwZW5kKEpTQ2VsbCogY2VsbCkKK3sKKyAgICBBU1NFUlQoIW1faXND
aGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKKyAgICBpZiAoIWNlbGwpCisgICAgICAg
IHJldHVybjsKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyAgICB2YWxpZGF0ZShjZWxsKTsK
KyNlbmRpZgorICAgIGlmIChIZWFwOjp0ZXN0QW5kU2V0TWFya2VkKGNlbGwpIHx8ICFjZWxsLT5z
dHJ1Y3R1cmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aXNpdENvdW50Kys7CisgICAg
ICAgIAorICAgIE1BUktfTE9HX0NISUxEKCp0aGlzLCBjZWxsKTsKKworICAgIC8vIFNob3VsZCBu
ZXZlciBhdHRlbXB0IHRvIG1hcmsgc29tZXRoaW5nIHRoYXQgaXMgemFwcGVkLgorICAgIEFTU0VS
VCghY2VsbC0+aXNaYXBwZWQoKSk7CisgICAgICAgIAorICAgIG1fc3RhY2suYXBwZW5kKGNlbGwp
OworfQorCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZy
b20oU3RydWN0dXJlKiBzdHJ1Y3R1cmVUb0ZpbmQpCit7CisgICAgZm9yIChTdHJ1Y3R1cmUqIGN1
cnJlbnQgPSB0aGlzOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cHJldmlvdXNJRCgpKSB7
CisgICAgICAgIGlmIChjdXJyZW50ID09IHN0cnVjdHVyZVRvRmluZCkKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSB2b2lkIFN0
cnVjdHVyZTo6c2V0RW51bWVyYXRpb25DYWNoZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUpCit7CisgICAgQVNTRVJUKCFp
c0RpY3Rpb25hcnkoKSk7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRh
KCkpCisgICAgICAgIGFsbG9jYXRlUmFyZURhdGEoZ2xvYmFsRGF0YSk7CisgICAgcmFyZURhdGEo
KS0+c2V0RW51bWVyYXRpb25DYWNoZShnbG9iYWxEYXRhLCB0aGlzLCBlbnVtZXJhdGlvbkNhY2hl
KTsKK30KKworaW5saW5lIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIFN0cnVjdHVyZTo6ZW51bWVy
YXRpb25DYWNoZSgpCit7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRh
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiByYXJlRGF0YSgpLT5lbnVtZXJhdGlv
bkNhY2hlKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9v
a3VwKENvZGVCbG9jayogY29kZUJsb2NrKSBjb25zdAoreworICAgIHJldHVybiBwcm90b3R5cGVG
b3JMb29rdXAoY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSk7Cit9CisKK2lubGluZSBKU1ZhbHVl
IFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Cit7CisgICAgaWYgKGlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBtX3Byb3Rv
dHlwZS5nZXQoKTsKKworICAgIEFTU0VSVCh0eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBl
KTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKK30KKworaW5s
aW5lIEpTVmFsdWUgU3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAoreworICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnBy
b3RvdHlwZUNoYWluKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICAvLyBXZSBjYWNoZSBvdXIgcHJvdG90eXBlIGNoYWlu
IHNvIG91ciBjbGllbnRzIGNhbiBzaGFyZSBpdC4KKyAgICBpZiAoIWlzVmFsaWQoZ2xvYmFsT2Jq
ZWN0LCBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKSkgeworICAgICAgICBKU1ZhbHVlIHBy
b3RvdHlwZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOworICAgICAgICBtX2Nh
Y2hlZFByb3RvdHlwZUNoYWluLnNldChnbG9iYWxEYXRhLCB0aGlzLCBTdHJ1Y3R1cmVDaGFpbjo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZS5pc051bGwoKSA/IDAgOiBhc09iamVjdChwcm90
b3R5cGUpLT5zdHJ1Y3R1cmUoKSkpOworICAgIH0KKyAgICByZXR1cm4gbV9jYWNoZWRQcm90b3R5
cGVDaGFpbi5nZXQoKTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnBy
b3RvdHlwZUNoYWluKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvdG90
eXBlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkp
OworfQorCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25zdAor
eworICAgIGlmICghY2FjaGVkUHJvdG90eXBlQ2hhaW4pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEpTVmFsdWUgcHJvdG90eXBlID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9iamVj
dCk7CisgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hl
ZFByb3RvdHlwZUNoYWluLT5oZWFkKCk7CisgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAmJiAh
cHJvdG90eXBlLmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChhc09iamVjdChwcm90b3R5cGUpLT5z
dHJ1Y3R1cmUoKSAhPSBjYWNoZWRTdHJ1Y3R1cmUtPmdldCgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICArK2NhY2hlZFN0cnVjdHVyZTsKKyAgICAgICAgcHJvdG90eXBlID0g
YXNPYmplY3QocHJvdG90eXBlKS0+cHJvdG90eXBlKCk7CisgICAgfQorICAgIHJldHVybiBwcm90
b3R5cGUuaXNOdWxsKCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBib29sIFN0
cnVjdHVyZTo6aXNWYWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQ
cm90b3R5cGVDaGFpbikgY29uc3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZChleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGNhY2hlZFByb3RvdHlwZUNoYWluKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBTdHJ1Y3R1cmVJbmxpbmVzX2gKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2
aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAKLSNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRl
ICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3BhcnNl
ci9Tb3VyY2VQcm92aWRlckNhY2hlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorI2lm
bmRlZiBXZWJDb3JlX0ZXRF9Tb3VyY2VQcm92aWRlckNhY2hlX2gKKyNkZWZpbmUgV2ViQ29yZV9G
V0RfU291cmNlUHJvdmlkZXJDYWNoZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU291cmNl
UHJvdmlkZXJDYWNoZS5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYg
KzM5LDcgQEAKIAogI2lmIFVTRShKU0MpICAKICNpbmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlk
ZXIuaD4KKyNpbmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5oPgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188759</attachid>
            <date>2013-02-17 01:53:36 -0800</date>
            <delta_ts>2013-02-17 14:42:37 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>79422</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBA
QAorMjAxMy0wMi0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgYWxsIFN0cnVjdHVyZSBvdXQtb2YtbGluZSBpbmxpbmUgbWV0aG9kcyB0byBTdHJ1Y3R1
cmVJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDAyNAorCisgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IE1hcmsgSGFobmVuYmVyZyBh
bmQgcmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyB3
YXMgc3VwcG9zZWQgdG8gYmUgZWFzeS4KKyAgICAgICAgCisgICAgICAgIEJ1dCwgaW5pdGlhbGx5
LCB0aGVyZSB3YXMgYSBTdHJ1Y3R1cmUgaW5saW5lIG1ldGhvZCBpbiBDb2RlQmxvY2suaCwgYW5k
IG1vdmluZyB0aGF0CisgICAgICAgIGludG8gU3RydWN0dXJlSW5saW5lcy5oIG1lYW50IHRoYXQg
T3BlcmF0aW9ucy5oIGluY2x1ZGVkIENvZGVCbG9jay5oLiBUaGlzIHdvdWxkCisgICAgICAgIGNh
dXNlIFdlYkNvcmUgYnVpbGQgZmFpbHVyZXMsIGJlY2F1c2UgQ29kZUJsb2NrLmggdHJhbnNpdGl2
ZWx5IGluY2x1ZGVkIHRoZSBKU0MKKyAgICAgICAgcGFyc2VyICh2aWEgbWFueSwgbWFueSBwYXRo
cyksIGFuZCB0aGUgSlNDIHBhcnNlciBkZWZpbmVzIHRva2VucyB1c2luZyBlbnVtZXJhdGlvbgor
ICAgICAgICBlbGVtZW50cyB0aGF0IENTU0dyYW1tYXIuY3BwIChnZW5lcmF0ZWQgYnkgYmlzb24p
IHdvdWxkICNkZWZpbmUuIEZvciBleGFtcGxlLAorICAgICAgICBiaXNvbiB3b3VsZCBnaXZlIENT
U0dyYW1tYXIuY3BwIGEgI2RlZmluZSBGVU5DVElPTiAxMjMsIGFuZCB3b3VsZCBkbyBzbyBiZWZv
cmUKKyAgICAgICAgaW5jbHVkaW5nIGFueXRoaW5nIGludGVyZXN0aW5nLiBUaGUgSlNDIHBhcnNl
ciB3b3VsZCBoYXZlIGFuIGVudW0gdGhhdCBpbmNsdWRlZAorICAgICAgICBGVU5DVElPTiBhcyBh
biBlbGVtZW50LiBIZW5jZSB0aGUgSlNDIHBhcnNlciBpbmNsdWRlZCBpbnRvIENTU0dyYW1tYXIu
Y3BwIHdvdWxkIGhhdmUKKyAgICAgICAgYSB0b2tlbiBlbGVtZW50IGNhbGxlZCBGVU5DVElPTiBk
ZWNsYXJlZCBpbiBhbiBlbnVtZXJhdGlvbiwgYnV0IEZVTkNUSU9OIHdhcworICAgICAgICAjZGVm
aW5lJ2QgdG8gMTIzLCBsZWFkaW5nIHRvIGEgcGFyc2VyIGVycm9yLgorICAgICAgICAKKyAgICAg
ICAgV293LgorICAgICAgICAKKyAgICAgICAgU28gSSByZW1vdmVkIGFsbCB0cmFuc2l0aXZlIGlu
Y2x1ZGUgcGF0aHMgZnJvbSBDb2RlQmxvY2suaCB0byB0aGUgSlNDIFBhcnNlci4gSQorICAgICAg
ICBiZWxpZXZlIEkgd2FzIGFibGUgdG8gZG8gc28gd2l0aG91dCBvdXQtb2YtbGluaW5nIGFueXRo
aW5nIGludGVyZXN0aW5nIG9yIHBlcmZvcm1hbmNlCisgICAgICAgIGNyaXRpY2FsLiBUaGlzIGlz
IHByb2JhYmx5IGEgcHVyZWx5IGdvb2QgdGhpbmcgdG8gaGF2ZSBkb25lOiBpdCB3aWxsIGJlIG5p
Y2UgdG8gYmUKKyAgICAgICAgYWJsZSB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIHBhcnNlciB3aXRo
b3V0IGhhdmluZyB0byBjb21waWxlIHRoZSB1bml2ZXJzZS4KKyAgICAgICAgCisgICAgICAgIE9m
IGNvdXJzZSwgZG9pbmcgdGhpcyBjYXVzZWQgYSBidW5jaCBvZiBvdGhlciB0aGluZ3MgdG8gbm90
IGNvbXBpbGUsIHNpbmNlIGEgYnVuY2ggb2YKKyAgICAgICAgaGVhZGVycyByZWxpZWQgb24gdGhp
bmdzIGJlaW5nIGltcGxpY2l0bHkgaW5jbHVkZWQgZm9yIHRoZW0gd2hlbiB0aGV5IHRyYW5zaXRp
dmVseQorICAgICAgICBpbmNsdWRlZCB0aGUgcGFyc2VyLiBJIGZpeGVkIGEgbG90IG9mIHRoYXQu
CisgICAgICAgIAorICAgICAgICBGaW5hbGx5LCBJIGVuZGVkIHVwIHJlbW92aW5nIHRoZSBtZXRo
b2QgdGhhdCBkZXBlbmRlZCBvbiBDb2RlQmxvY2suaCBmcm9tCisgICAgICAgIFN0cnVjdHVyZUlu
bGluZXMuaCwgYW5kIHB1dHRpbmcgaXQgaW4gU3RydWN0dXJlLmNwcC4gVGhhdCBtaWdodCBzZWVt
IGxpa2UgYWxsIG9mIHRoaXMKKyAgICAgICAgd2FzIGEgd2FzdGUgb2YgdGltZSwgZXhjZXB0IHRo
YXQgSSBzdXNwZWN0IGl0IHdhcyBhIHdvcnRod2hpbGUgZm9yY2luZyBmdW5jdGlvbiBmb3IKKyAg
ICAgICAgY2xlYW5pbmcgdXAgYSBidW5jaCBvZiBjcnVmdC4KKyAgICAgICAgCisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogYnl0ZWNvZGUvRXZhbENvZGVDYWNoZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Nh
bXBsaW5nVG9vbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtZXRlckNvdW50
KToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
aDoKKyAgICAgICAgKFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTGFi
ZWwuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuaDoKKyAgICAgICAgKiBkZmcvREZH
RlBSSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdSZWdpc3RlckJhbmsuaDoKKyAgICAgICAgKiBo
ZWFwL0hhbmRsZVN0YWNrLmNwcDoKKyAgICAgICAgKiBqaXQvSklUV3JpdGVCYXJyaWVyLmg6Cisg
ICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHBhcnNl
ci9QYXJzZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyRXJyb3IuaDogQWRkZWQuCisgICAg
ICAgIChKU0MpOgorICAgICAgICAoSlNDOjpQYXJzZXJFcnJvcjo6UGFyc2VyRXJyb3IpOgorICAg
ICAgICAoUGFyc2VyRXJyb3IpOgorICAgICAgICAoSlNDOjpQYXJzZXJFcnJvcjo6dG9FcnJvck9i
amVjdCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlck1vZGVzLmg6CisgICAgICAgICogcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlND
OjpTb3VyY2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQ
cm92aWRlcjo6flNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlk
ZXIuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChTb3VyY2VQcm92aWRlcik6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojpwcm90b3R5cGVGb3JMb29rdXApOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6aW50
ZXJuYWxBcHBlbmQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5z
aXRpb25lZEZyb20pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnNldEVudW1lcmF0aW9uQ2Fj
aGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmVudW1lcmF0aW9uQ2FjaGUpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cCk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmlzVmFs
aWQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorCiAyMDEzLTAy
LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1
cHBvcnQgZm9yIGJ5dGVjb2RlIGNvbW1lbnRzLCBzaW5jZSBpdCBkb2Vzbid0IGJ1aWxkLCBhbmQg
aGFzbid0IGJlZW4gdXNlZCBpbiBhIHdoaWxlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNiArMTgyLDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBwYXJzZXIvTm9kZXMuY3BwCiAgICAgcGFyc2VyL1BhcnNl
ci5jcHAKICAgICBwYXJzZXIvUGFyc2VyQXJlbmEuY3BwCisgICAgcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmNwcAogICAgIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAogCiAgICAgcHJvZmls
ZXIvUHJvZmlsZXJCeXRlY29kZS5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNDkyLDEyICs0OTIsMTQg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckFyZW5h
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJBcmVuYS5oIFwKKwlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Jlc3VsdFR5cGUuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXJDYWNoZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXJDYWNoZS5oIFwKQEAgLTc1OSw2ICs3NjEsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9U
YXJnZXQucHJpCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTkzLDYgKzE5Myw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBhcnNlci9Ob2Rlcy5jcHAgXAogICAgIHBhcnNlci9QYXJzZXJBcmVuYS5jcHAgXAogICAg
IHBhcnNlci9QYXJzZXIuY3BwIFwKKyAgICBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwIFwKICAg
ICBwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgXAogICAgIHByb2ZpbGVyL1Byb2ZpbGVy
Qnl0ZWNvZGUuY3BwIFwKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmggXApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAko
cmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
RnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
QVBJU2hpbXMuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CisjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5j
bHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvagkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTEzMzgsNiArMTMzOCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFN0cnVjdHVyZUlubGluZXMu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
cnVudGltZVxTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjQ2
Niw2ICsyNDcwLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHBhcnNlclxQYXJzZXJFcnJvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwYXJzZXJcUGFyc2VyTW9kZXMuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CkBAIC0yNDc4LDYgKzI0ODYsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGFyc2VyXFNvdXJjZVByb3ZpZGVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5ccGFyc2VyXFNvdXJjZVByb3ZpZGVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAKIAkJMEYyQkRDNTExNTIyOEZGRDAwQ0Q4OTEw
IC8qIERGR1ZhcmlhYmxlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYyQkRDNTAxNTIyOEZGQTAwQ0Q4OTEwIC8qIERGR1ZhcmlhYmxlRXZl
bnQuY3BwICovOyB9OwogCQkwRjJDNTU2RjE0NzM4RjMxMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nr
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQzU1
NkUxNDczOEYyRTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjJDNTU3MDE0NzM4RjM1MDAxMjFFNEYg
LyogREZHQ29kZUJsb2Nrcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjJDNTU2RDE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5jcHAg
Ki87IH07CisJCTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTk4N0YyRjE2ODI4
QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdN
aW5pZmllZElELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkI0QjUxMDE2QjNBOTY0MDAzRjY5NkIgLyogREZHTWluaWZpZWRJRC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTFBMTUzRTY4RjIw
MDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExNzE1M0U2OEVGMDAzRUQwRkYgLyog
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovOyB9OwogCQkwRjNCM0ExQjE1M0U2OEY0MDAz
RUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE4MTUzRTY4RUYwMDNFRDBGRiAvKiBERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlmaWNhdGlvblBo
YXNlLmNwcCAqLzsgfTsKQEAgLTEzMSw2ICsxMzMsNyBAQAogCQkwRjQ2ODBEMzE0QkJEMTY3MDBC
RkUyNzIgLyogTExJbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjQ2ODBDRjE0QkJCM0QxMDBCRkUyNzIgLyogTExJbnREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwRDQxNEJC
RDI0OTAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwRDAxNEJCQzVGODAwQkZFMjcyIC8q
IEhvc3RDYWxsUmV0dXJuVmFsdWUuY3BwICovOyB9OwogCQkwRjQ2ODBENTE0QkJEMjRCMDBCRkUy
NzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0
dXJuVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTNBRjgxNkQwQ0FE
MTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMEY1NTQxQjExNjEzQzFG
QjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFs
UG9pbnRlci5jcHAgKi87IH07CiAJCTBGNTU0MUIyMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFs
UG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1NTQxQjAxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NUYwRjQxNEQxMDYzOTAw
QUM3NjQ5IC8qIEFic3RyYWN0UEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1NUYwRjExNEQxMDYzNjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuY3Bw
ICovOyB9OwpAQCAtMjAxLDcgKzIwNCw3IEBACiAJCTBGOTZFQkIzMTY2NzZFRjYwMDhCQURFMyAv
KiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5NkVCQjExNjY3NkVGNDAwOEJBREUzIC8qIENvZGVCbG9ja1dpdGhK
SVRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTc0OTZGMTY4N0FERTIwMEE0
RkY2QSAvKiBKU0NlbGxJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY5ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8qIFByZWNpc2VKdW1w
VGFyZ2V0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjk4MjA1RDE2QkZFMzdGMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmNwcCAqLzsg
fTsKLSAgICAgICAgICAgICAgICAwRjk4MjA2MTE2QkZFMzgzMDAyNDBEMDIgLyogUHJlY2lzZUp1
bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjk4MjA1RTE2QkZFMzdGMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY5ODIwNjExNkJG
RTM4MzAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5ODIwNUUxNkJGRTM3RjAwMjQwRDAyIC8qIFBy
ZWNpc2VKdW1wVGFyZ2V0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGOUQzMzcwMTY1REJCOTAwMDVBRDM4NyAvKiBEaXNhc3NlbWJsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RDMzNkUx
NjVEQkI4RDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5jcHAgKi87IH07CiAJCTBGOUZDOEMzMTRF
MUI1RkUwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZDOEJGMTRFMUI1RkIwMEQ1MkFF
MCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCAqLzsgfTsKIAkJMEY5RkM4QzQxNEUxQjYw
MDAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUZDOEMwMTRFMUI1RkIwMEQ1MkFFMCAvKiBQ
b2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTI1NCw2ICsyNTcsOCBAQAogCQkwRkM4MTUwQjE0MDQzQzBFMDBD
RkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4MTUwODE0MDQzQkNBMDBDRkE2MDMgLyogV3JpdGVC
YXJyaWVyU3VwcG9ydC5jcHAgKi87IH07CiAJCTBGQzgxNTE1MTQwNTExOUIwMENGQTYwMyAvKiBW
VGFibGVTcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDODE1MTYxNDA1
MTFCNTAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTEyMTQwNTExODYwMENGQTYwMyAvKiBWVGFi
bGVTcGVjdHJ1bS5jcHAgKi87IH07CisJCTBGQ0NBRTQ1MTZEMENGNzQwMEQwQzY1QiAvKiBQYXJz
ZXJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDQ0FFNDMxNkQwQ0Y2RTAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZEMkM5MjQxNkQwMUVFOTAwQzc4
MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEZEM0M4MjYxNDExNUQ0MDAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzQzgyMDE0MTE1Q0Y4MDBGRDgxQ0Ig
LyogREZHRHJpdmVyLmNwcCAqLzsgfTsKIAkJMEZEM0M4MjgxNDExNUQ0RjAwRkQ4MUNCIC8qIERG
R0RyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8qIERGR0RyaXZlci5oICovOyB9OwogCQkwRkQ4MUFE
MjE1NEZCNEVFMDA5ODNFNzIgLyogREZHRG9taW5hdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDRjE1NEZCNEVCMDA5ODNFNzIgLyog
REZHRG9taW5hdG9ycy5jcHAgKi87IH07CkBAIC0zMjAsNiArMzI1LDE0IEBACiAJCTBGRjcyOUJG
MTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNzI5QTAxNjZBRDM0NzAwMEY1QkEzIC8qIFBy
b2ZpbGVyT3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEZGNzI5QzAxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyT3JpZ2luU3RhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjcyOUEy
MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpblN0YWNrLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZGOTIyRDQxNEY0NkI0MTAwNDFB
MjRFIC8qIExMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2ODBBMTE0QkE3RjgyMDBCRkUyNzIgLyogTExJbnRP
ZmZzZXRzRXh0cmFjdG9yLmNwcCAqLzsgfTsKKwkJMEZGQjkyMTgxNkQwMkVCMjAwNTVBNURCIC8q
IERGR0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZCNEI1MTkxNkI2Mjc3MjAwM0Y2OTZCIC8qIERGR0FsbG9jYXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFBMTZEMDJF
QzUwMDU1QTVEQiAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZENTY1MjIxNkFCNzgwQTAwMTk3NjUzIC8qIERG
R0Jhc2ljQmxvY2tJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUIxNkQwMkYwMTAwNTVBNURCIC8qIERGR05vZGVBbGxvY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjRC
NTFGMTZCNjI3NzIwMDNGNjk2QiAvKiBERkdOb2RlQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUMxNkQwMkYxMTAwNTVB
NURCIC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1OTg3RjJDMTY3RkU4NEIwMDNDMkY4RCAvKiBERkdP
U1JFeGl0Q29tcGlsYXRpb25JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUQxNkQwMkYzMDAwNTVBNURCIC8qIERGR1Nsb3dQYXRo
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjFFM0E1MDE1MzdDMkNCMDAwRjk0NTYgLyogREZHU2xvd1BhdGhHZW5lcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkZCOTIxRTE2
RDAyRjQ3MDA1NUE1REIgLyogREZHVmFyaWFkaWNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NUEzMUUxNkFCNzZBRTAwNzc1NzFFIC8q
IERGR1ZhcmlhZGljRnVuY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRkZCOTIxRjE2RDAzMzA1MDA1NUE1REIgLyogKG51bGwpIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjIwMTZEMDMzQjcwMDU1QTVEQiAvKiBOb2RlQ29u
c3RydWN0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzBEQUQwMzBGQjFFQjFBMDA4MkQyMDUgLyogTm9kZUNvbnN0cnVjdG9ycy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRkZDOTU3MTRFRjkw
QTAwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGQzk0QjE0RUY5MDk1MDBDNzI1MzIgLyogREZHQ0ZBUGhh
c2UuY3BwICovOyB9OwogCQkwRkZGQzk1ODE0RUY5MEEyMDBDNzI1MzIgLyogREZHQ0ZBUGhhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkZDOTRD
MTRFRjkwOTUwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRkZDOTU5MTRFRjkwQTYwMEM3MjUzMiAvKiBE
RkdDU0VQaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkZGQzk0RDE0RUY5MDk1MDBDNzI1MzIgLyogREZHQ1NFUGhhc2UuY3BwICovOyB9OwpA
QCAtNTA1LDcgKzUxOCw3IEBACiAJCTY1NUVCMjlCMTBDRTI1ODEwMDFBOTkwRSAvKiBOb2Rlc0Nv
ZGVnZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjU1RUIyOUExMENFMjU4MTAwMUE5OTBFIC8qIE5vZGVzQ29kZWdlbi5jcHAgKi87IH07CiAJCTdF
NEVFNzA5MEVCQjc5NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0RUU3MDgwRUJCNzk2MzAwNTkzNEFB
IC8qIFN0cnVjdHVyZUNoYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0U0RUU3MEYwRUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWlu
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEVF
NzBFMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5jcHAgKi87IH07Ci0JCTdFRkYw
MDY0MEVDMDVBOUEwMEFBN0M5MyAvKiBOb2RlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VGRjAwNjMwRUMwNUE5QTAwQUE3QzkzIC8qIE5vZGVJ
bmZvLmggKi87IH07CisJCTdFRkYwMDY0MEVDMDVBOUEwMEFBN0M5MyAvKiBOb2RlSW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VGRjAwNjMwRUMw
NUE5QTAwQUE3QzkzIC8qIE5vZGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFs
dWVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzA4OTRENjBGQUZCQTJEMDAwMDE4NjUgLyogSlNBUElWYWx1ZVdyYXBwZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjAxNjFFMzBGM0E4
M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwMTYxREYwRjNBODNDMTAwRjg0NzEwIC8q
IEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NjAxNjFFNDBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3Nl
bWJsZXJYODYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2MDE2MUUwMEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDQsMTIgKzU1Nywx
MiBAQAogCQk4NkFFNjRBODEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTY0QTUx
MzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmNwcCAqLzsgfTsKIAkJODZBRTY0
QTkxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNjRBNjEzNUU1RTFDMDA5NjMwMTIg
LyogTWFjcm9Bc3NlbWJsZXJTSDQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NkFFNjRBQTEzNUU1RTFDMDA5NjMwMTIgLyogU0g0QXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNjRB
NzEzNUU1RTFDMDA5NjMwMTIgLyogU0g0QXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODZBRTZDNEQxMzZBMTFFNDAwOTYzMDEyIC8q
IERGR0ZQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2QUU2QzRCMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggKi87IH07Ci0JCTg2
QUU2QzRFMTM2QTExRTQwMDk2MzAxMiAvKiBERkdHUFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNkM0QzEzNkExMUU0MDA5NjMwMTIgLyog
REZHR1BSSW5mby5oICovOyB9OworCQk4NkFFNkM0RDEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBS
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZB
RTZDNEIxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0ZQUkluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkFFNkM0RTEzNkExMUU0MDA5NjMwMTIg
LyogREZHR1BSSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZBRTZDNEMxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkI1ODI2NzE0RDI3OTZD
MDBBOUMzMDYgLyogQ29kZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZCNTgyMkUxNEQyMzczQjAwQTlDMzA2IC8qIENvZGVQcm9maWxl
LmNwcCAqLzsgfTsKIAkJODZCNTgyNjkxNEQyNzk3MDAwQTlDMzA2IC8qIENvZGVQcm9maWxpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwM0NF
RjIxNEM3NTQ2NDAwQUU1OUUzIC8qIENvZGVQcm9maWxpbmcuY3BwICovOyB9OwogCQk4NkJCMDlD
MDEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkJCMDlCRTEzOEUzODFCMDA1NjcwMkYgLyogREZH
UmVwYXRjaC5jcHAgKi87IH07Ci0JCTg2QkIwOUMxMTM4RTM4MUIwMDU2NzAyRiAvKiBERkdSZXBh
dGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkJC
MDlCRjEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5oICovOyB9OworCQk4NkJCMDlDMTEz
OEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODZCQjA5QkYxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0
Y2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NkMzNkVFQTBFRTEyODlEMDBCM0RGNTkgLyogTWFjcm9Bc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzM2RUU5MEVFMTI4OUQwMEIzREY1
OSAvKiBNYWNyb0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxl
ckFSTS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkM1NjhERDExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwICovOyB9Owog
CQk4NkM1NjhFMTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhERTExQTIxM0VF
MDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU4OSwxOSArNjAyLDE5IEBACiAJCTg2RUJGMzAz
MTU2MEYwNkEwMDhFOTIyMiAvKiBOYW1lUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUJGMkZEMTU2MEYwMzYwMDhFOTIyMiAvKiBO
YW1lUHJvdG90eXBlLmNwcCAqLzsgfTsKIAkJODZFQkYzMDQxNTYwRjA2QTAwOEU5MjIyIC8qIE5h
bWVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RUJGMkZFMTU2MEYwMzYwMDhFOTIyMiAvKiBOYW1lUHJvdG90eXBlLmggKi87IH07CiAJ
CTg2RUM5REM0MTMyOERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNDEzMjhERjgy
MDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuY3BwICovOyB9OwotCQk4NkVDOURDNTEzMjhE
RjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI1MTMyOERGODIwMDJCMkFENyAvKiBERkdC
eXRlQ29kZVBhcnNlci5oICovOyB9OwotCQk4NkVDOURDNjEzMjhERjgyMDAyQjJBRDcgLyogREZH
R2VuZXJhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBERkdHZW5lcmF0aW9uSW5mby5oICov
OyB9OworCQk4NkVDOURDNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI1MTMy
OERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2RUM5REM2MTMyOERGODIwMDJCMkFENyAv
KiBERkdHZW5lcmF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODZFQzlEQjYxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZv
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZF
QzlEQzcxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI3MTMyOERGODIwMDJCMkFENyAvKiBE
RkdHcmFwaC5jcHAgKi87IH07Ci0JCTg2RUM5REM4MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFw
aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlE
QjgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggKi87IH07CisJCTg2RUM5REM4MTMyOERG
ODIwMDJCMkFENyAvKiBERkdHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZFQzlEQjgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQzlEQ0Ix
MzI4REY4MjAwMkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REJCMTMyOERGODIwMDJCMkFENyAvKiBE
RkdKSVRDb21waWxlci5jcHAgKi87IH07Ci0JCTg2RUM5RENDMTMyOERGODIwMDJCMkFENyAvKiBE
RkdKSVRDb21waWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZFQzlEQkMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmggKi87IH07
CisJCTg2RUM5RENDMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21waWxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQkMxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQzlEQ0YxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJh
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFQzlEQkYxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuY3BwICovOyB9OwotCQk4
NkVDOUREMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzAxMzI4REY4MjAwMkIyQUQ3
IC8qIERGR09wZXJhdGlvbnMuaCAqLzsgfTsKLQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8q
IERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZFQzlEQzExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oICov
OyB9OworCQk4NkVDOUREMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzAxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVn
aXN0ZXJCYW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NkVDOURDMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQzlERDIxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMyMTMyOERGODIwMDJCMkFENyAvKiBERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgKi87IH07Ci0JCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBE
RkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmgg
Ki87IH07Ci0JCTg2RUNBM0VBMTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAy
QjJBRDcgLyogREZHTm9kZS5oICovOyB9OwotCQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyog
REZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsK
KwkJODZFQzlERDMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMzEzMjhERjgy
MDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkVDQTNFQTEzMkRFRjFDMDAyQjJBRDcgLyogREZH
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZF
Q0EzRTkxMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyog
REZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkYzRUVCQjE2OENE
RTkzMDA3N0I5MkEgLyogSlNCbG9ja0FkYXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNFRUI3MTY4Q0NGNzUwMDc3QjkyQSAvKiBKU0Jsb2Nr
QWRhcHRvci5oICovOyB9OwogCQk4NkYzRUVCQzE2OENERTkzMDA3N0I5MkEgLyogSlNCbG9ja0Fk
YXB0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkYzRUVCODE2OENDRjc1MDA3N0I5MkEgLyogSlNCbG9ja0FkYXB0b3IubW0gKi87IH07CiAJCTg2
RjNFRUJEMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGM0VFQjkxNjhDQ0Y3NTAw
NzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggKi87IH07CkBAIC02MzcsOSArNjUwLDkg
QEAKIAkJOTY5QTA3MkEwRUQxQ0U2OTAwRjFGNjgxIC8qIExhYmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDcyNzBFRDFDRTY5MDBGMUY2ODEg
LyogTGFiZWwuaCAqLzsgfTsKIAkJOTY5QTA3MkIwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVy
SUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEw
NzI4MEVEMUNFNjkwMEYxRjY4MSAvKiBSZWdpc3RlcklELmggKi87IH07CiAJCTk2OUEwNzk2MEVE
MUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTAwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9j
ay5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1mbm8tc3RyaWN0LWFsaWFz
aW5nIjsgfTsgfTsKLQkJOTY5QTA3OTcwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTEwRUQx
RDNBRTAwRjFGNjgxIC8qIENvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KCk7IH07IH07Ci0JCTk2OUEwNzk4MEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MjBF
RDFEM0FFMDBGMUY2ODEgLyogRXZhbENvZGVDYWNoZS5oICovOyB9OwotCQk5NjlBMDc5OTBFRDFE
M0FFMDBGMUY2ODEgLyogSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzkzMEVEMUQzQUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlv
bi5oICovOyB9OworCQk5NjlBMDc5NzBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MTBFRDFE
M0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTY5QTA3OTgwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxDb2Rl
Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2
OUEwNzkyMEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTY5QTA3OTkwRUQxRDNBRTAwRjFG
NjgxIC8qIEluc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NjlBMDc5MzBFRDFEM0FFMDBGMUY2ODEgLyogSW5zdHJ1Y3Rpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NjlBMDc5QTBF
RDFEM0FFMDBGMUY2ODEgLyogT3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzk0MEVEMUQzQUUwMEYxRjY4MSAvKiBPcGNvZGUuY3Bw
ICovOyB9OwogCQk5NjlBMDc5QjBFRDFEM0FFMDBGMUY2ODEgLyogT3Bjb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5NTBFRDFEM0FFMDBG
MUY2ODEgLyogT3Bjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTcxRURFQTYxMTY5RTBEMzAwNUU0MjYyIC8qIFRlcm1pbmF0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RjY5MDNBMTE2OURG
N0YwMEE2QkI0NiAvKiBUZXJtaW5hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY2OCwxMiArNjgxLDEyIEBACiAJCUE3NjZCNDRGMEVFOERD
RDEwMDk1MThDQSAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhl
Y3V0YWJsZUFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3NkM1MTc2MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2QzUxNzQx
MTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2RjI3OTQxNUYxM0M5NjAwNTE3RDY3IC8q
IFVubGlua2VkQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3OUU3ODFFMTVFRUNCQTgwMDQ3Qzg1NSAvKiBVbmxpbmtlZENvZGVCbG9j
ay5jcHAgKi87IH07Ci0JCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkY1
NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgfTsKKwkJQTc2RjU0
QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8q
IEpJVFdyaXRlQmFycmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3N0YxODIxMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RjE4MUYxNjQw
ODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5jcHAgKi87IH07CiAJCUE3N0YxODIyMTY0MDg4QjIw
MDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3N0YxODIwMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdGMTgyNTE2
NDE5MkM3MDA2NDBBNDcgLyogUGFyc2VyTW9kZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0YxODI0MTY0MTkyNTQwMDY0MEE0NyAvKiBQYXJzZXJN
b2Rlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NDExQjk4QjhEMDA2NUExNEYg
LyogQVNUQnVpbGRlci5oICovOyB9OwotCQlBNzg0QTI2NDExRDE2NjIyMDA1Nzc2QUMgLyogU3lu
dGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTdBN0VFNzcxMUI5OEI4RDAwNjVBMTRGIC8qIFN5bnRheENoZWNrZXIuaCAqLzsgfTsKKwkJ
QTc4NEEyNjExMUQxNjYyMjAwNTc3NkFDIC8qIEFTVEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc0MTFCOThCOEQwMDY1QTE0RiAv
KiBBU1RCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQTc4NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc3MTFCOThC
OEQwMDY1QTE0RiAvKiBTeW50YXhDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdBRkMxNzkxNUY3RUZFMzAwNDhGNTdCIC8qIFJlc29s
dmVPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3QUZDMTc3MTVGN0VGRTMwMDQ4RjU3QiAvKiBSZXNvbHZlT3BlcmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCNDhGNDkwRUU4
OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjYwRUU3NENGQzAwRENCREI2IC8q
IEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwICovOyB9OwogCQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhB
MzYgLyogSlNFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3QjRBQ0FFMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03NDAs
NyArNzUzLDcgQEAKIAkJQkMxOEM0MkMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTVmFsdWVSZWYuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODJCNkVBMEE0
MzAwQjMwMDUxN0NGQyAvKiBKU1ZhbHVlUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwogCQlCQzE4QzQyRDBFMTZGNUNEMDBCMzQ0NjAgLyogSlNWYXJp
YWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRGMjUyNTYwRDA4REQ4RDAwNEVDRkZGIC8qIEpTVmFyaWFibGVPYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQyRTBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNXcmFwcGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUM3QTE3MjBBOEVBQUNCMDBGQTM3RUEgLyogSlNXcmFw
cGVyT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQkMxOEM0MzEwRTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2NjAyNTU1OTdEMDFGRjYwRjcg
LyogTGV4ZXIuaCAqLzsgfTsKKwkJQkMxOEM0MzEwRTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2NjAy
NTU1OTdEMDFGRjYwRjcgLyogTGV4ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQzNzBFMTZGNUNEMDBCMzQ0NjAgLyogTG9va3VwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg2OTAy
NTU1OTdEMDFGRjYwRjcgLyogTG9va3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0M0MwRTE2RjVDRDAwQjM0NDYwIC8qIE1hdGhPYmpl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJB
ODZCMDI1NTU5N0QwMUZGNjBGNyAvKiBNYXRoT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0M0YwRTE2RjVDRDAwQjM0NDYwIC8q
IE5vZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NjkyQTg2RTAyNTU1OTdEMDFGRjYwRjcgLyogTm9kZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzUxLDcgKzc2NCw3IEBACiAJCUJDMThDNDQ1
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgwQzcwRTE2RDRFOTAwQTA2RTkyIC8q
IE9iamVjdENvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdFByb3RvdHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgw
QzkwRTE2RDRFOTAwQTA2RTkyIC8qIE9iamVjdFByb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDQ4MEUxNkY1Q0QwMEIzNDQ2
MCAvKiBPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNjkyQTg3ODAyNTU1OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9ucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDRCMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQlCQzE4QzQ0QjBFMTZGNUNEMDBCMzQ0
NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTAwRTE2RjVDRDAwQjM0
NDYwIC8qIFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1NzQyRjY0MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTEwRTE2RjVDRDAw
QjM0NDYwIC8qIFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUFCODM1NTBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1
MjBFMTZGNUNEMDBCMzQ0NjAgLyogTGVnYWN5UHJvZmlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAvKiBM
ZWdhY3lQcm9maWxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC03ODQsNyArNzk3LDcgQEAKIAkJQkM5MDQxNDgwRUI5MjUwOTAwRkUyNkZBIC8q
IFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM5MDQxNDcwRUI5MjUwOTAwRkUyNkZBIC8qIFN0cnVjdHVyZVRy
YW5zaXRpb25UYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDOTU0MzdEMEVCQTcwRkQwMDcyQjZEMyAvKiBQcm9wZXJ0eU1hcEhhc2hUYWJs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NTQz
N0MwRUJBNzBGRDAwNzJCNkQzIC8qIFByb3BlcnR5TWFwSGFzaFRhYmxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCRTJDQUUxNEU5ODVBQTAw
MDU5M0FEIC8qIEdDQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNCRTJDQUQxNEU5ODVBQTAwMDU5M0FEIC8qIEdDQXNzZXJ0aW9ucy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDQ0Yw
RDA4MEVGMEFBQjkwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDRjBEMDcwRUYwQUFCOTAwNDEzQzhG
IC8qIFN0cnVjdHVyZVN0dWJJbmZvLmggKi87IH07CisJCUJDQ0YwRDA4MEVGMEFBQjkwMDQxM0M4
RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDRjBEMDcwRUYwQUFCOTAwNDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJ
bmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkNDRjBEMEMwRUYwQjhBNTAwNDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0YwRDBCMEVGMEI4QTUw
MDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5jcHAgKi87IH07CiAJCUJDRDIwMkMyMEUxNzA2
QTcwMDJDN0U4MiAvKiBSZWdFeHBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEMjAyQkUwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4
cENvbnN0cnVjdG9yLmggKi87IH07CiAJCUJDRDIwMkM0MEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdF
eHBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDRDIwMkMwMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCAqLzsgfTsK
QEAgLTc5Nyw3ICs4MTAsNyBAQAogCQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0
dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
REUzQUIwMEU2QzgyQ0YwMDE0NTNBNyAvKiBTdHJ1Y3R1cmUuY3BwICovOyB9OwogCQlCQ0Y2MDUx
NDBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0ZE
OEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4QzkwMEVFQjJFRTcwMDI4Mzg0OCAvKiBK
dW1wVGFibGUuY3BwICovOyB9OwotCQlCQ0ZEOEM5MzBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRh
YmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZE
OEM5MTBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggKi87IH07CisJCUJDRkQ4QzkzMEVF
QjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4QzkxMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjBC
QTkyRDE2QkIxQzE1MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjBCQTkyQzE2QkIxQzE1
MDBCM0FFQTIgLyogU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzIxMTIyRTExNUREOUFCMzAwNzkwRTNB
IC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMjExMjJERTE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFy
ZWREYXRhLmNwcCAqLzsgfTsKIAkJQzIxMTIyRTIxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFk
U2hhcmVkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzIxMTIyREYxNUREOUFCMzAwNzkwRTNBIC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDEyLDYgKzEw
MjUsNyBAQAogCQkwRjQ2ODBDRjE0QkJCM0QxMDBCRkUyNzIgLyogTExJbnREYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50RGF0YS5oOyBwYXRoID0gbGxpbnQvTExJ
bnREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDY4MEQwMTRCQkM1Rjgw
MEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhvc3RDYWxsUmV0dXJuVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5W
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZh
bHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDkzQUY4MTZEMENBRDEwMDg0
NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTb3VyY2VQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVjaWFsUG9pbnRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTU0MUIwMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFs
UG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVjaWFsUG9pbnRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1RjBGMTE0RDEwNjM2MDBBQzc2
NDkgLyogQWJzdHJhY3RQQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBYnN0cmFjdFBDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNDcsNiAr
MTE2MSw4IEBACiAJCTBGQzgxNTEyMTQwNTExODYwMENGQTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWVGFibGVTcGVjdHJ1bS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzgxNTE0MTQwNTExOEQwMENGQTYw
MyAvKiBWVGFibGVTcGVjdHJ1bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
VGFibGVTcGVjdHJ1bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNCNDA4NTE1
QzBBM0MzMDA0ODkzMkIgLyogU2xvdFZpc2l0b3JJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNsb3RWaXNpdG9ySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRkNDQUU0MzE2RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEZEMkM5MjMxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlu
bGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQzQzgyMDE0MTE1Q0Y4MDBGRDgx
Q0IgLyogREZHRHJpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0RyaXZlci5jcHA7IHBhdGggPSBkZmcvREZHRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8qIERGR0RyaXZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEcml2ZXIuaDsgcGF0aCA9IGRmZy9E
RkdEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZENTY1MjIxNkFCNzgw
QTAwMTk3NjUzIC8qIERGR0Jhc2ljQmxvY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR0Jhc2ljQmxvY2tJbmxpbmVzLmg7IHBhdGggPSBkZmcvREZHQmFzaWNC
bG9ja0lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyOTIsMTAgKzIz
MDgsMTIgQEAKIAkJCQk5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmggKi8sCiAJ
CQkJOTMwNTJDMzIwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmNwcCAqLywKIAkJCQk5
MzA1MkMzMzBGQjc5MjE5MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuaCAqLywKKwkJCQkwRkNDQUU0
MzE2RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLywKIAkJCQlBNzdGMTgyNDE2NDE5
MjU0MDA2NDBBNDcgLyogUGFyc2VyTW9kZXMuaCAqLywKIAkJCQk2NTMwM0Q2MzE0NDdCOUUxMDBE
M0Y5MDQgLyogUGFyc2VyVG9rZW5zLmggKi8sCiAJCQkJODY5RUJDQjYwRThDNkQ0QTAwODcyMkND
IC8qIFJlc3VsdFR5cGUuaCAqLywKIAkJCQk2NUU4NjZFRTBERDU5QUZBMDBBMkIyQTEgLyogU291
cmNlQ29kZS5oICovLAorCQkJCTBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92
aWRlci5jcHAgKi8sCiAJCQkJNjVFODY2RUQwREQ1OUFGQTAwQTJCMkExIC8qIFNvdXJjZVByb3Zp
ZGVyLmggKi8sCiAJCQkJRTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVy
Q2FjaGUuY3BwICovLAogCQkJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlLmggKi8sCkBAIC0yNTI5LDYgKzI1NDcsNyBAQAogCQkJCUJDREUzQUIxMEU2Qzgy
Q0YwMDE0NTNBNyAvKiBTdHJ1Y3R1cmUuaCAqLywKIAkJCQk3RTRFRTcwRTBFQkI3QTVCMDA1OTM0
QUEgLyogU3RydWN0dXJlQ2hhaW4uY3BwICovLAogCQkJCTdFNEVFNzA4MEVCQjc5NjMwMDU5MzRB
QSAvKiBTdHJ1Y3R1cmVDaGFpbi5oICovLAorCQkJCTBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAv
KiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8sCiAJCQkJQzJGMEYyRDAxNkJBRUVFOTAwMTg3QzE5IC8q
IFN0cnVjdHVyZVJhcmVEYXRhLmNwcCAqLywKIAkJCQlDMkZFMThBMzE2QkFFQzQwMDBBRjMwNjEg
LyogU3RydWN0dXJlUmFyZURhdGEuaCAqLywKIAkJCQlDMjBCQTkyQzE2QkIxQzE1MDBCM0FFQTIg
LyogU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggKi8sCkBAIC0zMzQ5LDYgKzMzNjgsMTggQEAK
IAkJCQkwRkJFMEY3MzE2QzFEQjA1MDA4MkM1RTggLyogREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCRTBGNzUxNkMxREIwQjAwODJDNUU4IC8qIERGR1ByZWRp
Y3Rpb25JbmplY3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCRTBGNzcxNkMxREIx
MjAwODJDNUU4IC8qIERGR1VuaWZpY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RDJDOTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEYyRTg5MkQxNkQwMkJBRjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5MjE4MTZEMDJFQjIwMDU1QTVEQiAvKiBERkdBbGxv
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5MjFBMTZEMDJFQzUwMDU1QTVEQiAvKiBE
RkdCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMUIxNkQwMkYw
MTAwNTVBNURCIC8qIERGR05vZGVBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5
MjFDMTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkZCOTIxRDE2RDAyRjMwMDA1NUE1REIgLyogREZHU2xvd1BhdGhHZW5l
cmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5MjFFMTZEMDJGNDcwMDU1QTVEQiAvKiBE
RkdWYXJpYWRpY0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxRjE2RDAzMzA1
MDA1NUE1REIgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMjAxNkQwMzNCNzAw
NTVBNURCIC8qIE5vZGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQ0NBRTQ1
MTZEMENGNzQwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zOTg3
LDYgKzQwMTgsNyBAQAogCQkJCTBGQkUwRjcyMTZDMURCMDMwMDgyQzVFOCAvKiBERkdDUFNSZXRo
cmVhZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc0MTZDMURCMDkwMDgy
QzVFOCAvKiBERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZCRTBGNzYxNkMxREIwRjAwODJDNUU4IC8qIERGR1VuaWZpY2F0aW9uUGhhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw2IEBA
CiAjaW5jbHVkZSAiTExJbnRDYWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJMYXp5T3BlcmFuZFZh
bHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIkxpbmVJbmZvLmgiCi0jaW5jbHVkZSAiTm9kZXMuaCIK
ICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVzb2x2ZU9wZXJhdGlvbi5oIgpAQCAtMTQ2MSwxMSArMTQ2MCw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIH0KICNlbmRpZgogICAgIAotICAgIGlubGluZSBKU1ZhbHVl
IFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKENvZGVCbG9jayogY29kZUJsb2NrKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3RvdHlwZUZvckxvb2t1cChjb2RlQmxvY2stPmds
b2JhbE9iamVjdCgpKTsKLSAgICB9Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8g
Q29kZUJsb2NrX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FdmFsQ29k
ZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V2
YWxDb2RlQ2FjaGUuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V2YWxDb2RlQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsNiBA
QAogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
Ci0jaW5jbHVkZSAiTm9kZXMuaCIKLSNpbmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTb3Vy
Y2VDb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9v
bC5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U2FtcGxpbmdUb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDcgKzMwLDYgQEAKICNkZWZpbmUgU2Ft
cGxpbmdUb29sX2gKIAogI2luY2x1ZGUgIlN0cm9uZy5oIgotI2luY2x1ZGUgIk5vZGVzLmgiCiAj
aW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdDb3VudGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTEgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OlVubGlua2VkRnVuYwogewogfQogCitzaXplX3QgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OnBhcmFtZXRlckNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYXJhbWV0ZXJzLT5zaXpl
KCk7Cit9CisKIHZvaWQgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSogdGhpc09iamVjdCA9IGpzQ2FzdDxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSo+KGNlbGwpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
MiwxMCArMzIsMTIgQEAKICNpbmNsdWRlICJFeHByZXNzaW9uUmFuZ2VJbmZvLmgiCiAjaW5jbHVk
ZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgorI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCiAjaW5jbHVkZSAiTGluZUluZm8uaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgorI2luY2x1ZGUg
IlBhcnNlck1vZGVzLmgiCiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAjaW5jbHVkZSAiU3BlY2lhbFBv
aW50ZXIuaCIKKyNpbmNsdWRlICJTeW1ib2xUYWJsZS5oIgogI2luY2x1ZGUgIldlYWsuaCIKIAog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkQXJyYXkuaD4KQEAgLTkzLDcgKzk1LDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgcmV0dXJuIChraW5kID09IENvZGVGb3JDYWxsKSA/IG1fc3ltYm9s
VGFibGVGb3JDYWxsLmdldCgpIDogbV9zeW1ib2xUYWJsZUZvckNvbnN0cnVjdC5nZXQoKTsKICAg
ICB9Ci0gICAgc2l6ZV90IHBhcmFtZXRlckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLT5zaXplKCk7IH0KKyAgICBzaXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25zdDsKICAgICBi
b29sIGlzSW5TdHJpY3RDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc0luU3RyaWN0Q29udGV4
dDsgfQogICAgIEZ1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZSBmdW5jdGlvbk5hbWVJc0luU2Nv
cGVUb2dnbGUoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZTsg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMYWJlbC5oIgogI2luY2x1ZGUgIkxhYmVsU2Nv
cGUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXJJRC5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgiCiAjaW5j
bHVkZSAiRGVidWdnZXIuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTGFiZWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0xhYmVsLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTGFiZWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsOCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAorICAgIGNsYXNzIEJ5dGVjb2RlR2VuZXJhdG9yOworCiAgICAgY2xh
c3MgTGFiZWwgewogICAgIHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgTGFiZWwoQnl0ZWNvZGVH
ZW5lcmF0b3IqIGdlbmVyYXRvcikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIkRGR0FycmF5TW9kZS5oIgogI2luY2x1ZGUgIkRGR0Nh
cGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKLSNpbmNsdWRlICJKU0NK
U1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcmVj
aXNlSnVtcFRhcmdldHMuaCIKICNpbmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAi
UmVzb2x2ZUdsb2JhbFN0YXR1cy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2luY2x1ZGUgPGRmZy9ERkdHcmFw
aC5oPgorI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZQUkluZm8uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZQUkluZm8uaAkocmV2aXNpb24gMTQzMTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGUFJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSA8YXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmg+Ci0jaW5jbHVkZSA8ZGZnL0RGR1JlZ2lzdGVyQmFuay5oPgor
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCisjaW5jbHVkZSAiREZHUmVnaXN0ZXJCYW5rLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJhbmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1JlZ2lzdGVyQmFuay5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlZ2lzdGVyQmFuay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2luY2x1ZGUgPGRm
Zy9ERkdDb21tb24uaD4KKyNpbmNsdWRlICJERkdDb21tb24uaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5k
bGVTdGFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFu
ZGxlU3RhY2suY3BwCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IYW5kbGVTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNp
bmNsdWRlICJIYW5kbGVTdGFjay5oIgogCiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCi0j
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTQzMTIyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSAiU2xvdFZpc2l0b3IuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKLSNpbmNsdWRl
ICJqaXQvVW51c2VkUG9pbnRlci5oIgorI2luY2x1ZGUgIlVudXNlZFBvaW50ZXIuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHJl
dmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNp
bmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQYXJzZXJBcmVuYS5oIgorI2luY2x1ZGUgIlBh
cnNlclRva2Vucy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKQEAgLTQ3LDE5ICs0OCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIGNsYXNzIEpTU2NvcGU7CiAgICAgY2xhc3MgU2NvcGVOb2RlOwogCi0g
ICAgdHlwZWRlZiB1bnNpZ25lZCBDb2RlRmVhdHVyZXM7Ci0KLSAgICBjb25zdCBDb2RlRmVhdHVy
ZXMgTm9GZWF0dXJlcyA9IDA7Ci0gICAgY29uc3QgQ29kZUZlYXR1cmVzIEV2YWxGZWF0dXJlID0g
MSA8PCAwOwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBBcmd1bWVudHNGZWF0dXJlID0gMSA8PCAx
OwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBXaXRoRmVhdHVyZSA9IDEgPDwgMjsKLSAgICBjb25z
dCBDb2RlRmVhdHVyZXMgQ2F0Y2hGZWF0dXJlID0gMSA8PCAzOwotICAgIGNvbnN0IENvZGVGZWF0
dXJlcyBUaGlzRmVhdHVyZSA9IDEgPDwgNDsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgU3RyaWN0
TW9kZUZlYXR1cmUgPSAxIDw8IDU7Ci0gICAgY29uc3QgQ29kZUZlYXR1cmVzIFNoYWRvd3NBcmd1
bWVudHNGZWF0dXJlID0gMSA8PCA2OwotICAgIAotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBBbGxG
ZWF0dXJlcyA9IEV2YWxGZWF0dXJlIHwgQXJndW1lbnRzRmVhdHVyZSB8IFdpdGhGZWF0dXJlIHwg
Q2F0Y2hGZWF0dXJlIHwgVGhpc0ZlYXR1cmUgfCBTdHJpY3RNb2RlRmVhdHVyZSB8IFNoYWRvd3NB
cmd1bWVudHNGZWF0dXJlOwotCiAgICAgZW51bSBPcGVyYXRvciB7CiAgICAgICAgIE9wRXF1YWws
CiAgICAgICAgIE9wUGx1c0VxLApAQCAtMTQxMiw3ICsxNDAwLDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQqIG1fc3RvcmFnZTsKICAgICB9OwogCi0gICAgZW51bSBGdW5jdGlvbk5h
bWVJc0luU2NvcGVUb2dnbGUgeyBGdW5jdGlvbk5hbWVJc05vdEluU2NvcGUsIEZ1bmN0aW9uTmFt
ZUlzSW5TY29wZSB9OwogICAgIGNsYXNzIEZ1bmN0aW9uQm9keU5vZGUgOiBwdWJsaWMgU2NvcGVO
b2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIGlzRnVuY3Rpb25O
b2RlID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2
aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsMTAgQEAKICNpbmNsdWRlICJMZXhlci5oIgogI2lu
Y2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVkZSAiUGFyc2VyQXJlbmEuaCIKKyNpbmNsdWRlICJQYXJz
ZXJFcnJvci5oIgogI2luY2x1ZGUgIlBhcnNlclRva2Vucy5oIgogI2luY2x1ZGUgIlNvdXJjZVBy
b3ZpZGVyLmgiCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXJDYWNoZS5oIgogI2luY2x1ZGUgIlNv
dXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc2LDQ5ICs3OCw2IEBAIENPTVBJTEVfQVNTRVJU
KExhc3RVbnRhZ2dlZFRva2VuIDwgNjQsIEwKIGVudW0gU291cmNlRWxlbWVudHNNb2RlIHsgQ2hl
Y2tGb3JTdHJpY3RNb2RlLCBEb250Q2hlY2tGb3JTdHJpY3RNb2RlIH07CiBlbnVtIEZ1bmN0aW9u
UmVxdWlyZW1lbnRzIHsgRnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgRnVuY3Rpb25OZWVkc05hbWUg
fTsKIAotc3RydWN0IFBhcnNlckVycm9yIHsKLSAgICBlbnVtIEVycm9yVHlwZSB7IEVycm9yTm9u
ZSwgU3RhY2tPdmVyZmxvdywgU3ludGF4RXJyb3IsIEV2YWxFcnJvciwgT3V0T2ZNZW1vcnkgfSBt
X3R5cGU7Ci0gICAgU3RyaW5nIG1fbWVzc2FnZTsKLSAgICBpbnQgbV9saW5lOwotICAgIFBhcnNl
ckVycm9yKCkKLSAgICAgICAgOiBtX3R5cGUoRXJyb3JOb25lKQotICAgICAgICAsIG1fbGluZSgt
MSkKLSAgICB7Ci0gICAgfQotCi0gICAgUGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUpCi0gICAg
ICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9saW5lKC0xKQotICAgIHsKLSAgICB9Ci0K
LSAgICBQYXJzZXJFcnJvcihFcnJvclR5cGUgdHlwZSwgU3RyaW5nIG1zZywgaW50IGxpbmUpCi0g
ICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9tZXNzYWdlKG1zZykKLSAgICAgICAg
LCBtX2xpbmUobGluZSkKLSAgICB7Ci0gICAgfQotCi0gICAgSlNPYmplY3QqIHRvRXJyb3JPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNl
KQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICAgICAgY2FzZSBFcnJvck5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgY2FzZSBTeW50YXhFcnJvcjoKLSAg
ICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCks
IGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNzYWdlKSwgbV9saW5lLCBzb3Vy
Y2UpOwotICAgICAgICBjYXNlIEV2YWxFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVT
eW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7Ci0gICAgICAgIGNhc2UgU3RhY2tP
dmVyZmxvdzoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZ2xv
YmFsT2JqZWN0KTsKLSAgICAgICAgY2FzZSBPdXRPZk1lbW9yeToKLSAgICAgICAgICAgIHJldHVy
biBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgQ1JBU0goKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFs
T2JqZWN0KTsgLy8gQXBwZWFzZSBRdCBib3QKLSAgICB9Ci0KLX07Ci0KIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBpbmxpbmUgYm9vbCBpc0V2YWxOb2RlKCkgeyByZXR1cm4gZmFsc2U7IH0KIHRlbXBs
YXRlIDw+IGlubGluZSBib29sIGlzRXZhbE5vZGU8RXZhbE5vZGU+KCkgeyByZXR1cm4gdHJ1ZTsg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYXJzZXJFcnJvcl9oCisjZGVmaW5lIFBhcnNl
ckVycm9yX2gKKworI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVy
cy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSlNDIHsK
Kworc3RydWN0IFBhcnNlckVycm9yIHsKKyAgICBlbnVtIEVycm9yVHlwZSB7IEVycm9yTm9uZSwg
U3RhY2tPdmVyZmxvdywgU3ludGF4RXJyb3IsIEV2YWxFcnJvciwgT3V0T2ZNZW1vcnkgfSBtX3R5
cGU7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKyAgICBpbnQgbV9saW5lOworICAgIFBhcnNlckVy
cm9yKCkKKyAgICAgICAgOiBtX3R5cGUoRXJyb3JOb25lKQorICAgICAgICAsIG1fbGluZSgtMSkK
KyAgICB7CisgICAgfQorCisgICAgUGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUpCisgICAgICAg
IDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9saW5lKC0xKQorICAgIHsKKyAgICB9CisKKyAg
ICBQYXJzZXJFcnJvcihFcnJvclR5cGUgdHlwZSwgU3RyaW5nIG1zZywgaW50IGxpbmUpCisgICAg
ICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9tZXNzYWdlKG1zZykKKyAgICAgICAgLCBt
X2xpbmUobGluZSkKKyAgICB7CisgICAgfQorCisgICAgSlNPYmplY3QqIHRvRXJyb3JPYmplY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICAgICAgY2FzZSBFcnJvck5vbmU6
CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBTeW50YXhFcnJvcjoKKyAgICAg
ICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGNy
ZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNzYWdlKSwgbV9saW5lLCBzb3VyY2Up
OworICAgICAgICBjYXNlIEV2YWxFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVTeW50
YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7CisgICAgICAgIGNhc2UgU3RhY2tPdmVy
ZmxvdzoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgY2FzZSBPdXRPZk1lbW9yeToKKyAgICAgICAgICAgIHJldHVybiBj
cmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAg
Q1JBU0goKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2Jq
ZWN0KTsgLy8gQXBwZWFzZSBRdCBib3QKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MK
KworI2VuZGlmIC8vIFBhcnNlckVycm9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyTW9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlck1vZGVzLmgJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsMjEg
QEAgZW51bSBKU1BhcnNlck1vZGUgeyBKU1BhcnNlUHJvZ3JhbUNvZGUsIAogZW51bSBQcm9maWxl
ck1vZGUgeyBQcm9maWxlck9mZiwgUHJvZmlsZXJPbiB9OwogZW51bSBEZWJ1Z2dlck1vZGUgeyBE
ZWJ1Z2dlck9mZiwgRGVidWdnZXJPbiB9OwogCi19CitlbnVtIEZ1bmN0aW9uTmFtZUlzSW5TY29w
ZVRvZ2dsZSB7IEZ1bmN0aW9uTmFtZUlzTm90SW5TY29wZSwgRnVuY3Rpb25OYW1lSXNJblNjb3Bl
IH07CiAKLSNlbmRpZgordHlwZWRlZiB1bnNpZ25lZCBDb2RlRmVhdHVyZXM7CisKK2NvbnN0IENv
ZGVGZWF0dXJlcyBOb0ZlYXR1cmVzID0gMDsKK2NvbnN0IENvZGVGZWF0dXJlcyBFdmFsRmVhdHVy
ZSA9IDEgPDwgMDsKK2NvbnN0IENvZGVGZWF0dXJlcyBBcmd1bWVudHNGZWF0dXJlID0gMSA8PCAx
OworY29uc3QgQ29kZUZlYXR1cmVzIFdpdGhGZWF0dXJlID0gMSA8PCAyOworY29uc3QgQ29kZUZl
YXR1cmVzIENhdGNoRmVhdHVyZSA9IDEgPDwgMzsKK2NvbnN0IENvZGVGZWF0dXJlcyBUaGlzRmVh
dHVyZSA9IDEgPDwgNDsKK2NvbnN0IENvZGVGZWF0dXJlcyBTdHJpY3RNb2RlRmVhdHVyZSA9IDEg
PDwgNTsKK2NvbnN0IENvZGVGZWF0dXJlcyBTaGFkb3dzQXJndW1lbnRzRmVhdHVyZSA9IDEgPDwg
NjsKKworY29uc3QgQ29kZUZlYXR1cmVzIEFsbEZlYXR1cmVzID0gRXZhbEZlYXR1cmUgfCBBcmd1
bWVudHNGZWF0dXJlIHwgV2l0aEZlYXR1cmUgfCBDYXRjaEZlYXR1cmUgfCBUaGlzRmVhdHVyZSB8
IFN0cmljdE1vZGVGZWF0dXJlIHwgU2hhZG93c0FyZ3VtZW50c0ZlYXR1cmU7CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCisjZW5kaWYgLy8gUGFyc2VyTW9kZXNfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VyY2VQcm92aWRl
ci5oIgorCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXJDYWNoZS5oIgorCituYW1lc3BhY2UgSlND
IHsKKworU291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGNh
Y2hlKQorICAgIDogbV91cmwodXJsKQorICAgICwgbV9zdGFydFBvc2l0aW9uKHN0YXJ0UG9zaXRp
b24pCisgICAgLCBtX3ZhbGlkYXRlZChmYWxzZSkKKyAgICAsIG1fY2FjaGUoY2FjaGUgPyBjYWNo
ZSA6IG5ldyBTb3VyY2VQcm92aWRlckNhY2hlKQorICAgICwgbV9jYWNoZU93bmVkKCFjYWNoZSkK
K3sKK30KKworU291cmNlUHJvdmlkZXI6On5Tb3VyY2VQcm92aWRlcigpCit7CisgICAgaWYgKG1f
Y2FjaGVPd25lZCkKKyAgICAgICAgZGVsZXRlIG1fY2FjaGU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92
aWRlci5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI5LDMyICsyOSwyMyBAQAogI2lmbmRlZiBTb3VyY2VQcm92aWRlcl9oCiAjZGVmaW5lIFNvdXJj
ZVByb3ZpZGVyX2gKIAotI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIKICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCisg
ICAgY2xhc3MgU291cmNlUHJvdmlkZXJDYWNoZTsKKwogICAgIGNsYXNzIFNvdXJjZVByb3ZpZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlUHJvdmlkZXI+IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBudWxsSUQgPSAxOwogICAgICAgICAKLSAgICAgICAg
U291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJDYWNoZSogY2FjaGUgPSAwKQotICAgICAgICAgICAg
OiBtX3VybCh1cmwpCi0gICAgICAgICAgICAsIG1fc3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9u
KQotICAgICAgICAgICAgLCBtX3ZhbGlkYXRlZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9jYWNo
ZShjYWNoZSA/IGNhY2hlIDogbmV3IFNvdXJjZVByb3ZpZGVyQ2FjaGUpCi0gICAgICAgICAgICAs
IG1fY2FjaGVPd25lZCghY2FjaGUpCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICBKU19F
WFBPUlRfUFJJVkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlckNhY2hlKiBjYWNoZSA9IDAp
OwogCi0gICAgICAgIHZpcnR1YWwgflNvdXJjZVByb3ZpZGVyKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKG1fY2FjaGVPd25lZCkKLSAgICAgICAgICAgICAgICBkZWxldGUgbV9jYWNoZTsK
LSAgICAgICAgfQorICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5Tb3VyY2VQcm92
aWRlcigpOwogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCA9
IDA7CiAgICAgICAgIFN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRDYWxsLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29w
aWVkU3BhY2VJbmxpbmVzLmgiCisjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRlcnBy
ZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNs
dWRlICJEYXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1
ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJK
U0RhdGVNYXRoLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0
cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5o
IgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogI2lmICFQTEFURk9STShNQUMpICYmIEhBVkUoTEFOR0lORk9fSCkKICNpbmNsdWRlIDxsYW5n
aW5mby5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
aAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTEgQEAKICNp
bmNsdWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkxMSW50Q0xvb3AuaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgog
I2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKICNpbmNs
dWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAJKHJldmlzaW9uIDE0MzEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNiBAQAogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCkBAIC03MSw2ICs3MCw4IEBA
CiAjaW5jbHVkZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCisjaW5jbHVkZSAiUGFyc2VyRXJyb3IuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4cE9i
amVjdC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NTEsNTYgKzQ1MSw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gIWVudHJ5LmlzTnVsbCgpOwogICAgIH0K
IAotICAgIGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNPYmpl
Y3QoKSkKLSAgICAgICAgICAgIHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsKLQotICAgICAgICBB
U1NFUlQodHlwZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSk7Ci0gICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPnN0cmluZ1Byb3RvdHlwZSgpOwotICAgIH0KLQotICAgIGlubGluZSBKU1Zh
bHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVj
dHVyZTo6cHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gV2UgY2FjaGUgb3Vy
IHByb3RvdHlwZSBjaGFpbiBzbyBvdXIgY2xpZW50cyBjYW4gc2hhcmUgaXQuCi0gICAgICAgIGlm
ICghaXNWYWxpZChnbG9iYWxPYmplY3QsIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCkpKSB7
Ci0gICAgICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9i
YWxPYmplY3QpOwotICAgICAgICAgICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5zZXQoZ2xvYmFs
RGF0YSwgdGhpcywgU3RydWN0dXJlQ2hhaW46OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUu
aXNOdWxsKCkgPyAwIDogYXNPYmplY3QocHJvdG90eXBlKS0+c3RydWN0dXJlKCkpKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4o
RXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3RvdHlwZUNo
YWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25z
dAotICAgIHsKLSAgICAgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFpbikKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3RvdHlwZUZv
ckxvb2t1cChnbG9iYWxPYmplY3QpOwotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiog
Y2FjaGVkU3RydWN0dXJlID0gY2FjaGVkUHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsKLSAgICAgICAg
d2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAmJiAhcHJvdG90eXBlLmlzTnVsbCgpKSB7Ci0gICAgICAg
ICAgICBpZiAoYXNPYmplY3QocHJvdG90eXBlKS0+c3RydWN0dXJlKCkgIT0gY2FjaGVkU3RydWN0
dXJlLT5nZXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAr
K2NhY2hlZFN0cnVjdHVyZTsKLSAgICAgICAgICAgIHByb3RvdHlwZSA9IGFzT2JqZWN0KHByb3Rv
dHlwZSktPnByb3RvdHlwZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGUu
aXNOdWxsKCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wg
U3RydWN0dXJlOjppc1ZhbGlkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlQ2hhaW4qIGNhY2hl
ZFByb3RvdHlwZUNoYWluKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzVmFsaWQoZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjYWNoZWRQcm90b3R5cGVDaGFpbik7Ci0gICAgfQot
CiAgICAgaW5saW5lIEpTR2xvYmFsT2JqZWN0KiBFeGVjU3RhdGU6OmR5bmFtaWNHbG9iYWxPYmpl
Y3QoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMgPT0gbGV4aWNhbEdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0
aW9ucy5oCShyZXZpc2lvbiAxNDMxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJK
U1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNw
cAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkBAIC04NTksNiArODYwLDExIEBAIHZvaWQgU3RydWN0
dXJlOjpnZXRQcm9wZXJ0eU5hbWVzRnJvbVN0cnUKICAgICB9CiB9CiAKK0pTVmFsdWUgU3RydWN0
dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHByb3RvdHlwZUZvckxvb2t1cChjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKTsK
K30KKwogdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKICAgICBTdHJ1Y3R1cmUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8U3Ry
dWN0dXJlKj4oY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwNCwxMDUgKzUwNCw2IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9zdGF0aWNGdW5jdGlvblJlaWZpZWQ7CiB9OwogCi1pbmxpbmUg
U3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBl
SW5mbyYgdHlwZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBJbmRleGluZ1R5cGUg
aW5kZXhpbmdUeXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKLXsKLSAgICBBU1NFUlQoZ2xv
YmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VSVChjbGFzc0luZm8pOwotICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0
dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIHR5cGVJbmZvLCBjbGFzc0luZm8sIGluZGV4aW5nVHlwZSwgaW5saW5lQ2Fw
YWNpdHkpOwotICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAg
cmV0dXJuIHN0cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1
cmU6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17Ci0gICAgQVNT
RVJUKCFnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEu
aGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKLSAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIENyZWF0aW5nRWFybHlDZWxsKTsKLSAgICByZXR1cm4gc3RydWN0dXJl
OwotfQotCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotICAgIEFTU0VSVChn
bG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1
cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVh
cCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwotICAgIG5ld1N0cnVjdHVyZS0+
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8o
KS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQotICAgICAgICBuZXdTdHJ1Y3R1cmUtPmNsb25lUmFy
ZURhdGFGcm9tKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIG5ld1N0cnVjdHVy
ZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQotewotICAg
IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJp
YWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9w
ZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5
TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51aWQo
KSkuZmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZz
ZXQ7Ci19Ci0KLWlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQotewotICAgIEFTU0VSVChz
dHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRhYmxl
KQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkq
IGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmltcGwoKSkuZmly
c3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Ci19
Ci0gICAgCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIHR5cGVJbmZv
KCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVjdCgpID09IGxleGljYWxH
bG9iYWxPYmplY3Q7Ci19Ci0KLUFMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6aW50ZXJu
YWxBcHBlbmQoSlNDZWxsKiBjZWxsKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nRm9yRGVm
YXVsdE1hcmtWaW9sYXRpb24pOwotICAgIGlmICghY2VsbCkKLSAgICAgICAgcmV0dXJuOwotI2lm
IEVOQUJMRShHQ19WQUxJREFUSU9OKQotICAgIHZhbGlkYXRlKGNlbGwpOwotI2VuZGlmCi0gICAg
aWYgKEhlYXA6OnRlc3RBbmRTZXRNYXJrZWQoY2VsbCkgfHwgIWNlbGwtPnN0cnVjdHVyZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Zpc2l0Q291bnQrKzsKLSAgICAgICAgCi0gICAgTUFS
S19MT0dfQ0hJTEQoKnRoaXMsIGNlbGwpOwotCi0gICAgLy8gU2hvdWxkIG5ldmVyIGF0dGVtcHQg
dG8gbWFyayBzb21ldGhpbmcgdGhhdCBpcyB6YXBwZWQuCi0gICAgQVNTRVJUKCFjZWxsLT5pc1ph
cHBlZCgpKTsKLSAgICAgICAgCi0gICAgbV9zdGFjay5hcHBlbmQoY2VsbCk7Ci19Ci0KLWlubGlu
ZSBib29sIFN0cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShTdHJ1Y3R1cmUq
IHN0cnVjdHVyZVRvRmluZCkKLXsKLSAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRoaXM7
IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wcmV2aW91c0lEKCkpIHsKLSAgICAgICAgaWYg
KGN1cnJlbnQgPT0gc3RydWN0dXJlVG9GaW5kKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotaW5saW5lIHZvaWQgU3RydWN0dXJlOjpzZXRF
bnVtZXJhdGlvbkNhY2hlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvciogZW51bWVyYXRpb25DYWNoZSkKLXsKLSAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgp
KTsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAg
YWxsb2NhdGVSYXJlRGF0YShnbG9iYWxEYXRhKTsKLSAgICByYXJlRGF0YSgpLT5zZXRFbnVtZXJh
dGlvbkNhY2hlKGdsb2JhbERhdGEsIHRoaXMsIGVudW1lcmF0aW9uQ2FjaGUpOwotfQotCi1pbmxp
bmUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogU3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hlKCkK
LXsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPmVudW1lcmF0aW9uQ2FjaGUoKTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGlu
ZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFN0
cnVjdHVyZUlubGluZXNfaAorI2RlZmluZSBTdHJ1Y3R1cmVJbmxpbmVzX2gKKworI2luY2x1ZGUg
IlN0cnVjdHVyZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5lIFN0cnVjdHVyZSogU3Ry
dWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZv
LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwg
dW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCit7CisgICAgQVNTRVJUKGdsb2JhbERhdGEuc3RydWN0
dXJlU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoY2xhc3NJbmZvKTsKKyAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0
YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0
eXBlSW5mbywgY2xhc3NJbmZvLCBpbmRleGluZ1R5cGUsIGlubGluZUNhcGFjaXR5KTsKKyAgICBz
dHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIHJldHVybiBzdHJ1Y3R1
cmU7Cit9CisgICAgICAgIAoraW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGVTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEFTU0VSVCghZ2xvYmFsRGF0
YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1
cmUoZ2xvYmFsRGF0YSk7CisgICAgc3RydWN0dXJlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBDcmVhdGluZ0Vhcmx5Q2VsbCk7CisgICAgcmV0dXJuIHN0cnVjdHVyZTsKK30KKworaW5saW5l
IFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBj
b25zdCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1
Y3R1cmVTdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBuZXdTdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOworICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuc3RydWN0dXJlSGFz
UmFyZURhdGEoKSkKKyAgICAgICAgbmV3U3RydWN0dXJlLT5jbG9uZVJhcmVEYXRhRnJvbShnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpOworICAgIHJldHVybiBuZXdTdHJ1Y3R1cmU7Cit9CisgICAgICAg
IAoraW5saW5lIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3sKKyAgICBBU1NFUlQoc3RydWN0
dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOworICAgIG1hdGVyaWFsaXplUHJvcGVydHlN
YXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKKyAg
ICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRy
eSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZChwcm9wZXJ0eU5hbWUudWlkKCkpLmZpcnN0OworICAg
IHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OworfQorCitpbmxp
bmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKK3sKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNs
YXNzSW5mbygpID09ICZzX2luZm8pOworICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vz
c2FyeShnbG9iYWxEYXRhKTsKKyAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKKyAgICAgICAgcmV0
dXJuIGludmFsaWRPZmZzZXQ7CisKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJv
cGVydHlUYWJsZS0+ZmluZFdpdGhTdHJpbmcobmFtZS5pbXBsKCkpLmZpcnN0OworICAgIHJldHVy
biBlbnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OworfQorICAgIAoraW5saW5l
IGJvb2wgU3RydWN0dXJlOjptYXNxdWVyYWRlc0FzVW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiB0eXBlSW5mbygpLm1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQoKSAmJiBnbG9iYWxPYmplY3QoKSA9PSBsZXhpY2FsR2xvYmFsT2JqZWN0Owor
fQorCitBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmludGVybmFsQXBwZW5kKEpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBBU1NFUlQoIW1faXNDaGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0
aW9uKTsKKyAgICBpZiAoIWNlbGwpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoR0NfVkFM
SURBVElPTikKKyAgICB2YWxpZGF0ZShjZWxsKTsKKyNlbmRpZgorICAgIGlmIChIZWFwOjp0ZXN0
QW5kU2V0TWFya2VkKGNlbGwpIHx8ICFjZWxsLT5zdHJ1Y3R1cmUoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV92aXNpdENvdW50Kys7CisgICAgICAgIAorICAgIE1BUktfTE9HX0NISUxEKCp0
aGlzLCBjZWxsKTsKKworICAgIC8vIFNob3VsZCBuZXZlciBhdHRlbXB0IHRvIG1hcmsgc29tZXRo
aW5nIHRoYXQgaXMgemFwcGVkLgorICAgIEFTU0VSVCghY2VsbC0+aXNaYXBwZWQoKSk7CisgICAg
ICAgIAorICAgIG1fc3RhY2suYXBwZW5kKGNlbGwpOworfQorCitpbmxpbmUgYm9vbCBTdHJ1Y3R1
cmU6OnRyYW5zaXRpdmVseVRyYW5zaXRpb25lZEZyb20oU3RydWN0dXJlKiBzdHJ1Y3R1cmVUb0Zp
bmQpCit7CisgICAgZm9yIChTdHJ1Y3R1cmUqIGN1cnJlbnQgPSB0aGlzOyBjdXJyZW50OyBjdXJy
ZW50ID0gY3VycmVudC0+cHJldmlvdXNJRCgpKSB7CisgICAgICAgIGlmIChjdXJyZW50ID09IHN0
cnVjdHVyZVRvRmluZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2lubGluZSB2b2lkIFN0cnVjdHVyZTo6c2V0RW51bWVyYXRpb25DYWNo
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1l
cmF0aW9uQ2FjaGUpCit7CisgICAgQVNTRVJUKCFpc0RpY3Rpb25hcnkoKSk7CisgICAgaWYgKCF0
eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAgIGFsbG9jYXRlUmFyZURh
dGEoZ2xvYmFsRGF0YSk7CisgICAgcmFyZURhdGEoKS0+c2V0RW51bWVyYXRpb25DYWNoZShnbG9i
YWxEYXRhLCB0aGlzLCBlbnVtZXJhdGlvbkNhY2hlKTsKK30KKworaW5saW5lIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IqIFN0cnVjdHVyZTo6ZW51bWVyYXRpb25DYWNoZSgpCit7CisgICAgaWYgKCF0
eXBlSW5mbygpLnN0cnVjdHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiByYXJlRGF0YSgpLT5lbnVtZXJhdGlvbkNhY2hlKCk7Cit9CisKK2lubGluZSBKU1Zh
bHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0Cit7CisgICAgaWYgKGlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBtX3By
b3RvdHlwZS5nZXQoKTsKKworICAgIEFTU0VSVCh0eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdU
eXBlKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKK30KKwor
aW5saW5lIEpTVmFsdWUgU3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoRXhlY1N0YXRlKiBl
eGVjKSBjb25zdAoreworICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6
OnByb3RvdHlwZUNoYWluKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICAvLyBXZSBjYWNoZSBvdXIgcHJvdG90eXBlIGNo
YWluIHNvIG91ciBjbGllbnRzIGNhbiBzaGFyZSBpdC4KKyAgICBpZiAoIWlzVmFsaWQoZ2xvYmFs
T2JqZWN0LCBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpKSkgeworICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOworICAgICAgICBt
X2NhY2hlZFByb3RvdHlwZUNoYWluLnNldChnbG9iYWxEYXRhLCB0aGlzLCBTdHJ1Y3R1cmVDaGFp
bjo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZS5pc051bGwoKSA/IDAgOiBhc09iamVjdChw
cm90b3R5cGUpLT5zdHJ1Y3R1cmUoKSkpOworICAgIH0KKyAgICByZXR1cm4gbV9jYWNoZWRQcm90
b3R5cGVDaGFpbi5nZXQoKTsKK30KKworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6
OnByb3RvdHlwZUNoYWluKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gcHJv
dG90eXBlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpOworfQorCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25z
dAoreworICAgIGlmICghY2FjaGVkUHJvdG90eXBlQ2hhaW4pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIEpTVmFsdWUgcHJvdG90eXBlID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9i
amVjdCk7CisgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGNhY2hlZFN0cnVjdHVyZSA9IGNh
Y2hlZFByb3RvdHlwZUNoYWluLT5oZWFkKCk7CisgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAm
JiAhcHJvdG90eXBlLmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChhc09iamVjdChwcm90b3R5cGUp
LT5zdHJ1Y3R1cmUoKSAhPSBjYWNoZWRTdHJ1Y3R1cmUtPmdldCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICArK2NhY2hlZFN0cnVjdHVyZTsKKyAgICAgICAgcHJvdG90eXBl
ID0gYXNPYmplY3QocHJvdG90eXBlKS0+cHJvdG90eXBlKCk7CisgICAgfQorICAgIHJldHVybiBw
cm90b3R5cGUuaXNOdWxsKCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBib29s
IFN0cnVjdHVyZTo6aXNWYWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNo
ZWRQcm90b3R5cGVDaGFpbikgY29uc3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZChleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGNhY2hlZFByb3RvdHlwZUNoYWluKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBTdHJ1Y3R1cmVJbmxpbmVzX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAko
cmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAKLSNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
MzEyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEzLTAyLTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgTW92ZSBhbGwgU3RydWN0dXJlIG91dC1vZi1saW5lIGlubGluZSBtZXRob2RzIHRv
IFN0cnVjdHVyZUlubGluZXMuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEwMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGJlaGF2aW9yLiBKdXN0IHJl
d2lyaW5nIGluY2x1ZGVzLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyQ2FjaGUuaDogQWRkZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5jcHA6CisKIDIwMTMtMDItMTcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgYnVpbGRmaXggZm9yICFVU0UoTElC
WE1MKSBidWlsZHMgYWZ0ZXIgcjE0MzExMi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3BhcnNl
ci9Tb3VyY2VQcm92aWRlckNhY2hlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorI2lm
bmRlZiBXZWJDb3JlX0ZXRF9Tb3VyY2VQcm92aWRlckNhY2hlX2gKKyNkZWZpbmUgV2ViQ29yZV9G
V0RfU291cmNlUHJvdmlkZXJDYWNoZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU291cmNl
UHJvdmlkZXJDYWNoZS5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAkocmV2aXNpb24gMTQzMTIyKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYg
KzM5LDcgQEAKIAogI2lmIFVTRShKU0MpICAKICNpbmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlk
ZXIuaD4KKyNpbmNsdWRlIDxwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5oPgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsK
</data>
<flag name="commit-queue"
          id="208986"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188777</attachid>
            <date>2013-02-17 14:42:37 -0800</date>
            <delta_ts>2013-02-17 21:53:45 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>79583</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBA
QAorMjAxMy0wMi0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgYWxsIFN0cnVjdHVyZSBvdXQtb2YtbGluZSBpbmxpbmUgbWV0aG9kcyB0byBTdHJ1Y3R1
cmVJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDAyNAorCisgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IE1hcmsgSGFobmVuYmVyZyBh
bmQgcmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyB3
YXMgc3VwcG9zZWQgdG8gYmUgZWFzeS4KKyAgICAgICAgCisgICAgICAgIEJ1dCwgaW5pdGlhbGx5
LCB0aGVyZSB3YXMgYSBTdHJ1Y3R1cmUgaW5saW5lIG1ldGhvZCBpbiBDb2RlQmxvY2suaCwgYW5k
IG1vdmluZyB0aGF0CisgICAgICAgIGludG8gU3RydWN0dXJlSW5saW5lcy5oIG1lYW50IHRoYXQg
T3BlcmF0aW9ucy5oIGluY2x1ZGVkIENvZGVCbG9jay5oLiBUaGlzIHdvdWxkCisgICAgICAgIGNh
dXNlIFdlYkNvcmUgYnVpbGQgZmFpbHVyZXMsIGJlY2F1c2UgQ29kZUJsb2NrLmggdHJhbnNpdGl2
ZWx5IGluY2x1ZGVkIHRoZSBKU0MKKyAgICAgICAgcGFyc2VyICh2aWEgbWFueSwgbWFueSBwYXRo
cyksIGFuZCB0aGUgSlNDIHBhcnNlciBkZWZpbmVzIHRva2VucyB1c2luZyBlbnVtZXJhdGlvbgor
ICAgICAgICBlbGVtZW50cyB0aGF0IENTU0dyYW1tYXIuY3BwIChnZW5lcmF0ZWQgYnkgYmlzb24p
IHdvdWxkICNkZWZpbmUuIEZvciBleGFtcGxlLAorICAgICAgICBiaXNvbiB3b3VsZCBnaXZlIENT
U0dyYW1tYXIuY3BwIGEgI2RlZmluZSBGVU5DVElPTiAxMjMsIGFuZCB3b3VsZCBkbyBzbyBiZWZv
cmUKKyAgICAgICAgaW5jbHVkaW5nIGFueXRoaW5nIGludGVyZXN0aW5nLiBUaGUgSlNDIHBhcnNl
ciB3b3VsZCBoYXZlIGFuIGVudW0gdGhhdCBpbmNsdWRlZAorICAgICAgICBGVU5DVElPTiBhcyBh
biBlbGVtZW50LiBIZW5jZSB0aGUgSlNDIHBhcnNlciBpbmNsdWRlZCBpbnRvIENTU0dyYW1tYXIu
Y3BwIHdvdWxkIGhhdmUKKyAgICAgICAgYSB0b2tlbiBlbGVtZW50IGNhbGxlZCBGVU5DVElPTiBk
ZWNsYXJlZCBpbiBhbiBlbnVtZXJhdGlvbiwgYnV0IEZVTkNUSU9OIHdhcworICAgICAgICAjZGVm
aW5lJ2QgdG8gMTIzLCBsZWFkaW5nIHRvIGEgcGFyc2VyIGVycm9yLgorICAgICAgICAKKyAgICAg
ICAgV293LgorICAgICAgICAKKyAgICAgICAgU28gSSByZW1vdmVkIGFsbCB0cmFuc2l0aXZlIGlu
Y2x1ZGUgcGF0aHMgZnJvbSBDb2RlQmxvY2suaCB0byB0aGUgSlNDIFBhcnNlci4gSQorICAgICAg
ICBiZWxpZXZlIEkgd2FzIGFibGUgdG8gZG8gc28gd2l0aG91dCBvdXQtb2YtbGluaW5nIGFueXRo
aW5nIGludGVyZXN0aW5nIG9yIHBlcmZvcm1hbmNlCisgICAgICAgIGNyaXRpY2FsLiBUaGlzIGlz
IHByb2JhYmx5IGEgcHVyZWx5IGdvb2QgdGhpbmcgdG8gaGF2ZSBkb25lOiBpdCB3aWxsIGJlIG5p
Y2UgdG8gYmUKKyAgICAgICAgYWJsZSB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIHBhcnNlciB3aXRo
b3V0IGhhdmluZyB0byBjb21waWxlIHRoZSB1bml2ZXJzZS4KKyAgICAgICAgCisgICAgICAgIE9m
IGNvdXJzZSwgZG9pbmcgdGhpcyBjYXVzZWQgYSBidW5jaCBvZiBvdGhlciB0aGluZ3MgdG8gbm90
IGNvbXBpbGUsIHNpbmNlIGEgYnVuY2ggb2YKKyAgICAgICAgaGVhZGVycyByZWxpZWQgb24gdGhp
bmdzIGJlaW5nIGltcGxpY2l0bHkgaW5jbHVkZWQgZm9yIHRoZW0gd2hlbiB0aGV5IHRyYW5zaXRp
dmVseQorICAgICAgICBpbmNsdWRlZCB0aGUgcGFyc2VyLiBJIGZpeGVkIGEgbG90IG9mIHRoYXQu
CisgICAgICAgIAorICAgICAgICBGaW5hbGx5LCBJIGVuZGVkIHVwIHJlbW92aW5nIHRoZSBtZXRo
b2QgdGhhdCBkZXBlbmRlZCBvbiBDb2RlQmxvY2suaCBmcm9tCisgICAgICAgIFN0cnVjdHVyZUlu
bGluZXMuaCwgYW5kIHB1dHRpbmcgaXQgaW4gU3RydWN0dXJlLmNwcC4gVGhhdCBtaWdodCBzZWVt
IGxpa2UgYWxsIG9mIHRoaXMKKyAgICAgICAgd2FzIGEgd2FzdGUgb2YgdGltZSwgZXhjZXB0IHRo
YXQgSSBzdXNwZWN0IGl0IHdhcyBhIHdvcnRod2hpbGUgZm9yY2luZyBmdW5jdGlvbiBmb3IKKyAg
ICAgICAgY2xlYW5pbmcgdXAgYSBidW5jaCBvZiBjcnVmdC4KKyAgICAgICAgCisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogYnl0ZWNvZGUvRXZhbENvZGVDYWNoZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Nh
bXBsaW5nVG9vbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtZXRlckNvdW50
KToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
aDoKKyAgICAgICAgKFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTGFi
ZWwuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuaDoKKyAgICAgICAgKiBkZmcvREZH
RlBSSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdSZWdpc3RlckJhbmsuaDoKKyAgICAgICAgKiBo
ZWFwL0hhbmRsZVN0YWNrLmNwcDoKKyAgICAgICAgKiBqaXQvSklUV3JpdGVCYXJyaWVyLmg6Cisg
ICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHBhcnNl
ci9QYXJzZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyRXJyb3IuaDogQWRkZWQuCisgICAg
ICAgIChKU0MpOgorICAgICAgICAoSlNDOjpQYXJzZXJFcnJvcjo6UGFyc2VyRXJyb3IpOgorICAg
ICAgICAoUGFyc2VyRXJyb3IpOgorICAgICAgICAoSlNDOjpQYXJzZXJFcnJvcjo6dG9FcnJvck9i
amVjdCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlck1vZGVzLmg6CisgICAgICAgICogcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlND
OjpTb3VyY2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQ
cm92aWRlcjo6flNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlk
ZXIuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChTb3VyY2VQcm92aWRlcik6CisgICAgICAg
ICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojpwcm90b3R5cGVGb3JMb29rdXApOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6
Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6aW50
ZXJuYWxBcHBlbmQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5z
aXRpb25lZEZyb20pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnNldEVudW1lcmF0aW9uQ2Fj
aGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmVudW1lcmF0aW9uQ2FjaGUpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cCk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmlzVmFs
aWQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwOgorCiAyMDEzLTAy
LTE2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29kZSBj
YWNoZSBzaG91bGQgYmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpdCBjYWNoZXMKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4
Miw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcGFyc2VyL05vZGVzLmNwcAog
ICAgIHBhcnNlci9QYXJzZXIuY3BwCiAgICAgcGFyc2VyL1BhcnNlckFyZW5hLmNwcAorICAgIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHAKICAgICBwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5j
cHAKIAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTQzMTM2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTQ5MiwxMiArNDkyLDE0IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJBcmVuYS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyQXJlbmEuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyTW9kZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oIFwKKwlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaCBcCkBAIC03NTksNiArNzYxLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlQ2hhaW4uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggXAor
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBcCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwYXJzZXIvTm9kZXMuY3BwIFwKICAgICBwYXJzZXIvUGFyc2Vy
QXJlbmEuY3BwIFwKICAgICBwYXJzZXIvUGFyc2VyLmNwcCBcCisgICAgcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmNwcCBcCiAgICAgcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwIFwKICAgICBw
cm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcCBcCiAgICAgcHJvZmlsZXIvUHJvZmlsZXJCeXRl
Y29kZS5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkFQSVNoaW1zLmgiCiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1
ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
SGVscGVycy5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzM4LDYgKzEzMzgsMTAgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxT
dHJ1Y3R1cmVJbmxpbmVzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJlUmFyZURhdGEuY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KQEAgLTI0NjYsNiArMjQ3MCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwYXJzZXJcUGFyc2VyRXJyb3IuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGFyc2VyXFBh
cnNlck1vZGVzLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjQ3OCw2ICsyNDg2LDEwIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBhcnNl
clxTb3VyY2VQcm92aWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXHBhcnNlclxTb3VyY2VQcm92aWRlci5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDMxMzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw4IEBACiAJCTBGMkJEQzUx
MTUyMjhGRkQwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkJEQzUwMTUyMjhGRkEwMENEODkxMCAv
KiBERkdWYXJpYWJsZUV2ZW50LmNwcCAqLzsgfTsKIAkJMEYyQzU1NkYxNDczOEYzMTAwMTIxRTRG
IC8qIERGR0NvZGVCbG9ja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMkM1NTZFMTQ3MzhGMkUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYyQzU1NzAx
NDczOEYzNTAwMTIxRTRGIC8qIERGR0NvZGVCbG9ja3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyQzU1NkQxNDczOEYyRTAwMTIxRTRGIC8qIERG
R0NvZGVCbG9ja3MuY3BwICovOyB9OworCQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51
c2VkUG9pbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU5ODdGMkYxNjgyOEE3RTAwM0MyRjhEIC8qIFVudXNlZFBvaW50ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjJFODkyRDE2RDAyQkFG
MDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERGR01pbmlmaWVk
SUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
RjNCM0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTcxNTNF
NjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLzsgfTsKIAkJMEYz
QjNBMUIxNTNFNjhGNDAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExODE1M0U2OEVG
MDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0EyNzE1NDRDOTk1MDAzRUQwRkYg
LyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZH
U2ltcGxpZmljYXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0xMzEsNiArMTMzLDcgQEAKIAkJMEY0
NjgwRDMxNEJCRDE2NzAwQkZFMjcyIC8qIExMSW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExM
SW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNDY4MEQ0MTRCQkQyNDkwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQwMTRC
QkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcCAqLzsgfTsKIAkJMEY0Njgw
RDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDkzQUY4MTZEMENBRDEwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgKi87IH07CiAJ
CTBGNTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1NDFBRjE2MTNDMUZCMDBD
RTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwICovOyB9OwogCQkwRjU1NDFCMjE2MTNDMUZCMDBD
RTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNTU0MUIwMTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
NTVGMEY0MTREMTA2MzkwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTVGMEYxMTREMTA2MzYwMEFDNzY0OSAv
KiBBYnN0cmFjdFBDLmNwcCAqLzsgfTsKQEAgLTIwMSw3ICsyMDQsNyBAQAogCQkwRjk2RUJCMzE2
Njc2RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTZFQkIxMTY2NzZFRjQwMDhCQURFMyAv
KiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGOTc0OTcxMTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk3
NDk2RjE2ODdBREUyMDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTgyMDYwMTZCRkUzODEwMDI0MEQw
MiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5ODIwNUQxNkJGRTM3RjAwMjQwRDAyIC8qIFByZWNpc2VKdW1w
VGFyZ2V0cy5jcHAgKi87IH07Ci0gICAgICAgICAgICAgICAgMEY5ODIwNjExNkJGRTM4MzAwMjQw
RDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5ODIwNUUxNkJGRTM3RjAwMjQwRDAyIC8qIFByZWNpc2VKdW1w
VGFyZ2V0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBGOTgyMDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTgyMDVFMTZCRkUz
N0YwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjlEMzM3MDE2NURCQjkwMDA1QUQzODcgLyog
RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUQzMzZFMTY1REJCOEQwMDVBRDM4NyAvKiBEaXNhc3NlbWJsZXIuY3BwICovOyB9
OwogCQkwRjlGQzhDMzE0RTFCNUZFMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlGQzhC
RjE0RTFCNUZCMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5jcHAgKi87IH07CiAJ
CTBGOUZDOEM0MTRFMUI2MDAwMEQ1MkFFMCAvKiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlGQzhDMDE0RTFC
NUZCMDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTQsNiArMjU3LDggQEAKIAkJMEZD
ODE1MEIxNDA0M0MwRTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDODE1MDgxNDA0M0JDQTAw
Q0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwICovOyB9OwogCQkwRkM4MTUxNTE0MDUx
MTlCMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTE0MTQwNTExOEQwMENGQTYwMyAvKiBWVGFibGVT
cGVjdHJ1bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGQzgxNTE2MTQwNTExQjUwMENGQTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4MTUxMjE0MDUxMTg2
MDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwICovOyB9OworCQkwRkNDQUU0NTE2RDBDRjc0
MDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQ0NBRTQzMTZEMENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRDJD
OTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0Yg
LyogU3RydWN0dXJlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGRDNDODI2MTQxMTVENDAwMEZEODFDQiAvKiBERkdEcml2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0M4MjAx
NDExNUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi87IH07CiAJCTBGRDNDODI4MTQxMTVE
NEYwMEZEODFDQiAvKiBERkdEcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAvKiBERkdEcml2ZXIuaCAq
LzsgfTsKIAkJMEZEODFBRDIxNTRGQjRFRTAwOTgzRTcyIC8qIERGR0RvbWluYXRvcnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEODFBQ0YxNTRG
QjRFQjAwOTgzRTcyIC8qIERGR0RvbWluYXRvcnMuY3BwICovOyB9OwpAQCAtMzIwLDYgKzMyNSwx
NCBAQAogCQkwRkY3MjlCRjE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjcyOUEwMTY2QUQz
NDcwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRjcyOUMwMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9m
aWxlck9yaWdpblN0YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkY3MjlBMjE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRjky
MkQ0MTRGNDZCNDEwMDQxQTI0RSAvKiBMTEludE9mZnNldHNFeHRyYWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NjgwQTExNEJBN0Y4MjAw
QkZFMjcyIC8qIExMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAgKi87IH07CisJCTBGRkI5MjE4MTZE
MDJFQjIwMDU1QTVEQiAvKiBERkdBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjRCNTE5MTZCNjI3NzIwMDNGNjk2QiAvKiBERkdBbGxv
Y2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkwRkZCOTIxQTE2RDAyRUM1MDA1NUE1REIgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDU2NTIyMTZBQjc4
MEEwMDE5NzY1MyAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFCMTZEMDJGMDEwMDU1QTVEQiAv
KiBERkdOb2RlQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkI0QjUxRjE2QjYyNzcyMDAzRjY5NkIgLyogREZHTm9kZUFsbG9jYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5
MjFDMTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTk4N0YyQzE2N0ZFODRC
MDAzQzJGOEQgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFEMTZEMDJGMzAwMDU1QTVE
QiAvKiBERkdTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYxRTNBNTAxNTM3QzJDQjAwMEY5NDU2IC8qIERGR1Nsb3dQYXRo
R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMEZGQjkyMUUxNkQwMkY0NzAwNTVBNURCIC8qIERGR1ZhcmlhZGljRnVuY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODVBMzFFMTZB
Qjc2QUUwMDc3NTcxRSAvKiBERkdWYXJpYWRpY0Z1bmN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUYxNkQwMzMwNTAwNTVBNURC
IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkZCOTIyMDE2RDAzM0I3MDA1
NUE1REIgLyogTm9kZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMwREFEMDMwRkIxRUIxQTAwODJEMjA1IC8qIE5vZGVDb25zdHJ1
Y3RvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRkZGQzk1NzE0RUY5MEEwMDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRkM5NEIxNEVGOTA5NTAwQzcy
NTMyIC8qIERGR0NGQVBoYXNlLmNwcCAqLzsgfTsKIAkJMEZGRkM5NTgxNEVGOTBBMjAwQzcyNTMy
IC8qIERGR0NGQVBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkZGQzk0QzE0RUY5MDk1MDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkZGQzk1OTE0RUY5
MEE2MDBDNzI1MzIgLyogREZHQ1NFUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRkM5NEQxNEVGOTA5NTAwQzcyNTMyIC8qIERGR0NTRVBo
YXNlLmNwcCAqLzsgfTsKQEAgLTUwNSw3ICs1MTgsNyBAQAogCQk2NTVFQjI5QjEwQ0UyNTgxMDAx
QTk5MEUgLyogTm9kZXNDb2RlZ2VuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1NUVCMjlBMTBDRTI1ODEwMDFBOTkwRSAvKiBOb2Rlc0NvZGVnZW4u
Y3BwICovOyB9OwogCQk3RTRFRTcwOTBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEVFNzA4
MEVCQjc5NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAv
KiBTdHJ1Y3R1cmVDaGFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RTRFRTcwRTBFQkI3QTVCMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uY3Bw
ICovOyB9OwotCQk3RUZGMDA2NDBFQzA1QTlBMDBBQTdDOTMgLyogTm9kZUluZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRkYwMDYzMEVDMDVBOUEw
MEFBN0M5MyAvKiBOb2RlSW5mby5oICovOyB9OworCQk3RUZGMDA2NDBFQzA1QTlBMDBBQTdDOTMg
LyogTm9kZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFRkYwMDYzMEVDMDVBOUEwMEFBN0M5MyAvKiBOb2RlSW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MDQ4MDEzMTAyMUExRDkwMDhF
N0YwMSAvKiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwODk0RDYwRkFGQkEyRDAwMDAxODY1IC8qIEpTQVBJVmFsdWVX
cmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODYwMTYxRTMwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MDE2MURGMEYz
QTgzQzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYwMTYxRTQwRjNBODNDMTAwRjg0
NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NjAxNjFFMDBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJs
ZXJYODYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNTQ0LDEyICs1NTcsMTIgQEAKIAkJODZBRTY0QTgxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3Jv
QXNzZW1ibGVyU0g0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2QUU2NEE1MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5jcHAg
Ki87IH07CiAJCTg2QUU2NEE5MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTY0QTYx
MzVFNUUxQzAwOTYzMDEyIC8qIE1hY3JvQXNzZW1ibGVyU0g0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZBRTY0QUExMzVFNUUxQzAwOTYzMDEy
IC8qIFNINEFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZBRTY0QTcxMzVFNUUxQzAwOTYzMDEyIC8qIFNINEFzc2VtYmxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg2QUU2QzREMTM2
QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNkM0QjEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBSSW5m
by5oICovOyB9OwotCQk4NkFFNkM0RTEzNkExMUU0MDA5NjMwMTIgLyogREZHR1BSSW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTZDNEMxMzZB
MTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCAqLzsgfTsKKwkJODZBRTZDNEQxMzZBMTFFNDAw
OTYzMDEyIC8qIERGR0ZQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2QUU2QzRCMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZBRTZDNEUx
MzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2QzRDMTM2QTExRTQwMDk2MzAxMiAvKiBERkdHUFJJ
bmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODZCNTgyNjcxNEQyNzk2QzAwQTlDMzA2IC8qIENvZGVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QjU4MjJFMTREMjM3M0IwMEE5QzMw
NiAvKiBDb2RlUHJvZmlsZS5jcHAgKi87IH07CiAJCTg2QjU4MjY5MTREMjc5NzAwMEE5QzMwNiAv
KiBDb2RlUHJvZmlsaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2MDNDRUYyMTRDNzU0NjQwMEFFNTlFMyAvKiBDb2RlUHJvZmlsaW5nLmNwcCAq
LzsgfTsKIAkJODZCQjA5QzAxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCQjA5QkUxMzhFMzgx
QjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guY3BwICovOyB9OwotCQk4NkJCMDlDMTEzOEUzODFCMDA1
NjcwMkYgLyogREZHUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODZCQjA5QkYxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCAqLzsg
fTsKKwkJODZCQjA5QzExMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkIwOUJGMTM4RTM4MUIwMDU2
NzAyRiAvKiBERkdSZXBhdGNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODZDMzZFRUEwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkMzNkVF
OTBFRTEyODlEMDBCM0RGNTkgLyogTWFjcm9Bc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkM1NjhFMDExQTIxM0VFMDAwN0Y3RjAg
LyogTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZDNTY4REQxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVy
QVJNLmNwcCAqLzsgfTsKIAkJODZDNTY4RTExMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1i
bGVyTUlQUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZDNTY4REUxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyTUlQUy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01ODksMTkgKzYwMiwx
OSBAQAogCQk4NkVCRjMwMzE1NjBGMDZBMDA4RTkyMjIgLyogTmFtZVByb3RvdHlwZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVCRjJGRDE1NjBG
MDM2MDA4RTkyMjIgLyogTmFtZVByb3RvdHlwZS5jcHAgKi87IH07CiAJCTg2RUJGMzA0MTU2MEYw
NkEwMDhFOTIyMiAvKiBOYW1lUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVCRjJGRTE1NjBGMDM2MDA4RTkyMjIgLyogTmFtZVByb3Rv
dHlwZS5oICovOyB9OwogCQk4NkVDOURDNDEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFQzlEQjQxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmNwcCAqLzsgfTsK
LQkJODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNTEzMjhERjgy
MDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsgfTsKLQkJODZFQzlEQzYxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2Vu
ZXJhdGlvbkluZm8uaCAqLzsgfTsKKwkJODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5
dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDOURCNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkVDOURDNjEz
MjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI2MTMyOERGODIwMDJCMkFENyAvKiBE
RkdHZW5lcmF0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNzEzMjhE
RjgyMDAyQjJBRDcgLyogREZHR3JhcGguY3BwICovOyB9OwotCQk4NkVDOURDODEzMjhERjgyMDAy
QjJBRDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2RUM5REI4MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5oICovOyB9Owor
CQk4NkVDOURDODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI4MTMyOERGODIwMDJCMkFENyAv
KiBERkdHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg2RUM5RENCMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21waWxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCQjEzMjhE
RjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuY3BwICovOyB9OwotCQk4NkVDOURDQzEzMjhE
RjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REJDMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRD
b21waWxlci5oICovOyB9OworCQk4NkVDOURDQzEzMjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29t
cGlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REJDMTMyOERGODIwMDJCMkFENyAvKiBERkdKSVRDb21waWxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUM5RENGMTMyOERGODIwMDJC
MkFENyAvKiBERkdPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUM5REJGMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25z
LmNwcCAqLzsgfTsKLQkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMw
MTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IH07Ci0JCTg2RUM5REQxMTMy
OERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdS
ZWdpc3RlckJhbmsuaCAqLzsgfTsKKwkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09w
ZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RUM5REMwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQzlERDExMzI4REY4MjAw
MkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVy
QmFuay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg2RUM5REQyMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgy
MDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhE
RjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdT
cGVjdWxhdGl2ZUpJVC5oICovOyB9OwotCQk4NkVDQTNFQTEzMkRFRjFDMDAyQjJBRDcgLyogREZH
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZF
Q0EzRTkxMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCAqLzsgfTsKLQkJODZFQ0EzRkExMzJE
RjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29y
ZUJvYXJkLmggKi87IH07CisJCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxh
dGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQ0EzRUExMzJERUYx
QzAwMkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQ0EzRkExMzJE
RjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0Y5MTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29y
ZUJvYXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODZGM0VFQkIxNjhDREU5MzAwNzdCOTJBIC8qIEpTQmxvY2tBZGFwdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCNzE2OENDRjc1MDA3
N0I5MkEgLyogSlNCbG9ja0FkYXB0b3IuaCAqLzsgfTsKIAkJODZGM0VFQkMxNjhDREU5MzAwNzdC
OTJBIC8qIEpTQmxvY2tBZGFwdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZGM0VFQjgxNjhDQ0Y3NTAwNzdCOTJBIC8qIEpTQmxvY2tBZGFwdG9y
Lm1tICovOyB9OwogCQk4NkYzRUVCRDE2OENERTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVu
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OwpA
QCAtNjM3LDkgKzY1MCw5IEBACiAJCTk2OUEwNzJBMEVEMUNFNjkwMEYxRjY4MSAvKiBMYWJlbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3Mjcw
RUQxQ0U2OTAwRjFGNjgxIC8qIExhYmVsLmggKi87IH07CiAJCTk2OUEwNzJCMEVEMUNFNjkwMEYx
RjY4MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NjlBMDcyODBFRDFDRTY5MDBGMUY2ODEgLyogUmVnaXN0ZXJJRC5oICovOyB9
OwogCQk5NjlBMDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzkwMEVEMUQzQUUwMEYx
RjY4MSAvKiBDb2RlQmxvY2suY3BwICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICIt
Zm5vLXN0cmljdC1hbGlhc2luZyI7IH07IH07Ci0JCTk2OUEwNzk3MEVEMUQzQUUwMEYxRjY4MSAv
KiBDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk2OUEwNzkxMEVEMUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2ODEgLyog
RXZhbENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTY5QTA3OTIwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCAqLzsgfTsK
LQkJOTY5QTA3OTkwRUQxRDNBRTAwRjFGNjgxIC8qIEluc3RydWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MzBFRDFEM0FFMDBGMUY2
ODEgLyogSW5zdHJ1Y3Rpb24uaCAqLzsgfTsKKwkJOTY5QTA3OTcwRUQxRDNBRTAwRjFGNjgxIC8q
IENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTY5QTA3OTEwRUQxRDNBRTAwRjFGNjgxIC8qIENvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk2OUEwNzk4MEVEMUQzQUUwMEYx
RjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NjlBMDc5MjBFRDFEM0FFMDBGMUY2ODEgLyogRXZhbENvZGVDYWNoZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk2OUEw
Nzk5MEVEMUQzQUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTMwRUQxRDNBRTAwRjFGNjgxIC8qIElu
c3RydWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5NDBFRDFEM0FFMDBGMUY2
ODEgLyogT3Bjb2RlLmNwcCAqLzsgfTsKIAkJOTY5QTA3OUIwRUQxRDNBRTAwRjFGNjgxIC8qIE9w
Y29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5
QTA3OTUwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MUVERUE2MTE2OUUwRDMwMDVFNDI2MiAvKiBU
ZXJtaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NjgsMTIgKzY4MSwxMiBAQAog
CQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjUwRUU3NENG
QzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzZDNTE3NjExODI3NDhEMDA3MTVCMDUgLyog
SlNJbnRlcmZhY2VKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NkYyNzk0MTVG
MTNDOTYwMDUxN0Q2NyAvKiBVbmxpbmtlZENvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzlFNzgxRTE1RUVDQkE4MDA0N0M4NTUgLyog
VW5saW5rZWRDb2RlQmxvY2suY3BwICovOyB9OwotCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0Ug
LyogSklUV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmgg
Ki87IH07CisJCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkY1NEEyMTNC
MjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdGMTgyMTE2NDA4OEIyMDA2NDBBNDcgLyog
Q29kZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3N0YxODFGMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwICovOyB9OwogCQlB
NzdGMTgyMjE2NDA4OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdGMTgyMDE2NDA4OEIyMDA2NDBBNDcgLyog
Q29kZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc3RjE4MjUxNjQxOTJDNzAwNjQwQTQ3IC8qIFBhcnNlck1vZGVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdGMTgyNDE2NDE5MjU0MDA2
NDBBNDcgLyogUGFyc2VyTW9kZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQlBNzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzQx
MUI5OEI4RDAwNjVBMTRGIC8qIEFTVEJ1aWxkZXIuaCAqLzsgfTsKLQkJQTc4NEEyNjQxMUQxNjYy
MjAwNTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc3MTFCOThCOEQwMDY1QTE0RiAvKiBTeW50YXhDaGVj
a2VyLmggKi87IH07CisJCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NDEx
Qjk4QjhEMDA2NUExNEYgLyogQVNUQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3ODRBMjY0MTFEMTY2MjIwMDU3NzZBQyAvKiBTeW50
YXhDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0E3RUU3NzExQjk4QjhEMDA2NUExNEYgLyogU3ludGF4Q2hlY2tlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3QUZDMTc5MTVGN0VGRTMw
MDQ4RjU3QiAvKiBSZXNvbHZlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FGQzE3NzE1RjdFRkUzMDA0OEY1N0IgLyogUmVzb2x2ZU9w
ZXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3QjQ4RjQ5MEVFODkzNkYwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2MEVF
NzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJQTdCNEFD
QUYxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0QUNBRTE0ODRDOUNFMDBCMzhBMzYgLyog
SlNFeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNzQwLDcgKzc1Myw3IEBACiAJCUJDMThDNDJDMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBKU1ZhbHVlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDgyQjZFQTBBNDMwMEIzMDA1MTdDRkMgLyogSlNWYWx1ZVJlZi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkMxOEM0MkQwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTVmFyaWFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0RjI1MjU2MEQwOEREOEQwMDRFQ0ZGRiAvKiBKU1ZhcmlhYmxl
T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMxOEM0MkUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVDN0ExNzIwQThFQUFDQjAw
RkEzN0VBIC8qIEpTV3JhcHBlck9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDMxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NjYw
MjU1NTk3RDAxRkY2MEY3IC8qIExleGVyLmggKi87IH07CisJCUJDMThDNDMxMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjY5MkE4NjYwMjU1NTk3RDAxRkY2MEY3IC8qIExleGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0MzcwRTE2RjVDRDAwQjM0
NDYwIC8qIExvb2t1cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjY5MkE4NjkwMjU1NTk3RDAxRkY2MEY3IC8qIExvb2t1cC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDNDMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBNYXRoT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNjkyQTg2QjAyNTU1OTdEMDFGRjYwRjcgLyogTWF0aE9iamVjdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDNGMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBOb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjY5MkE4NkUwMjU1NTk3RDAxRkY2MEY3IC8qIE5vZGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc1MSw3ICs3NjQs
NyBAQAogCQlCQzE4QzQ0NTBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjY4MEM3MEUx
NkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RDb25zdHJ1Y3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDQ2MEUxNkY1Q0QwMEIzNDQ2MCAv
KiBPYmplY3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMjY4MEM5MEUxNkQ0RTkwMEEwNkU5MiAvKiBPYmplY3RQcm90b3R5cGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ0
ODBFMTZGNUNEMDBCMzQ0NjAgLyogT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NzgwMjU1NTk3RDAxRkY2MEY3IC8qIE9wZXJh
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlCQzE4QzQ0QjBFMTZGNUNEMDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyog
UGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJQkMxOEM0
NEIwRTE2RjVDRDAwQjM0NDYwIC8qIFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThD
NDUwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2NDBERDExRjVBMDAwOTE3RkIgLyogUHJvZmls
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
MThDNDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8q
IFByb2ZpbGVOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkMxOEM0NTIwRTE2RjVDRDAwQjM0NDYwIC8qIExlZ2FjeVByb2ZpbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFCODMyRjBEQTQy
Q0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzg0LDcgKzc5Nyw3IEBACiAJCUJDOTA0MTQ4MEVC
OTI1MDkwMEZFMjZGQSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTA0MTQ3MEVCOTI1MDkwMEZFMjZG
QSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzk1NDM3RDBFQkE3MEZEMDA3MkI2RDMgLyogUHJv
cGVydHlNYXBIYXNoVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDOTU0MzdDMEVCQTcwRkQwMDcyQjZEMyAvKiBQcm9wZXJ0eU1hcEhhc2hUYWJs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
QkUyQ0FFMTRFOTg1QUEwMDA1OTNBRCAvKiBHQ0Fzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkUyQ0FEMTRFOTg1QUEwMDA1OTNBRCAv
KiBHQ0Fzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlCQ0NGMEQwODBFRjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0YwRDA3
MEVGMEFBQjkwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5mby5oICovOyB9OworCQlCQ0NGMEQw
ODBFRjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0YwRDA3MEVGMEFBQjkwMDQxM0M4RiAv
KiBTdHJ1Y3R1cmVTdHViSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDQ0YwRDBDMEVGMEI4QTUwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHVi
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0NGMEQwQjBFRjBCOEE1MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uY3BwICovOyB9Owog
CQlCQ0QyMDJDMjBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDIwMkJFMEUxNzA2QTcw
MDJDN0U4MiAvKiBSZWdFeHBDb25zdHJ1Y3Rvci5oICovOyB9OwogCQlCQ0QyMDJDNDBFMTcwNkE3
MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QyMDJDMDBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwUHJv
dG90eXBlLmggKi87IH07CkBAIC03OTcsNyArODEwLDcgQEAKIAkJQkNERTNCNDMwRTZDODMyRDAw
MTQ1M0E3IC8qIFN0cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0RFM0FCMDBFNkM4MkNGMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCAq
LzsgfTsKIAkJQkNGNjA1MTQwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjYwNTEyMEUyMDNFRjgwMEI5
QTY0RCAvKiBBcmdMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MDBFRUIy
RUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCAqLzsgfTsKLQkJQkNGRDhDOTMwRUVCMkVFNzAw
MjgzODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oICovOyB9
OworCQlCQ0ZEOEM5MzBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZEOEM5MTBFRUIyRUU3MDAyODM4
NDggLyogSnVtcFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQzIwQkE5MkQxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRh
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzIwQkE5MkMxNkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMTEyMkUx
MTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIxMTIyREUxNUREOUFCMzAwNzkwRTNB
IC8qIEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAgKi87IH07CiAJCUMyMTEyMkUyMTVERDlBQjMwMDc5
MEUzQSAvKiBHQ1RocmVhZFNoYXJlZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTEyMkRGMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNo
YXJlZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTAxMiw2ICsxMDI1LDcgQEAKIAkJMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExM
SW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludERhdGEuaDsg
cGF0aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8q
IEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ5
M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlY2lhbFBvaW50
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1NDFCMDE2MTNDMUZCMDBD
RTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlY2lhbFBvaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NUYw
RjExNEQxMDYzNjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWJzdHJhY3RQQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTQ3LDYgKzExNjEsOCBAQAogCQkwRkM4MTUxMjE0MDUxMTg2MDBDRkE2MDMgLyog
VlRhYmxlU3BlY3RydW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VlRhYmxlU3BlY3RydW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM4MTUx
NDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVlRhYmxlU3BlY3RydW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZDQjQwODUxNUMwQTNDMzAwNDg5MzJCIC8qIFNsb3RWaXNpdG9ySW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbG90VmlzaXRvcklubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDQ0FFNDMxNkQwQ0Y2RTAwRDBDNjVCIC8qIFBh
cnNlckVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlckVycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJDOTIzMTZEMDFFRTkwMEM3ODAz
RiAvKiBTdHJ1Y3R1cmVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0cnVjdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0M4
MjAxNDExNUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdEcml2ZXIuY3BwOyBwYXRoID0gZGZnL0RGR0RyaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAv
KiBERkdEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRHJpdmVy
Lmg7IHBhdGggPSBkZmcvREZHRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRDU2NTIyMTZBQjc4MEEwMDE5NzY1MyAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYXNpY0Jsb2NrSW5saW5lcy5oOyBwYXRo
ID0gZGZnL0RGR0Jhc2ljQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjkyLDEwICsyMzA4LDEyIEBACiAJCQkJOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8q
IFBhcnNlci5oICovLAogCQkJCTkzMDUyQzMyMEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVu
YS5jcHAgKi8sCiAJCQkJOTMwNTJDMzMwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmgg
Ki8sCisJCQkJMEZDQ0FFNDMxNkQwQ0Y2RTAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggKi8sCiAJ
CQkJQTc3RjE4MjQxNjQxOTI1NDAwNjQwQTQ3IC8qIFBhcnNlck1vZGVzLmggKi8sCiAJCQkJNjUz
MDNENjMxNDQ3QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oICovLAogCQkJCTg2OUVCQ0I2
MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggKi8sCiAJCQkJNjVFODY2RUUwREQ1OUFG
QTAwQTJCMkExIC8qIFNvdXJjZUNvZGUuaCAqLywKKwkJCQkwRjQ5M0FGODE2RDBDQUQxMDA4NDUw
OEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovLAogCQkJCTY1RTg2NkVEMERENTlBRkEwMEEyQjJB
MSAvKiBTb3VyY2VQcm92aWRlci5oICovLAogCQkJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAv
KiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLywKIAkJCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovLApAQCAtMjUyOSw2ICsyNTQ3LDcgQEAKIAkJ
CQlCQ0RFM0FCMTBFNkM4MkNGMDAxNDUzQTcgLyogU3RydWN0dXJlLmggKi8sCiAJCQkJN0U0RUU3
MEUwRUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAqLywKIAkJCQk3RTRFRTcw
ODBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCAqLywKKwkJCQkwRkQyQzkyMzE2
RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovLAogCQkJCUMyRjBGMkQwMTZC
QUVFRTkwMDE4N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgKi8sCiAJCQkJQzJGRTE4QTMx
NkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVyZVJhcmVEYXRhLmggKi8sCiAJCQkJQzIwQkE5MkMx
NkJCMUMxNTAwQjNBRUEyIC8qIFN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oICovLApAQCAtMzM0
OSw2ICszMzY4LDE4IEBACiAJCQkJMEZCRTBGNzMxNkMxREIwNTAwODJDNUU4IC8qIERGR0NQU1Jl
dGhyZWFkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkUwRjc1MTZDMURCMEIwMDgy
QzVFOCAvKiBERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQkUwRjc3MTZDMURCMTIwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNl
ZFBvaW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAv
KiBERkdNaW5pZmllZElELmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxODE2RDAyRUIyMDA1
NUE1REIgLyogREZHQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxQTE2RDAy
RUM1MDA1NUE1REIgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRkI5MjFCMTZEMDJGMDEwMDU1QTVEQiAvKiBERkdOb2RlQWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkZCOTIxQzE2RDAyRjExMDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0
aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMUQxNkQwMkYzMDAwNTVBNURCIC8q
IERGR1Nsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxRTE2RDAy
RjQ3MDA1NUE1REIgLyogREZHVmFyaWFkaWNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZGQjkyMUYxNkQwMzMwNTAwNTVBNURCIC8qIChudWxsKSBpbiBIZWFkZXJzICovLAorCQkJCTBG
RkI5MjIwMTZEMDMzQjcwMDU1QTVEQiAvKiBOb2RlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMzk4Nyw2ICs0MDE4LDcgQEAKIAkJCQkwRkJFMEY3MjE2QzFEQjAzMDA4MkM1
RTggLyogREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJF
MEY3NDE2QzFEQjA5MDA4MkM1RTggLyogREZHUHJlZGljdGlvbkluamVjdGlvblBoYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlmaWNh
dGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4
QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE0MzEzNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNyArNjEsNiBAQAogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVk
ZSAiTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCIKICNpbmNsdWRlICJMaW5lSW5mby5oIgotI2lu
Y2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogI2luY2x1
ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2luY2x1ZGUgIlJlc29sdmVPcGVyYXRpb24uaCIKQEAgLTE0
NjEsMTEgKzE0NjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9CiAjZW5kaWYKICAgICAKLSAg
ICBpbmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChDb2RlQmxvY2sq
IGNvZGVCbG9jaykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29r
dXAoY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSk7Ci0gICAgfQotCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIENvZGVCbG9ja19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXZhbENvZGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9FdmFsQ29kZUNhY2hlLmgJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FdmFsQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIk5vZGVzLmgiCi0jaW5jbHVkZSAiUGFyc2VyLmgi
CiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NhbXBsaW5nVG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TYW1wbGluZ1Rvb2wuaAkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw3ICszMCw2
IEBACiAjZGVmaW5lIFNhbXBsaW5nVG9vbF9oCiAKICNpbmNsdWRlICJTdHJvbmcuaCIKLSNpbmNs
dWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nQ291
bnRlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHJldmlz
aW9uIDE0MzEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJF
eGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCisjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJTeW1ib2xUYWJsZS5oIgpAQCAtOTgsNiAr
OTksMTEgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuYwogewogfQog
CitzaXplX3QgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtZXRlckNvdW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wYXJhbWV0ZXJzLT5zaXplKCk7Cit9CisKIHZvaWQgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogdGhpc09i
amVjdCA9IGpzQ2FzdDxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNlbGwpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
LmgJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbmNs
dWRlICJFeHByZXNzaW9uUmFuZ2VJbmZvLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIkpTQ2VsbC5oIgorI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiTGluZUlu
Zm8uaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgorI2luY2x1ZGUgIlBhcnNlck1vZGVzLmgiCiAjaW5j
bHVkZSAiUmVnRXhwLmgiCiAjaW5jbHVkZSAiU3BlY2lhbFBvaW50ZXIuaCIKKyNpbmNsdWRlICJT
eW1ib2xUYWJsZS5oIgogI2luY2x1ZGUgIldlYWsuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkQXJyYXkuaD4KQEAgLTkzLDcgKzk1LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIChraW5kID09IENvZGVGb3JDYWxsKSA/IG1fc3ltYm9sVGFibGVGb3JDYWxsLmdldCgpIDog
bV9zeW1ib2xUYWJsZUZvckNvbnN0cnVjdC5nZXQoKTsKICAgICB9Ci0gICAgc2l6ZV90IHBhcmFt
ZXRlckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLT5zaXplKCk7IH0KKyAgICBz
aXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25zdDsKICAgICBib29sIGlzSW5TdHJpY3RDb250ZXh0
KCkgY29uc3QgeyByZXR1cm4gbV9pc0luU3RyaWN0Q29udGV4dDsgfQogICAgIEZ1bmN0aW9uTmFt
ZUlzSW5TY29wZVRvZ2dsZSBmdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUoKSBjb25zdCB7IHJl
dHVybiBtX2Z1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZTsgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CShyZXZpc2lvbiAxNDMxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJMYWJlbC5oIgogI2luY2x1ZGUgIkxhYmVsU2NvcGUuaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJJ
RC5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxlLmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgJKHJldmlzaW9u
IDE0MzEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorICAg
IGNsYXNzIEJ5dGVjb2RlR2VuZXJhdG9yOworCiAgICAgY2xhc3MgTGFiZWwgewogICAgIHB1Ymxp
YzoKICAgICAgICAgZXhwbGljaXQgTGFiZWwoQnl0ZWNvZGVHZW5lcmF0b3IqIGdlbmVyYXRvcikK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCShyZXZpc2lvbiAxNDMxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1
ZGUgIkRGR0FycmF5TW9kZS5oIgogI2luY2x1ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1
ZGUgIkdldEJ5SWRTdGF0dXMuaCIKLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcmVjaXNlSnVtcFRhcmdldHMuaCIKICNp
bmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiUmVzb2x2ZUdsb2JhbFN0YXR1cy5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
aAkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIAotI2luY2x1ZGUgPGRmZy9ERkdHcmFwaC5oPgorI2luY2x1ZGUgIkRGR0dy
YXBoLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZQUkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZQUkluZm8uaAkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGUFJJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDggQEAKIAogI2lm
IEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSA8YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg+
Ci0jaW5jbHVkZSA8ZGZnL0RGR1JlZ2lzdGVyQmFuay5oPgorI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVyLmgiCisjaW5jbHVkZSAiREZHUmVnaXN0ZXJCYW5rLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdp
c3RlckJhbmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Jl
Z2lzdGVyQmFuay5oCShyZXZpc2lvbiAxNDMxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1JlZ2lzdGVyQmFuay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2luY2x1ZGUgPGRmZy9ERkdDb21tb24uaD4KKyNpbmNs
dWRlICJERkdDb21tb24uaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTdGFjay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCShyZXZpc2lv
biAxNDMxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVTdGFjay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJIYW5kbGVTdGFjay5o
IgogCiAjaW5jbHVkZSAiSGVhcFJvb3RWaXNpdG9yLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
V3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTQzMTM2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIK
ICNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKLSNpbmNsdWRlICJqaXQvVW51c2VkUG9pbnRlci5o
IgorI2luY2x1ZGUgIlVudXNlZFBvaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHJldmlzaW9uIDE0MzEzNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNp
bmNsdWRlICJQYXJzZXJBcmVuYS5oIgorI2luY2x1ZGUgIlBhcnNlclRva2Vucy5oIgogI2luY2x1
ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU3lt
Ym9sVGFibGUuaCIKQEAgLTQ3LDE5ICs0OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNz
IEpTU2NvcGU7CiAgICAgY2xhc3MgU2NvcGVOb2RlOwogCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBD
b2RlRmVhdHVyZXM7Ci0KLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgTm9GZWF0dXJlcyA9IDA7Ci0g
ICAgY29uc3QgQ29kZUZlYXR1cmVzIEV2YWxGZWF0dXJlID0gMSA8PCAwOwotICAgIGNvbnN0IENv
ZGVGZWF0dXJlcyBBcmd1bWVudHNGZWF0dXJlID0gMSA8PCAxOwotICAgIGNvbnN0IENvZGVGZWF0
dXJlcyBXaXRoRmVhdHVyZSA9IDEgPDwgMjsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgQ2F0Y2hG
ZWF0dXJlID0gMSA8PCAzOwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBUaGlzRmVhdHVyZSA9IDEg
PDwgNDsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgU3RyaWN0TW9kZUZlYXR1cmUgPSAxIDw8IDU7
Ci0gICAgY29uc3QgQ29kZUZlYXR1cmVzIFNoYWRvd3NBcmd1bWVudHNGZWF0dXJlID0gMSA8PCA2
OwotICAgIAotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBBbGxGZWF0dXJlcyA9IEV2YWxGZWF0dXJl
IHwgQXJndW1lbnRzRmVhdHVyZSB8IFdpdGhGZWF0dXJlIHwgQ2F0Y2hGZWF0dXJlIHwgVGhpc0Zl
YXR1cmUgfCBTdHJpY3RNb2RlRmVhdHVyZSB8IFNoYWRvd3NBcmd1bWVudHNGZWF0dXJlOwotCiAg
ICAgZW51bSBPcGVyYXRvciB7CiAgICAgICAgIE9wRXF1YWwsCiAgICAgICAgIE9wUGx1c0VxLApA
QCAtMTQxMiw3ICsxNDAwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQqIG1fc3Rv
cmFnZTsKICAgICB9OwogCi0gICAgZW51bSBGdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUgeyBG
dW5jdGlvbk5hbWVJc05vdEluU2NvcGUsIEZ1bmN0aW9uTmFtZUlzSW5TY29wZSB9OwogICAgIGNs
YXNzIEZ1bmN0aW9uQm9keU5vZGUgOiBwdWJsaWMgU2NvcGVOb2RlIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBib29sIGlzRnVuY3Rpb25Ob2RlID0gdHJ1ZTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTQzMTM2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
OCArMzAsMTAgQEAKICNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCiAjaW5j
bHVkZSAiUGFyc2VyQXJlbmEuaCIKKyNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1ZGUg
IlBhcnNlclRva2Vucy5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAi
U291cmNlUHJvdmlkZXJDYWNoZS5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KQEAgLTc2LDQ5ICs3OCw2IEBAIENPTVBJTEVfQVNTRVJUKExhc3RVbnRhZ2dlZFRva2VuIDwg
NjQsIEwKIGVudW0gU291cmNlRWxlbWVudHNNb2RlIHsgQ2hlY2tGb3JTdHJpY3RNb2RlLCBEb250
Q2hlY2tGb3JTdHJpY3RNb2RlIH07CiBlbnVtIEZ1bmN0aW9uUmVxdWlyZW1lbnRzIHsgRnVuY3Rp
b25Ob1JlcXVpcmVtZW50cywgRnVuY3Rpb25OZWVkc05hbWUgfTsKIAotc3RydWN0IFBhcnNlckVy
cm9yIHsKLSAgICBlbnVtIEVycm9yVHlwZSB7IEVycm9yTm9uZSwgU3RhY2tPdmVyZmxvdywgU3lu
dGF4RXJyb3IsIEV2YWxFcnJvciwgT3V0T2ZNZW1vcnkgfSBtX3R5cGU7Ci0gICAgU3RyaW5nIG1f
bWVzc2FnZTsKLSAgICBpbnQgbV9saW5lOwotICAgIFBhcnNlckVycm9yKCkKLSAgICAgICAgOiBt
X3R5cGUoRXJyb3JOb25lKQotICAgICAgICAsIG1fbGluZSgtMSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgUGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUpCi0gICAgICAgIDogbV90eXBlKHR5cGUpCi0g
ICAgICAgICwgbV9saW5lKC0xKQotICAgIHsKLSAgICB9Ci0KLSAgICBQYXJzZXJFcnJvcihFcnJv
clR5cGUgdHlwZSwgU3RyaW5nIG1zZywgaW50IGxpbmUpCi0gICAgICAgIDogbV90eXBlKHR5cGUp
Ci0gICAgICAgICwgbV9tZXNzYWdlKG1zZykKLSAgICAgICAgLCBtX2xpbmUobGluZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgSlNPYmplY3QqIHRvRXJyb3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQotICAgIHsKLSAgICAgICAgc3dp
dGNoIChtX3R5cGUpIHsKLSAgICAgICAgY2FzZSBFcnJvck5vbmU6Ci0gICAgICAgICAgICByZXR1
cm4gMDsKLSAgICAgICAgY2FzZSBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBhZGRF
cnJvckluZm8oZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGds
b2JhbE9iamVjdCwgbV9tZXNzYWdlKSwgbV9saW5lLCBzb3VyY2UpOwotICAgICAgICBjYXNlIEV2
YWxFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmpl
Y3QsIG1fbWVzc2FnZSk7Ci0gICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKLSAgICAgICAgICAg
IHJldHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
Y2FzZSBPdXRPZk1lbW9yeToKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVy
cm9yKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIH0KLSAgICAgICAgQ1JBU0goKTsKLSAgICAgICAg
cmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KTsgLy8gQXBwZWFzZSBR
dCBib3QKLSAgICB9Ci0KLX07Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgYm9vbCBp
c0V2YWxOb2RlKCkgeyByZXR1cm4gZmFsc2U7IH0KIHRlbXBsYXRlIDw+IGlubGluZSBib29sIGlz
RXZhbE5vZGU8RXZhbE5vZGU+KCkgeyByZXR1cm4gdHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBQYXJzZXJFcnJvcl9oCisjZGVmaW5lIFBhcnNlckVycm9yX2gKKworI2luY2x1ZGUg
IkVycm9yLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworc3RydWN0IFBhcnNlckVycm9y
IHsKKyAgICBlbnVtIEVycm9yVHlwZSB7IEVycm9yTm9uZSwgU3RhY2tPdmVyZmxvdywgU3ludGF4
RXJyb3IsIEV2YWxFcnJvciwgT3V0T2ZNZW1vcnkgfSBtX3R5cGU7CisgICAgU3RyaW5nIG1fbWVz
c2FnZTsKKyAgICBpbnQgbV9saW5lOworICAgIFBhcnNlckVycm9yKCkKKyAgICAgICAgOiBtX3R5
cGUoRXJyb3JOb25lKQorICAgICAgICAsIG1fbGluZSgtMSkKKyAgICB7CisgICAgfQorCisgICAg
UGFyc2VyRXJyb3IoRXJyb3JUeXBlIHR5cGUpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAg
ICAgICwgbV9saW5lKC0xKQorICAgIHsKKyAgICB9CisKKyAgICBQYXJzZXJFcnJvcihFcnJvclR5
cGUgdHlwZSwgU3RyaW5nIG1zZywgaW50IGxpbmUpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisg
ICAgICAgICwgbV9tZXNzYWdlKG1zZykKKyAgICAgICAgLCBtX2xpbmUobGluZSkKKyAgICB7Cisg
ICAgfQorCisgICAgSlNPYmplY3QqIHRvRXJyb3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
IChtX3R5cGUpIHsKKyAgICAgICAgY2FzZSBFcnJvck5vbmU6CisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgY2FzZSBTeW50YXhFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBhZGRFcnJv
ckluZm8oZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2Jh
bE9iamVjdCwgbV9tZXNzYWdlKSwgbV9saW5lLCBzb3VyY2UpOworICAgICAgICBjYXNlIEV2YWxF
cnJvcjoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3Qs
IG1fbWVzc2FnZSk7CisgICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgY2Fz
ZSBPdXRPZk1lbW9yeToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9y
KGdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KTsgLy8gQXBwZWFzZSBRdCBi
b3QKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFBhcnNlckVy
cm9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgJ
KHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
TW9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsMjEgQEAgZW51bSBKU1BhcnNlck1vZGUg
eyBKU1BhcnNlUHJvZ3JhbUNvZGUsIAogZW51bSBQcm9maWxlck1vZGUgeyBQcm9maWxlck9mZiwg
UHJvZmlsZXJPbiB9OwogZW51bSBEZWJ1Z2dlck1vZGUgeyBEZWJ1Z2dlck9mZiwgRGVidWdnZXJP
biB9OwogCi19CitlbnVtIEZ1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZSB7IEZ1bmN0aW9uTmFt
ZUlzTm90SW5TY29wZSwgRnVuY3Rpb25OYW1lSXNJblNjb3BlIH07CiAKLSNlbmRpZgordHlwZWRl
ZiB1bnNpZ25lZCBDb2RlRmVhdHVyZXM7CisKK2NvbnN0IENvZGVGZWF0dXJlcyBOb0ZlYXR1cmVz
ID0gMDsKK2NvbnN0IENvZGVGZWF0dXJlcyBFdmFsRmVhdHVyZSA9IDEgPDwgMDsKK2NvbnN0IENv
ZGVGZWF0dXJlcyBBcmd1bWVudHNGZWF0dXJlID0gMSA8PCAxOworY29uc3QgQ29kZUZlYXR1cmVz
IFdpdGhGZWF0dXJlID0gMSA8PCAyOworY29uc3QgQ29kZUZlYXR1cmVzIENhdGNoRmVhdHVyZSA9
IDEgPDwgMzsKK2NvbnN0IENvZGVGZWF0dXJlcyBUaGlzRmVhdHVyZSA9IDEgPDwgNDsKK2NvbnN0
IENvZGVGZWF0dXJlcyBTdHJpY3RNb2RlRmVhdHVyZSA9IDEgPDwgNTsKK2NvbnN0IENvZGVGZWF0
dXJlcyBTaGFkb3dzQXJndW1lbnRzRmVhdHVyZSA9IDEgPDwgNjsKKworY29uc3QgQ29kZUZlYXR1
cmVzIEFsbEZlYXR1cmVzID0gRXZhbEZlYXR1cmUgfCBBcmd1bWVudHNGZWF0dXJlIHwgV2l0aEZl
YXR1cmUgfCBDYXRjaEZlYXR1cmUgfCBUaGlzRmVhdHVyZSB8IFN0cmljdE1vZGVGZWF0dXJlIHwg
U2hhZG93c0FyZ3VtZW50c0ZlYXR1cmU7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gUGFyc2VyTW9kZXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Tb3VyY2VQcm92aWRlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgorCisjaW5jbHVkZSAiU291
cmNlUHJvdmlkZXJDYWNoZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworU291cmNlUHJvdmlkZXI6
OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGNhY2hlKQorICAgIDogbV91cmwodXJs
KQorICAgICwgbV9zdGFydFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pCisgICAgLCBtX3ZhbGlkYXRl
ZChmYWxzZSkKKyAgICAsIG1fY2FjaGUoY2FjaGUgPyBjYWNoZSA6IG5ldyBTb3VyY2VQcm92aWRl
ckNhY2hlKQorICAgICwgbV9jYWNoZU93bmVkKCFjYWNoZSkKK3sKK30KKworU291cmNlUHJvdmlk
ZXI6On5Tb3VyY2VQcm92aWRlcigpCit7CisgICAgaWYgKG1fY2FjaGVPd25lZCkKKyAgICAgICAg
ZGVsZXRlIG1fY2FjaGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCShyZXZpc2lvbiAxNDMx
MzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDMyICsyOSwyMyBAQAogI2lm
bmRlZiBTb3VyY2VQcm92aWRlcl9oCiAjZGVmaW5lIFNvdXJjZVByb3ZpZGVyX2gKIAotI2luY2x1
ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCisgICAgY2xhc3MgU291cmNlUHJvdmlk
ZXJDYWNoZTsKKwogICAgIGNsYXNzIFNvdXJjZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8
U291cmNlUHJvdmlkZXI+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRw
dHJfdCBudWxsSUQgPSAxOwogICAgICAgICAKLSAgICAgICAgU291cmNlUHJvdmlkZXIoY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJv
dmlkZXJDYWNoZSogY2FjaGUgPSAwKQotICAgICAgICAgICAgOiBtX3VybCh1cmwpCi0gICAgICAg
ICAgICAsIG1fc3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKQotICAgICAgICAgICAgLCBtX3Zh
bGlkYXRlZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9jYWNoZShjYWNoZSA/IGNhY2hlIDogbmV3
IFNvdXJjZVByb3ZpZGVyQ2FjaGUpCi0gICAgICAgICAgICAsIG1fY2FjaGVPd25lZCghY2FjaGUp
Ci0gICAgICAgIHsKLSAgICAgICAgfQorICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VQ
cm92aWRlcihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0
aW9uLCBTb3VyY2VQcm92aWRlckNhY2hlKiBjYWNoZSA9IDApOwogCi0gICAgICAgIHZpcnR1YWwg
flNvdXJjZVByb3ZpZGVyKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2FjaGVPd25l
ZCkKLSAgICAgICAgICAgICAgICBkZWxldGUgbV9jYWNoZTsKLSAgICAgICAgfQorICAgICAgICBK
U19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigpOwogCiAgICAgICAgIHZp
cnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCA9IDA7CiAgICAgICAgIFN0cmluZyBn
ZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNDMxMzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDYWNoZWRDYWxsLmgiCiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCisj
aW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJ
VC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDE0MzEzNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJEYXRlQ29udmVyc2lvbi5o
IgogI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0RhdGVNYXRoLmgiCiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpT
U3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFBy
b3RvdHlwZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogI2lmICFQTEFURk9STShNQUMp
ICYmIEhBVkUoTEFOR0lORk9fSCkKICNpbmNsdWRlIDxsYW5naW5mby5oPgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkocmV2aXNpb24gMTQzMTM2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTEgQEAKICNpbmNsdWRlICJIYW5kbGVySW5mby5o
IgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2lu
Y2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUg
IkxMSW50Q0xvb3AuaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9v
bC5oIgorI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9j
ay5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE0MzEz
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgi
Ci0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrQ29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrRnVuY3Rpb24uaCIKICNpbmNsdWRlICJK
U0NhbGxiYWNrT2JqZWN0LmgiCkBAIC03MSw2ICs3MCw4IEBACiAjaW5jbHVkZSAiTnVtYmVyUHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUGFyc2Vy
RXJyb3IuaCIKICNpbmNsdWRlICJSZWdFeHBDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlJlZ0V4
cE1hdGNoZXNBcnJheS5oIgogI2luY2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAx
NDMxMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NTEsNTYgKzQ1MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICByZXR1cm4gIWVudHJ5LmlzTnVsbCgpOwogICAgIH0KIAotICAgIGlubGluZSBKU1ZhbHVl
IFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoaXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJl
dHVybiBtX3Byb3RvdHlwZS5nZXQoKTsKLQotICAgICAgICBBU1NFUlQodHlwZUluZm8oKS50eXBl
KCkgPT0gU3RyaW5nVHlwZSk7Ci0gICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPnN0cmluZ1By
b3RvdHlwZSgpOwotICAgIH0KLQotICAgIGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90
eXBlRm9yTG9va3VwKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAotICAgIHsKLSAgICAgICAgLy8gV2UgY2FjaGUgb3VyIHByb3RvdHlwZSBjaGFpbiBzbyBv
dXIgY2xpZW50cyBjYW4gc2hhcmUgaXQuCi0gICAgICAgIGlmICghaXNWYWxpZChnbG9iYWxPYmpl
Y3QsIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCkpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOwotICAgICAgICAg
ICAgbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgU3RydWN0dXJl
Q2hhaW46OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUuaXNOdWxsKCkgPyAwIDogYXNPYmpl
Y3QocHJvdG90eXBlKS0+c3RydWN0dXJlKCkpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
bV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgU3RydWN0
dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4oRXhlY1N0YXRlKiBleGVjKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3RvdHlwZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9v
bCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYg
KCFjYWNoZWRQcm90b3R5cGVDaGFpbikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3Qp
OwotICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogY2FjaGVkU3RydWN0dXJlID0gY2Fj
aGVkUHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsKLSAgICAgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVy
ZSAmJiAhcHJvdG90eXBlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBpZiAoYXNPYmplY3QocHJv
dG90eXBlKS0+c3RydWN0dXJlKCkgIT0gY2FjaGVkU3RydWN0dXJlLT5nZXQoKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICArK2NhY2hlZFN0cnVjdHVyZTsKLSAg
ICAgICAgICAgIHByb3RvdHlwZSA9IGFzT2JqZWN0KHByb3RvdHlwZSktPnByb3RvdHlwZSgpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGUuaXNOdWxsKCkgJiYgISpjYWNoZWRT
dHJ1Y3R1cmU7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzVmFsaWQoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBjYWNoZWRQcm90b3R5cGVDaGFpbik7Ci0gICAgfQotCiAgICAgaW5saW5lIEpTR2xvYmFs
T2JqZWN0KiBFeGVjU3RhdGU6OmR5bmFtaWNHbG9iYWxPYmplY3QoKQogICAgIHsKICAgICAgICAg
aWYgKHRoaXMgPT0gbGV4aWNhbEdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNDMx
MzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTUHJveHkuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUg
IlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTQzMTM2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0
cnVjdHVyZS5oIgogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTG9va3Vw
LmgiCkBAIC04NTksNiArODYwLDExIEBAIHZvaWQgU3RydWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVz
RnJvbVN0cnUKICAgICB9CiB9CiAKK0pTVmFsdWUgU3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29r
dXAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb3RvdHlwZUZv
ckxvb2t1cChjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKTsKK30KKwogdm9pZCBTdHJ1Y3R1cmU6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAg
ICBTdHJ1Y3R1cmUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8U3RydWN0dXJlKj4oY2VsbCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTQz
MTM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwNCwxMDUgKzUwNCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9z
dGF0aWNGdW5jdGlvblJlaWZpZWQ7CiB9OwogCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6
OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCB1bnNpZ25l
ZCBpbmxpbmVDYXBhY2l0eSkKLXsKLSAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1
Y3R1cmUpOwotICAgIEFTU0VSVChjbGFzc0luZm8pOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXAp
KSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIHR5cGVJbmZv
LCBjbGFzc0luZm8sIGluZGV4aW5nVHlwZSwgaW5saW5lQ2FwYWNpdHkpOwotICAgIHN0cnVjdHVy
ZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgcmV0dXJuIHN0cnVjdHVyZTsKLX0K
LSAgICAgICAgCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCi17Ci0gICAgQVNTRVJUKCFnbG9iYWxEYXRhLnN0cnVj
dHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9i
YWxEYXRhKTsKLSAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIENyZWF0
aW5nRWFybHlDZWxsKTsKLSAgICByZXR1cm4gc3RydWN0dXJlOwotfQotCi1pbmxpbmUgU3RydWN0
dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0
cnVjdHVyZSogc3RydWN0dXJlKQotewotICAgIEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0
cnVjdHVyZSk7Ci0gICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxE
YXRhLCBzdHJ1Y3R1cmUpOwotICAgIG5ld1N0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
RGF0YSk7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0
YSgpKQotICAgICAgICBuZXdTdHJ1Y3R1cmUtPmNsb25lUmFyZURhdGFGcm9tKGdsb2JhbERhdGEs
IHN0cnVjdHVyZSk7Ci0gICAgcmV0dXJuIG5ld1N0cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxp
bmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQotewotICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+
Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVj
ZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQotICAgICAgICBy
ZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9w
cm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51aWQoKSkuZmlyc3Q7Ci0gICAgcmV0dXJu
IGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Ci19Ci0KLWlubGluZSBQcm9w
ZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IFdURjo6U3RyaW5nJiBuYW1lKQotewotICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZv
KCkgPT0gJnNfaW5mbyk7Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGds
b2JhbERhdGEpOwotICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52
YWxpZE9mZnNldDsKLQotICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRh
YmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmltcGwoKSkuZmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5
ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Ci19Ci0gICAgCi1pbmxpbmUgYm9vbCBT
dHJ1Y3R1cmU6Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIHR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCgpICYmIGdsb2JhbE9iamVjdCgpID09IGxleGljYWxHbG9iYWxPYmplY3Q7Ci19Ci0KLUFM
V0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6aW50ZXJuYWxBcHBlbmQoSlNDZWxsKiBjZWxs
KQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRpb24pOwot
ICAgIGlmICghY2VsbCkKLSAgICAgICAgcmV0dXJuOwotI2lmIEVOQUJMRShHQ19WQUxJREFUSU9O
KQotICAgIHZhbGlkYXRlKGNlbGwpOwotI2VuZGlmCi0gICAgaWYgKEhlYXA6OnRlc3RBbmRTZXRN
YXJrZWQoY2VsbCkgfHwgIWNlbGwtPnN0cnVjdHVyZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX3Zpc2l0Q291bnQrKzsKLSAgICAgICAgCi0gICAgTUFSS19MT0dfQ0hJTEQoKnRoaXMsIGNl
bGwpOwotCi0gICAgLy8gU2hvdWxkIG5ldmVyIGF0dGVtcHQgdG8gbWFyayBzb21ldGhpbmcgdGhh
dCBpcyB6YXBwZWQuCi0gICAgQVNTRVJUKCFjZWxsLT5pc1phcHBlZCgpKTsKLSAgICAgICAgCi0g
ICAgbV9zdGFjay5hcHBlbmQoY2VsbCk7Ci19Ci0KLWlubGluZSBib29sIFN0cnVjdHVyZTo6dHJh
bnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShTdHJ1Y3R1cmUqIHN0cnVjdHVyZVRvRmluZCkKLXsK
LSAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRoaXM7IGN1cnJlbnQ7IGN1cnJlbnQgPSBj
dXJyZW50LT5wcmV2aW91c0lEKCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnQgPT0gc3RydWN0dXJl
VG9GaW5kKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotaW5saW5lIHZvaWQgU3RydWN0dXJlOjpzZXRFbnVtZXJhdGlvbkNhY2hlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25D
YWNoZSkKLXsKLSAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKLSAgICBpZiAoIXR5cGVJbmZv
KCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAgYWxsb2NhdGVSYXJlRGF0YShnbG9i
YWxEYXRhKTsKLSAgICByYXJlRGF0YSgpLT5zZXRFbnVtZXJhdGlvbkNhY2hlKGdsb2JhbERhdGEs
IHRoaXMsIGVudW1lcmF0aW9uQ2FjaGUpOwotfQotCi1pbmxpbmUgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvciogU3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hlKCkKLXsKLSAgICBpZiAoIXR5cGVJbmZv
KCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IHJhcmVEYXRhKCktPmVudW1lcmF0aW9uQ2FjaGUoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFN0cnVjdHVyZUlubGluZXNfaAorI2Rl
ZmluZSBTdHJ1Y3R1cmVJbmxpbmVzX2gKKworI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNs
YXNzSW5mbywgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNp
dHkpCit7CisgICAgQVNTRVJUKGdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBB
U1NFUlQoY2xhc3NJbmZvKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywgY2xhc3NJbmZvLCBp
bmRleGluZ1R5cGUsIGlubGluZUNhcGFjaXR5KTsKKyAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOworICAgIHJldHVybiBzdHJ1Y3R1cmU7Cit9CisgICAgICAgIAoraW5s
aW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhKQoreworICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUp
OworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8
U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSk7CisgICAg
c3RydWN0dXJlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBDcmVhdGluZ0Vhcmx5Q2VsbCk7
CisgICAgcmV0dXJuIHN0cnVjdHVyZTsKK30KKworaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJl
OjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKK3sKKyAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAg
IFN0cnVjdHVyZSogbmV3U3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U3Ry
dWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKKyAgICBuZXdTdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIGlm
IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAg
bmV3U3RydWN0dXJlLT5jbG9uZVJhcmVEYXRhRnJvbShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwor
ICAgIHJldHVybiBuZXdTdHJ1Y3R1cmU7Cit9CisgICAgICAgIAoraW5saW5lIFByb3BlcnR5T2Zm
c2V0IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKK3sKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09
ICZzX2luZm8pOworICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxE
YXRhKTsKKyAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRP
ZmZzZXQ7CisKKyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+
ZmluZChwcm9wZXJ0eU5hbWUudWlkKCkpLmZpcnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5
LT5vZmZzZXQgOiBpbnZhbGlkT2Zmc2V0OworfQorCitpbmxpbmUgUHJvcGVydHlPZmZzZXQgU3Ry
dWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBXVEY6OlN0cmluZyYg
bmFtZSkKK3sKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8p
OworICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKKyAg
ICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisK
KyAgICBQcm9wZXJ0eU1hcEVudHJ5KiBlbnRyeSA9IG1fcHJvcGVydHlUYWJsZS0+ZmluZFdpdGhT
dHJpbmcobmFtZS5pbXBsKCkpLmZpcnN0OworICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZz
ZXQgOiBpbnZhbGlkT2Zmc2V0OworfQorICAgIAoraW5saW5lIGJvb2wgU3RydWN0dXJlOjptYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0KQor
eworICAgIHJldHVybiB0eXBlSW5mbygpLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSAmJiBnbG9i
YWxPYmplY3QoKSA9PSBsZXhpY2FsR2xvYmFsT2JqZWN0OworfQorCitBTFdBWVNfSU5MSU5FIHZv
aWQgU2xvdFZpc2l0b3I6OmludGVybmFsQXBwZW5kKEpTQ2VsbCogY2VsbCkKK3sKKyAgICBBU1NF
UlQoIW1faXNDaGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKKyAgICBpZiAoIWNlbGwp
CisgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyAgICB2YWxpZGF0
ZShjZWxsKTsKKyNlbmRpZgorICAgIGlmIChIZWFwOjp0ZXN0QW5kU2V0TWFya2VkKGNlbGwpIHx8
ICFjZWxsLT5zdHJ1Y3R1cmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aXNpdENvdW50
Kys7CisgICAgICAgIAorICAgIE1BUktfTE9HX0NISUxEKCp0aGlzLCBjZWxsKTsKKworICAgIC8v
IFNob3VsZCBuZXZlciBhdHRlbXB0IHRvIG1hcmsgc29tZXRoaW5nIHRoYXQgaXMgemFwcGVkLgor
ICAgIEFTU0VSVCghY2VsbC0+aXNaYXBwZWQoKSk7CisgICAgICAgIAorICAgIG1fc3RhY2suYXBw
ZW5kKGNlbGwpOworfQorCitpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OnRyYW5zaXRpdmVseVRyYW5z
aXRpb25lZEZyb20oU3RydWN0dXJlKiBzdHJ1Y3R1cmVUb0ZpbmQpCit7CisgICAgZm9yIChTdHJ1
Y3R1cmUqIGN1cnJlbnQgPSB0aGlzOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cHJldmlv
dXNJRCgpKSB7CisgICAgICAgIGlmIChjdXJyZW50ID09IHN0cnVjdHVyZVRvRmluZCkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGlu
ZSB2b2lkIFN0cnVjdHVyZTo6c2V0RW51bWVyYXRpb25DYWNoZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUpCit7CisgICAg
QVNTRVJUKCFpc0RpY3Rpb25hcnkoKSk7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhh
c1JhcmVEYXRhKCkpCisgICAgICAgIGFsbG9jYXRlUmFyZURhdGEoZ2xvYmFsRGF0YSk7CisgICAg
cmFyZURhdGEoKS0+c2V0RW51bWVyYXRpb25DYWNoZShnbG9iYWxEYXRhLCB0aGlzLCBlbnVtZXJh
dGlvbkNhY2hlKTsKK30KKworaW5saW5lIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIFN0cnVjdHVy
ZTo6ZW51bWVyYXRpb25DYWNoZSgpCit7CisgICAgaWYgKCF0eXBlSW5mbygpLnN0cnVjdHVyZUhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiByYXJlRGF0YSgpLT5l
bnVtZXJhdGlvbkNhY2hlKCk7Cit9CisKK2lubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90
eXBlRm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAg
aWYgKGlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsKKworICAg
IEFTU0VSVCh0eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKTsKKyAgICByZXR1cm4gZ2xv
YmFsT2JqZWN0LT5zdHJpbmdQcm90b3R5cGUoKTsKK30KKworaW5saW5lIEpTVmFsdWUgU3RydWN0
dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJl
dHVybiBwcm90b3R5cGVGb3JMb29rdXAoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKK30K
KworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWluKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
K3sKKyAgICAvLyBXZSBjYWNoZSBvdXIgcHJvdG90eXBlIGNoYWluIHNvIG91ciBjbGllbnRzIGNh
biBzaGFyZSBpdC4KKyAgICBpZiAoIWlzVmFsaWQoZ2xvYmFsT2JqZWN0LCBtX2NhY2hlZFByb3Rv
dHlwZUNoYWluLmdldCgpKSkgeworICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3RvdHlw
ZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOworICAgICAgICBtX2NhY2hlZFByb3RvdHlwZUNoYWlu
LnNldChnbG9iYWxEYXRhLCB0aGlzLCBTdHJ1Y3R1cmVDaGFpbjo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZS5pc051bGwoKSA/IDAgOiBhc09iamVjdChwcm90b3R5cGUpLT5zdHJ1Y3R1cmUo
KSkpOworICAgIH0KKyAgICByZXR1cm4gbV9jYWNoZWRQcm90b3R5cGVDaGFpbi5nZXQoKTsKK30K
KworaW5saW5lIFN0cnVjdHVyZUNoYWluKiBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWluKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvdG90eXBlQ2hhaW4oZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworfQorCitpbmxpbmUgYm9v
bCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25zdAoreworICAgIGlmICghY2FjaGVk
UHJvdG90eXBlQ2hhaW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEpTVmFsdWUgcHJv
dG90eXBlID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9iamVjdCk7CisgICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4qIGNhY2hlZFN0cnVjdHVyZSA9IGNhY2hlZFByb3RvdHlwZUNoYWluLT5o
ZWFkKCk7CisgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAmJiAhcHJvdG90eXBlLmlzTnVsbCgp
KSB7CisgICAgICAgIGlmIChhc09iamVjdChwcm90b3R5cGUpLT5zdHJ1Y3R1cmUoKSAhPSBjYWNo
ZWRTdHJ1Y3R1cmUtPmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAr
K2NhY2hlZFN0cnVjdHVyZTsKKyAgICAgICAgcHJvdG90eXBlID0gYXNPYmplY3QocHJvdG90eXBl
KS0+cHJvdG90eXBlKCk7CisgICAgfQorICAgIHJldHVybiBwcm90b3R5cGUuaXNOdWxsKCkgJiYg
ISpjYWNoZWRTdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBib29sIFN0cnVjdHVyZTo6aXNWYWxpZChF
eGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNoZWRQcm90b3R5cGVDaGFpbikgY29u
c3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNh
Y2hlZFByb3RvdHlwZUNoYWluKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBTdHJ1Y3R1cmVJbmxpbmVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkocmV2aXNpb24gMTQzMTM2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAKLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5o
IgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgotI2lu
Y2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzEzNikKKysrIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTE3
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBhbGwgU3Ry
dWN0dXJlIG91dC1vZi1saW5lIGlubGluZSBtZXRob2RzIHRvIFN0cnVjdHVyZUlubGluZXMuaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIGJlY2F1c2Ugbm8gbmV3IGJlaGF2aW9yLiBKdXN0IHJld2lyaW5nIGluY2x1ZGVzLgorCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaDog
QWRkZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHA6CisKIDIwMTMt
MDItMTcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWJTcGVlY2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2gg
am9icyBmb3IgdGVzdGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyQ2FjaGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNv
cmVfRldEX1NvdXJjZVByb3ZpZGVyQ2FjaGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9Tb3VyY2VQ
cm92aWRlckNhY2hlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Tb3VyY2VQcm92aWRlckNh
Y2hlLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCShyZXZpc2lvbiAxNDMxMzYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAog
CiAjaWYgVVNFKEpTQykgIAogI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgorI2lu
Y2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewo=
</data>
<flag name="review"
          id="208990"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188795</attachid>
            <date>2013-02-17 21:53:45 -0800</date>
            <delta_ts>2013-02-17 21:53:45 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>79544</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBA
QAorMjAxMy0wMi0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgYWxsIFN0cnVjdHVyZSBvdXQtb2YtbGluZSBpbmxpbmUgbWV0aG9kcyB0byBTdHJ1Y3R1
cmVJbmxpbmVzLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDAyNAorCisgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IE1hcmsgSGFobmVuYmVyZyBh
bmQgU2FtIFdlaW5pZy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgd2FzIHN1cHBvc2VkIHRvIGJl
IGVhc3kuCisgICAgICAgIAorICAgICAgICBCdXQsIGluaXRpYWxseSwgdGhlcmUgd2FzIGEgU3Ry
dWN0dXJlIGlubGluZSBtZXRob2QgaW4gQ29kZUJsb2NrLmgsIGFuZCBtb3ZpbmcgdGhhdAorICAg
ICAgICBpbnRvIFN0cnVjdHVyZUlubGluZXMuaCBtZWFudCB0aGF0IE9wZXJhdGlvbnMuaCBpbmNs
dWRlZCBDb2RlQmxvY2suaC4gVGhpcyB3b3VsZAorICAgICAgICBjYXVzZSBXZWJDb3JlIGJ1aWxk
IGZhaWx1cmVzLCBiZWNhdXNlIENvZGVCbG9jay5oIHRyYW5zaXRpdmVseSBpbmNsdWRlZCB0aGUg
SlNDCisgICAgICAgIHBhcnNlciAodmlhIG1hbnksIG1hbnkgcGF0aHMpLCBhbmQgdGhlIEpTQyBw
YXJzZXIgZGVmaW5lcyB0b2tlbnMgdXNpbmcgZW51bWVyYXRpb24KKyAgICAgICAgZWxlbWVudHMg
dGhhdCBDU1NHcmFtbWFyLmNwcCAoZ2VuZXJhdGVkIGJ5IGJpc29uKSB3b3VsZCAjZGVmaW5lLiBG
b3IgZXhhbXBsZSwKKyAgICAgICAgYmlzb24gd291bGQgZ2l2ZSBDU1NHcmFtbWFyLmNwcCBhICNk
ZWZpbmUgRlVOQ1RJT04gMTIzLCBhbmQgd291bGQgZG8gc28gYmVmb3JlCisgICAgICAgIGluY2x1
ZGluZyBhbnl0aGluZyBpbnRlcmVzdGluZy4gVGhlIEpTQyBwYXJzZXIgd291bGQgaGF2ZSBhbiBl
bnVtIHRoYXQgaW5jbHVkZWQKKyAgICAgICAgRlVOQ1RJT04gYXMgYW4gZWxlbWVudC4gSGVuY2Ug
dGhlIEpTQyBwYXJzZXIgaW5jbHVkZWQgaW50byBDU1NHcmFtbWFyLmNwcCB3b3VsZCBoYXZlCisg
ICAgICAgIGEgdG9rZW4gZWxlbWVudCBjYWxsZWQgRlVOQ1RJT04gZGVjbGFyZWQgaW4gYW4gZW51
bWVyYXRpb24sIGJ1dCBGVU5DVElPTiB3YXMKKyAgICAgICAgI2RlZmluZSdkIHRvIDEyMywgbGVh
ZGluZyB0byBhIHBhcnNlciBlcnJvci4KKyAgICAgICAgCisgICAgICAgIFdvdy4KKyAgICAgICAg
CisgICAgICAgIFNvIEkgcmVtb3ZlZCBhbGwgdHJhbnNpdGl2ZSBpbmNsdWRlIHBhdGhzIGZyb20g
Q29kZUJsb2NrLmggdG8gdGhlIEpTQyBQYXJzZXIuIEkKKyAgICAgICAgYmVsaWV2ZSBJIHdhcyBh
YmxlIHRvIGRvIHNvIHdpdGhvdXQgb3V0LW9mLWxpbmluZyBhbnl0aGluZyBpbnRlcmVzdGluZyBv
ciBwZXJmb3JtYW5jZQorICAgICAgICBjcml0aWNhbC4gVGhpcyBpcyBwcm9iYWJseSBhIHB1cmVs
eSBnb29kIHRoaW5nIHRvIGhhdmUgZG9uZTogaXQgd2lsbCBiZSBuaWNlIHRvIGJlCisgICAgICAg
IGFibGUgdG8gbWFrZSBjaGFuZ2VzIHRvIHRoZSBwYXJzZXIgd2l0aG91dCBoYXZpbmcgdG8gY29t
cGlsZSB0aGUgdW5pdmVyc2UuCisgICAgICAgIAorICAgICAgICBPZiBjb3Vyc2UsIGRvaW5nIHRo
aXMgY2F1c2VkIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzIHRvIG5vdCBjb21waWxlLCBzaW5jZSBh
IGJ1bmNoIG9mCisgICAgICAgIGhlYWRlcnMgcmVsaWVkIG9uIHRoaW5ncyBiZWluZyBpbXBsaWNp
dGx5IGluY2x1ZGVkIGZvciB0aGVtIHdoZW4gdGhleSB0cmFuc2l0aXZlbHkKKyAgICAgICAgaW5j
bHVkZWQgdGhlIHBhcnNlci4gSSBmaXhlZCBhIGxvdCBvZiB0aGF0LgorICAgICAgICAKKyAgICAg
ICAgRmluYWxseSwgSSBlbmRlZCB1cCByZW1vdmluZyB0aGUgbWV0aG9kIHRoYXQgZGVwZW5kZWQg
b24gQ29kZUJsb2NrLmggZnJvbQorICAgICAgICBTdHJ1Y3R1cmVJbmxpbmVzLmgsIGFuZCBwdXR0
aW5nIGl0IGluIFN0cnVjdHVyZS5jcHAuIFRoYXQgbWlnaHQgc2VlbSBsaWtlIGFsbCBvZiB0aGlz
CisgICAgICAgIHdhcyBhIHdhc3RlIG9mIHRpbWUsIGV4Y2VwdCB0aGF0IEkgc3VzcGVjdCBpdCB3
YXMgYSB3b3J0aHdoaWxlIGZvcmNpbmcgZnVuY3Rpb24gZm9yCisgICAgICAgIGNsZWFuaW5nIHVw
IGEgYnVuY2ggb2YgY3J1ZnQuCisgICAgICAgIAorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
Ynl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGJ5dGVjb2Rl
L0V2YWxDb2RlQ2FjaGUuaDoKKyAgICAgICAgKiBieXRlY29kZS9TYW1wbGluZ1Rvb2wuaDoKKyAg
ICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OlVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpwYXJhbWV0ZXJDb3VudCk6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmg6CisgICAgICAgIChVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0xhYmVsLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgICogZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmg6CisgICAgICAgICogZGZnL0RGR0ZQUkluZm8uaDoKKyAgICAg
ICAgKiBkZmcvREZHUmVnaXN0ZXJCYW5rLmg6CisgICAgICAgICogaGVhcC9IYW5kbGVTdGFjay5j
cHA6CisgICAgICAgICogaml0L0pJVFdyaXRlQmFycmllci5oOgorICAgICAgICAqIHBhcnNlci9O
b2Rlcy5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAg
ICAgICogcGFyc2VyL1BhcnNlckVycm9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAg
ICAgKEpTQzo6UGFyc2VyRXJyb3I6OlBhcnNlckVycm9yKToKKyAgICAgICAgKFBhcnNlckVycm9y
KToKKyAgICAgICAgKEpTQzo6UGFyc2VyRXJyb3I6OnRvRXJyb3JPYmplY3QpOgorICAgICAgICAq
IHBhcnNlci9QYXJzZXJNb2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHA6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6
OlNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6On5Tb3VyY2VQ
cm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChK
U0MpOgorICAgICAgICAoU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAg
ICAgICogcnVudGltZS9FeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAo
SlNDKToKKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9v
a3VwKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAg
ICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg6IEFkZGVk
LgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjptYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OmludGVybmFsQXBwZW5kKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjp0cmFuc2l0aXZlbHlUcmFuc2l0aW9uZWRGcm9tKToKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpzZXRFbnVtZXJhdGlvbkNhY2hlKToKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojpwcm90b3R5cGVGb3JMb29rdXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnByb3RvdHlw
ZUNoYWluKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjppc1ZhbGlkKToKKyAgICAgICAgKiBy
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcDoKKwogMjAxMy0wMi0xNiAgR2VvZmZyZXkgR2Fy
ZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvZGUgY2FjaGUgc2hvdWxkIGJlIGV4
cGxpY2l0IGFib3V0IHdoYXQgaXQgY2FjaGVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIsNyBAQCBzZXQoSmF2YVNj
cmlwdENvcmVfU09VUkNFUwogICAgIHBhcnNlci9Ob2Rlcy5jcHAKICAgICBwYXJzZXIvUGFyc2Vy
LmNwcAogICAgIHBhcnNlci9QYXJzZXJBcmVuYS5jcHAKKyAgICBwYXJzZXIvU291cmNlUHJvdmlk
ZXIuY3BwCiAgICAgcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwCiAKICAgICBwcm9maWxl
ci9Qcm9maWxlckJ5dGVjb2RlLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00OTIsMTIgKzQ5MiwxNCBA
QCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyQXJlbmEu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckFyZW5hLmggXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0VHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlckNhY2hlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlckNhY2hlLmggXApAQCAtNzU5LDYgKzc2MSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmggXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL1Rh
cmdldC5wcmkJKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJn
ZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcGFyc2VyL05vZGVzLmNwcCBcCiAgICAgcGFyc2VyL1BhcnNlckFyZW5hLmNwcCBcCiAgICAg
cGFyc2VyL1BhcnNlci5jcHAgXAorICAgIHBhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAgXAogICAg
IHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcCBcCiAgICAgcHJvZmlsZXIvUHJvZmlsZXJC
eXRlY29kZS5jcHAgXAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuaCBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCShy
ZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tG
dW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJB
UElTaGltcy5oIgogI2luY2x1ZGUgIkFQSUNhc3QuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
KyNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNs
dWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTMzOCw2ICsxMzM4LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcU3RydWN0dXJlSW5saW5lcy5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxy
dW50aW1lXFN0cnVjdHVyZVJhcmVEYXRhLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNDY2
LDYgKzI0NzAsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5ccGFyc2VyXFBhcnNlckVycm9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBhcnNlclxQYXJzZXJNb2Rlcy5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KQEAgLTI0NzgsNiArMjQ4NiwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwYXJzZXJcU291cmNlUHJvdmlkZXIu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxwYXJzZXJcU291cmNlUHJvdmlkZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTEwNyw2ICsxMDcsOCBAQAogCQkwRjJCREM1MTE1MjI4RkZEMDBDRDg5MTAg
LyogREZHVmFyaWFibGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjJCREM1MDE1MjI4RkZBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVu
dC5jcHAgKi87IH07CiAJCTBGMkM1NTZGMTQ3MzhGMzEwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJDNTU2
RTE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkM1NTcwMTQ3MzhGMzUwMDEyMUU0RiAv
KiBERkdDb2RlQmxvY2tzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMkM1NTZEMTQ3MzhGMkUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmNwcCAq
LzsgfTsKKwkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1OTg3RjJGMTY4MjhB
N0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYyRTg5MkQxNkQwMkJBRjAwOUU0RkQyIC8qIERGR01p
bmlmaWVkSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQjRCNTEwMTZCM0E5NjQwMDNGNjk2QiAvKiBERkdNaW5pZmllZElELmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMUExNTNFNjhGMjAw
M0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE3MTUzRTY4RUYwMDNFRDBGRiAvKiBE
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgKi87IH07CiAJCTBGM0IzQTFCMTUzRTY4RjQwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTgxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYzQjNBMjcxNTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZp
Y2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwICovOyB9OwpAQCAtMTMxLDYgKzEzMyw3IEBACiAJCTBGNDY4MEQzMTRCQkQxNjcwMEJG
RTI3MiAvKiBMTEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjQ2ODBENDE0QkJE
MjQ5MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyog
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgKi87IH07CiAJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1
cm5WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ5M0FGODE2RDBDQUQx
MDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovOyB9OwogCQkwRjU1NDFCMTE2MTNDMUZC
MDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQ
b2ludGVyLmNwcCAqLzsgfTsKIAkJMEY1NTQxQjIxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQ
b2ludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjU1NDFCMDE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU1RjBGNDE0RDEwNjM5MDBB
Qzc2NDkgLyogQWJzdHJhY3RQQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjU1RjBGMTE0RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5jcHAg
Ki87IH07CkBAIC0yMDEsNyArMjA0LDcgQEAKIAkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8q
IENvZGVCbG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjk2RUJCMTE2Njc2RUY0MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJ
VFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjk3NDk3MTE2ODdBREU0MDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NzQ5NkYxNjg3QURFMjAwQTRG
RjZBIC8qIEpTQ2VsbElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjk4MjA2MDE2QkZFMzgxMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBU
YXJnZXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOTgyMDVEMTZCRkUzN0YwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwICovOyB9
OwotICAgICAgICAgICAgICAgIDBGOTgyMDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVt
cFRhcmdldHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOTgyMDVFMTZCRkUzN0YwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjk4MjA2MTE2QkZF
MzgzMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk4MjA1RTE2QkZFMzdGMDAyNDBEMDIgLyogUHJl
Y2lzZUp1bXBUYXJnZXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY5RDMzNzAxNjVEQkI5MDAwNUFEMzg3IC8qIERpc2Fzc2VtYmxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlEMzM2RTE2
NURCQjhEMDA1QUQzODcgLyogRGlzYXNzZW1ibGVyLmNwcCAqLzsgfTsKIAkJMEY5RkM4QzMxNEUx
QjVGRTAwRDUyQUUwIC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RkM4QkYxNEUxQjVGQjAwRDUyQUUw
IC8qIFBvbHltb3JwaGljUHV0QnlJZExpc3QuY3BwICovOyB9OwogCQkwRjlGQzhDNDE0RTFCNjAw
MDBENTJBRTAgLyogUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5RkM4QzAxNEUxQjVGQjAwRDUyQUUwIC8qIFBv
bHltb3JwaGljUHV0QnlJZExpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjU0LDYgKzI1Nyw4IEBACiAJCTBGQzgxNTBCMTQwNDNDMEUwMENG
QTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTA4MTQwNDNCQ0EwMENGQTYwMyAvKiBXcml0ZUJh
cnJpZXJTdXBwb3J0LmNwcCAqLzsgfTsKIAkJMEZDODE1MTUxNDA1MTE5QjAwQ0ZBNjAzIC8qIFZU
YWJsZVNwZWN0cnVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkM4MTUxNDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM4MTUxNjE0MDUx
MUI1MDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDODE1MTIxNDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJs
ZVNwZWN0cnVtLmNwcCAqLzsgfTsKKwkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNl
ckVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkNDQUU0MzE2RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgw
M0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZEMkM5MjMxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGlu
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
RkQzQzgyNjE0MTE1RDQwMDBGRDgxQ0IgLyogREZHRHJpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDNDODIwMTQxMTVDRjgwMEZEODFDQiAv
KiBERkdEcml2ZXIuY3BwICovOyB9OwogCQkwRkQzQzgyODE0MTE1RDRGMDBGRDgxQ0IgLyogREZH
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkQzQzgyMjE0MTE1RDBFMDBGRDgxQ0IgLyogREZHRHJpdmVyLmggKi87IH07CiAJCTBGRDgxQUQy
MTU0RkI0RUUwMDk4M0U3MiAvKiBERkdEb21pbmF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDgxQUNGMTU0RkI0RUIwMDk4M0U3MiAvKiBE
RkdEb21pbmF0b3JzLmNwcCAqLzsgfTsKQEAgLTMyMCw2ICszMjUsMTQgQEAKIAkJMEZGNzI5QkYx
NjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyT3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY3MjlBMDE2NkFEMzQ3MDAwRjVCQTMgLyogUHJv
ZmlsZXJPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkY3MjlDMDE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW5TdGFjay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNzI5QTIx
NjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVyT3JpZ2luU3RhY2suaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkY5MjJENDE0RjQ2QjQxMDA0MUEy
NEUgLyogTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEExMTRCQTdGODIwMEJGRTI3MiAvKiBMTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwICovOyB9OworCQkwRkZCOTIxODE2RDAyRUIyMDA1NUE1REIgLyog
REZHQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkI0QjUxOTE2QjYyNzcyMDAzRjY5NkIgLyogREZHQWxsb2NhdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMUExNkQwMkVD
NTAwNTVBNURCIC8qIERGR0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ1NjUyMjE2QUI3ODBBMDAxOTc2NTMgLyogREZH
QmFzaWNCbG9ja0lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRkZCOTIxQjE2RDAyRjAxMDA1NUE1REIgLyogREZHTm9kZUFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNEI1
MUYxNkI2Mjc3MjAwM0Y2OTZCIC8qIERGR05vZGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkZCOTIxQzE2RDAyRjExMDA1NUE1
REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5ODdGMkMxNjdGRTg0QjAwM0MyRjhEIC8qIERGR09T
UkV4aXRDb21waWxhdGlvbkluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRkZCOTIxRDE2RDAyRjMwMDA1NUE1REIgLyogREZHU2xvd1BhdGhH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMUUzQTUwMTUzN0MyQ0IwMDBGOTQ1NiAvKiBERkdTbG93UGF0aEdlbmVyYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRkI5MjFFMTZE
MDJGNDcwMDU1QTVEQiAvKiBERkdWYXJpYWRpY0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg1QTMxRTE2QUI3NkFFMDA3NzU3MUUgLyog
REZHVmFyaWFkaWNGdW5jdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGRkI5MjFGMTZEMDMzMDUwMDU1QTVEQiAvKiAobnVsbCkgaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZGQjkyMjAxNkQwMzNCNzAwNTVBNURCIC8qIE5vZGVDb25z
dHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMERBRDAzMEZCMUVCMUEwMDgyRDIwNSAvKiBOb2RlQ29uc3RydWN0b3JzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZGRkM5NTcxNEVGOTBB
MDAwQzcyNTMyIC8qIERGR0NGQVBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkZDOTRCMTRFRjkwOTUwMEM3MjUzMiAvKiBERkdDRkFQaGFz
ZS5jcHAgKi87IH07CiAJCTBGRkZDOTU4MTRFRjkwQTIwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRkM5NEMx
NEVGOTA5NTAwQzcyNTMyIC8qIERGR0NGQVBoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZGRkM5NTkxNEVGOTBBNjAwQzcyNTMyIC8qIERG
R0NTRVBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRkZDOTREMTRFRjkwOTUwMEM3MjUzMiAvKiBERkdDU0VQaGFzZS5jcHAgKi87IH07CkBA
IC01MDUsNyArNTE4LDcgQEAKIAkJNjU1RUIyOUIxMENFMjU4MTAwMUE5OTBFIC8qIE5vZGVzQ29k
ZWdlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTVFQjI5QTEwQ0UyNTgxMDAxQTk5MEUgLyogTm9kZXNDb2RlZ2VuLmNwcCAqLzsgfTsKIAkJN0U0
RUU3MDkwRUJCNzk2MzAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRFRTcwODBFQkI3OTYzMDA1OTM0QUEg
LyogU3RydWN0dXJlQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3RTRFRTcwRjBFQkI3QTVCMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0RUU3
MEUwRUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAqLzsgfTsKLQkJN0VGRjAw
NjQwRUMwNUE5QTAwQUE3QzkzIC8qIE5vZGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUZGMDA2MzBFQzA1QTlBMDBBQTdDOTMgLyogTm9kZUlu
Zm8uaCAqLzsgfTsKKwkJN0VGRjAwNjQwRUMwNUE5QTAwQUE3QzkzIC8qIE5vZGVJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUZGMDA2MzBFQzA1
QTlBMDBBQTdDOTMgLyogTm9kZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NDA0ODAxMzEwMjFBMUQ5MDA4RTdGMDEgLyogSlNBUElWYWx1
ZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDg5NEQ2MEZBRkJBMkQwMDAwMTg2NSAvKiBKU0FQSVZhbHVlV3JhcHBlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MDE2MUUzMEYzQTgz
QzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjAxNjFERjBGM0E4M0MxMDBGODQ3MTAgLyog
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTg2MDE2MUU0MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2Vt
Ymxlclg4Ni5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODYwMTYxRTAwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0NCwxMiArNTU3LDEy
IEBACiAJCTg2QUU2NEE4MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNjRBNTEz
NUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuY3BwICovOyB9OwogCQk4NkFFNjRB
OTEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2NEE2MTM1RTVFMUMwMDk2MzAxMiAv
KiBNYWNyb0Fzc2VtYmxlclNINC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2QUU2NEFBMTM1RTVFMUMwMDk2MzAxMiAvKiBTSDRBc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2NEE3
MTM1RTVFMUMwMDk2MzAxMiAvKiBTSDRBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NkFFNkM0RDEzNkExMUU0MDA5NjMwMTIgLyog
REZHRlBSSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODZBRTZDNEIxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0ZQUkluZm8uaCAqLzsgfTsKLQkJODZB
RTZDNEUxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2QzRDMTM2QTExRTQwMDk2MzAxMiAvKiBE
RkdHUFJJbmZvLmggKi87IH07CisJCTg2QUU2QzREMTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFF
NkM0QjEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBSSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2QUU2QzRFMTM2QTExRTQwMDk2MzAxMiAv
KiBERkdHUFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkFFNkM0QzEzNkExMUU0MDA5NjMwMTIgLyogREZHR1BSSW5mby5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2QjU4MjY3MTREMjc5NkMw
MEE5QzMwNiAvKiBDb2RlUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkI1ODIyRTE0RDIzNzNCMDBBOUMzMDYgLyogQ29kZVByb2ZpbGUu
Y3BwICovOyB9OwogCQk4NkI1ODI2OTE0RDI3OTcwMDBBOUMzMDYgLyogQ29kZVByb2ZpbGluZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjAzQ0VG
MjE0Qzc1NDY0MDBBRTU5RTMgLyogQ29kZVByb2ZpbGluZy5jcHAgKi87IH07CiAJCTg2QkIwOUMw
MTM4RTM4MUIwMDU2NzAyRiAvKiBERkdSZXBhdGNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkIwOUJFMTM4RTM4MUIwMDU2NzAyRiAvKiBERkdS
ZXBhdGNoLmNwcCAqLzsgfTsKLQkJODZCQjA5QzExMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0
Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkIw
OUJGMTM4RTM4MUIwMDU2NzAyRiAvKiBERkdSZXBhdGNoLmggKi87IH07CisJCTg2QkIwOUMxMTM4
RTM4MUIwMDU2NzAyRiAvKiBERkdSZXBhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkJCMDlCRjEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRj
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2
QzM2RUVBMEVFMTI4OUQwMEIzREY1OSAvKiBNYWNyb0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5
IC8qIE1hY3JvQXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVy
QVJNLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
QzU2OEREMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi87IH07CiAJ
CTg2QzU2OEUxMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2OERFMTFBMjEzRUUw
MDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTg5LDE5ICs2MDIsMTkgQEAKIAkJODZFQkYzMDMx
NTYwRjA2QTAwOEU5MjIyIC8qIE5hbWVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQkYyRkQxNTYwRjAzNjAwOEU5MjIyIC8qIE5h
bWVQcm90b3R5cGUuY3BwICovOyB9OwogCQk4NkVCRjMwNDE1NjBGMDZBMDA4RTkyMjIgLyogTmFt
ZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODZFQkYyRkUxNTYwRjAzNjAwOEU5MjIyIC8qIE5hbWVQcm90b3R5cGUuaCAqLzsgfTsKIAkJ
ODZFQzlEQzQxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REI0MTMyOERGODIw
MDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5jcHAgKi87IH07Ci0JCTg2RUM5REM1MTMyOERG
ODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQjUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5
dGVDb2RlUGFyc2VyLmggKi87IH07Ci0JCTg2RUM5REM2MTMyOERGODIwMDJCMkFENyAvKiBERkdH
ZW5lcmF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZFQzlEQjYxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggKi87
IH07CisJCTg2RUM5REM1MTMyOERGODIwMDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQjUxMzI4
REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZFQzlEQzYxMzI4REY4MjAwMkIyQUQ3IC8q
IERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NkVDOURCNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkVD
OURDNzEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQjcxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0dyYXBoLmNwcCAqLzsgfTsKLQkJODZFQzlEQzgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURC
ODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCAqLzsgfTsKKwkJODZFQzlEQzgxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NkVDOURCODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkVDOURDQjEz
MjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQkIxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0pJVENvbXBpbGVyLmNwcCAqLzsgfTsKLQkJODZFQzlEQ0MxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0pJVENvbXBpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDOURCQzEzMjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuaCAqLzsgfTsK
KwkJODZFQzlEQ0MxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCQzEzMjhERjgyMDAy
QjJBRDcgLyogREZHSklUQ29tcGlsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NkVDOURDRjEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0
aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkVDOURCRjEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5jcHAgKi87IH07Ci0JCTg2
RUM5REQwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcg
LyogREZHT3BlcmF0aW9ucy5oICovOyB9OwotCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyog
REZHUmVnaXN0ZXJCYW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NkVDOURDMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87
IH07CisJCTg2RUM5REQwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgy
MDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdp
c3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkVDOUREMjEzMjhERjgy
MDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzIxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1Nw
ZWN1bGF0aXZlSklULmNwcCAqLzsgfTsKLQkJODZFQzlERDMxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R1NwZWN1bGF0aXZlSklULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NkVDOURDMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCAq
LzsgfTsKLQkJODZFQ0EzRUExMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJC
MkFENyAvKiBERkdOb2RlLmggKi87IH07Ci0JCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBE
RkdTY29yZUJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovOyB9Owor
CQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIw
MDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2RUNBM0VBMTMyREVGMUMwMDJCMkFENyAvKiBERkdO
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVD
QTNFOTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBE
RkdTY29yZUJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RjNFRUJCMTY4Q0RF
OTMwMDc3QjkyQSAvKiBKU0Jsb2NrQWRhcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODZGM0VFQjcxNjhDQ0Y3NTAwNzdCOTJBIC8qIEpTQmxvY2tB
ZGFwdG9yLmggKi87IH07CiAJCTg2RjNFRUJDMTY4Q0RFOTMwMDc3QjkyQSAvKiBKU0Jsb2NrQWRh
cHRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RjNFRUI4MTY4Q0NGNzUwMDc3QjkyQSAvKiBKU0Jsb2NrQWRhcHRvci5tbSAqLzsgfTsKIAkJODZG
M0VFQkQxNjhDREU5MzAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3
N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCAqLzsgfTsKQEAgLTYzNyw5ICs2NTAsOSBA
QAogCQk5NjlBMDcyQTBFRDFDRTY5MDBGMUY2ODEgLyogTGFiZWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzI3MEVEMUNFNjkwMEYxRjY4MSAv
KiBMYWJlbC5oICovOyB9OwogCQk5NjlBMDcyQjBFRDFDRTY5MDBGMUY2ODEgLyogUmVnaXN0ZXJJ
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3
MjgwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCAqLzsgfTsKIAkJOTY5QTA3OTYwRUQx
RDNBRTAwRjFGNjgxIC8qIENvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MDBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2Nr
LmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1zdHJpY3QtYWxpYXNp
bmciOyB9OyB9OwotCQk5NjlBMDc5NzBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjlBMDc5MTBFRDFE
M0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
KTsgfTsgfTsKLQkJOTY5QTA3OTgwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzkyMEVE
MUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29kZUNhY2hlLmggKi87IH07Ci0JCTk2OUEwNzk5MEVEMUQz
QUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTMwRUQxRDNBRTAwRjFGNjgxIC8qIEluc3RydWN0aW9u
LmggKi87IH07CisJCTk2OUEwNzk3MEVEMUQzQUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzkxMEVEMUQz
QUUwMEYxRjY4MSAvKiBDb2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2ODEgLyogRXZhbENvZGVD
YWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY5
QTA3OTIwRUQxRDNBRTAwRjFGNjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NjlBMDc5OTBFRDFEM0FFMDBGMUY2
ODEgLyogSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk2OUEwNzkzMEVEMUQzQUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk2OUEwNzlBMEVE
MUQzQUUwMEYxRjY4MSAvKiBPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTY5QTA3OTQwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAg
Ki87IH07CiAJCTk2OUEwNzlCMEVEMUQzQUUwMEYxRjY4MSAvKiBPcGNvZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzk1MEVEMUQzQUUwMEYx
RjY4MSAvKiBPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5REY3
RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNjY4LDEyICs2ODEsMTIgQEAKIAkJQTc2NkI0NEYwRUU4RENE
MTAwOTUxOENBIC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI1MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVj
dXRhYmxlQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTc2QzUxNzYxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZDNTE3NDEx
ODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzZGMjc5NDE1RjEzQzk2MDA1MTdENjcgLyog
VW5saW5rZWRDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc5RTc4MUUxNUVFQ0JBODAwNDdDODU1IC8qIFVubGlua2VkQ29kZUJsb2Nr
LmNwcCAqLzsgfTsKLQkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RjU0
QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovOyB9OworCQlBNzZGNTRB
MzEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyog
SklUV3JpdGVCYXJyaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTc3RjE4MjExNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdGMTgxRjE2NDA4
OEIyMDA2NDBBNDcgLyogQ29kZUNhY2hlLmNwcCAqLzsgfTsKIAkJQTc3RjE4MjIxNjQwODhCMjAw
NjQwQTQ3IC8qIENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3RjE4MjAxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3N0YxODI1MTY0
MTkyQzcwMDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RjE4MjQxNjQxOTI1NDAwNjQwQTQ3IC8qIFBhcnNlck1v
ZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
QTc4NEEyNjExMUQxNjYyMjAwNTc3NkFDIC8qIEFTVEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc0MTFCOThCOEQwMDY1QTE0RiAv
KiBBU1RCdWlsZGVyLmggKi87IH07Ci0JCUE3ODRBMjY0MTFEMTY2MjIwMDU3NzZBQyAvKiBTeW50
YXhDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0E3RUU3NzExQjk4QjhEMDA2NUExNEYgLyogU3ludGF4Q2hlY2tlci5oICovOyB9OworCQlB
Nzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzQxMUI5OEI4RDAwNjVBMTRGIC8q
IEFTVEJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlBNzg0QTI2NDExRDE2NjIyMDA1Nzc2QUMgLyogU3ludGF4Q2hlY2tlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzcxMUI5OEI4
RDAwNjVBMTRGIC8qIFN5bnRheENoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0FGQzE3OTE1RjdFRkUzMDA0OEY1N0IgLyogUmVzb2x2
ZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTdBRkMxNzcxNUY3RUZFMzAwNDhGNTdCIC8qIFJlc29sdmVPcGVyYXRpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0I0OEY0OTBFRTg5
MzZGMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0OERCNjBFRTc0Q0ZDMDBEQ0JEQjYgLyog
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi87IH07CiAJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEz
NiAvKiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdCNEFDQUUxNDg0QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc0MCw3
ICs3NTMsNyBAQAogCQlCQzE4QzQyQzBFMTZGNUNEMDBCMzQ0NjAgLyogSlNWYWx1ZVJlZi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4MkI2RUEwQTQz
MDBCMzAwNTE3Q0ZDIC8qIEpTVmFsdWVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CiAJCUJDMThDNDJEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1Zhcmlh
YmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEYyNTI1NjBEMDhERDhEMDA0RUNGRkYgLyogSlNWYXJpYWJsZU9iamVjdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDJFMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU1dyYXBwZXJPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QzdBMTcyMEE4RUFBQ0IwMEZBMzdFQSAvKiBKU1dyYXBw
ZXJPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCQzE4QzQzMTBFMTZGNUNEMDBCMzQ0NjAgLyogTGV4ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODY2MDI1NTU5N0QwMUZGNjBGNyAv
KiBMZXhlci5oICovOyB9OworCQlCQzE4QzQzMTBFMTZGNUNEMDBCMzQ0NjAgLyogTGV4ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODY2MDI1
NTU5N0QwMUZGNjBGNyAvKiBMZXhlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDMThDNDM3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBMb29rdXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODY5MDI1
NTU5N0QwMUZGNjBGNyAvKiBMb29rdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQzQzBFMTZGNUNEMDBCMzQ0NjAgLyogTWF0aE9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4
NkIwMjU1NTk3RDAxRkY2MEY3IC8qIE1hdGhPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQzRjBFMTZGNUNEMDBCMzQ0NjAgLyog
Tm9kZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2
OTJBODZFMDI1NTU5N0QwMUZGNjBGNyAvKiBOb2Rlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03NTEsNyArNzY0LDcgQEAKIAkJQkMxOEM0NDUw
RTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI2ODBDNzBFMTZENEU5MDBBMDZFOTIgLyog
T2JqZWN0Q29uc3RydWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzE4QzQ0NjBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0UHJvdG90eXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI2ODBD
OTBFMTZENEU5MDBBMDZFOTIgLyogT2JqZWN0UHJvdG90eXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NDgwRTE2RjVDRDAwQjM0NDYw
IC8qIE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY2OTJBODc4MDI1NTU5N0QwMUZGNjBGNyAvKiBPcGVyYXRpb25zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxOEM0NEIwRTE2RjVD
RDAwQjM0NDYwIC8qIFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCUJDMThDNDRCMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0
NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1MTBFMTZGNUNEMDBC
MzQ0NjAgLyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDUy
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8qIExl
Z2FjeVByb2ZpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTc4NCw3ICs3OTcsNyBAQAogCQlCQzkwNDE0ODBFQjkyNTA5MDBGRTI2RkEgLyog
U3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzkwNDE0NzBFQjkyNTA5MDBGRTI2RkEgLyogU3RydWN0dXJlVHJh
bnNpdGlvblRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkM5NTQzN0QwRUJBNzBGRDAwNzJCNkQzIC8qIFByb3BlcnR5TWFwSGFzaFRhYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk1NDM3
QzBFQkE3MEZEMDA3MkI2RDMgLyogUHJvcGVydHlNYXBIYXNoVGFibGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JFMkNBRTE0RTk4NUFBMDAw
NTkzQUQgLyogR0NBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0JFMkNBRDE0RTk4NUFBMDAwNTkzQUQgLyogR0NBc3NlcnRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNDRjBE
MDgwRUYwQUFCOTAwNDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0NGMEQwNzBFRjBBQUI5MDA0MTNDOEYg
LyogU3RydWN0dXJlU3R1YkluZm8uaCAqLzsgfTsKKwkJQkNDRjBEMDgwRUYwQUFCOTAwNDEzQzhG
IC8qIFN0cnVjdHVyZVN0dWJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0NGMEQwNzBFRjBBQUI5MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1Yklu
Zm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
Q0NGMEQwQzBFRjBCOEE1MDA0MTNDOEYgLyogU3RydWN0dXJlU3R1YkluZm8uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDRjBEMEIwRUYwQjhBNTAw
NDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJbmZvLmNwcCAqLzsgfTsKIAkJQkNEMjAyQzIwRTE3MDZB
NzAwMkM3RTgyIC8qIFJlZ0V4cENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QyMDJCRTBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhw
Q29uc3RydWN0b3IuaCAqLzsgfTsKIAkJQkNEMjAyQzQwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4
cFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNEMjAyQzAwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oICovOyB9OwpA
QCAtNzk3LDcgKzgxMCw3IEBACiAJCUJDREUzQjQzMEU2QzgzMkQwMDE0NTNBNyAvKiBTdHJ1Y3R1
cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNE
RTNBQjAwRTZDODJDRjAwMTQ1M0E3IC8qIFN0cnVjdHVyZS5jcHAgKi87IH07CiAJCUJDRjYwNTE0
MEUyMDNFRjgwMEI5QTY0RCAvKiBBcmdMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkQ4
QzkyMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRDhDOTAwRUVCMkVFNzAwMjgzODQ4IC8qIEp1
bXBUYWJsZS5jcHAgKi87IH07Ci0JCUJDRkQ4QzkzMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFi
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkQ4
QzkxMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuaCAqLzsgfTsKKwkJQkNGRDhDOTMwRUVC
MkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGRDhDOTEwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyMEJB
OTJEMTZCQjFDMTUwMEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMEJBOTJDMTZCQjFDMTUw
MEIzQUVBMiAvKiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjExMjJFMTE1REQ5QUIzMDA3OTBFM0Eg
LyogR0NUaHJlYWRTaGFyZWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyMTEyMkRFMTVERDlBQjMwMDc5MEUzQSAvKiBHQ1RocmVhZFNoYXJl
ZERhdGEuY3BwICovOyB9OwogCQlDMjExMjJFMjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRT
aGFyZWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMjExMjJERjE1REQ5QUIzMDA3OTBFM0EgLyogR0NUaHJlYWRTaGFyZWREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMTIsNiArMTAy
NSw3IEBACiAJCTBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJbnREYXRhLmg7IHBhdGggPSBsbGludC9MTElu
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwRDAxNEJCQzVGODAw
QkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhvc3RDYWxsUmV0dXJuVmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1
MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNvdXJjZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWNpYWxQb2ludGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NTQxQjAxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQ
b2ludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWNpYWxQb2ludGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTVGMEYxMTREMTA2MzYwMEFDNzY0
OSAvKiBBYnN0cmFjdFBDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFic3RyYWN0UEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0Nyw2ICsx
MTYxLDggQEAKIAkJMEZDODE1MTIxNDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAz
IC8qIFZUYWJsZVNwZWN0cnVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZU
YWJsZVNwZWN0cnVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0I0MDg1MTVD
MEEzQzMwMDQ4OTMyQiAvKiBTbG90VmlzaXRvcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2xvdFZpc2l0b3JJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGQ0NBRTQzMTZEMENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzZXJFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNDODIwMTQxMTVDRjgwMEZEODFD
QiAvKiBERkdEcml2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHRHJpdmVyLmNwcDsgcGF0aCA9IGRmZy9ERkdEcml2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRkQzQzgyMjE0MTE1RDBFMDBGRDgxQ0IgLyogREZHRHJpdmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0RyaXZlci5oOyBwYXRoID0gZGZnL0RG
R0RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQ1NjUyMjE2QUI3ODBB
MDAxOTc2NTMgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHQmFzaWNCbG9ja0lubGluZXMuaDsgcGF0aCA9IGRmZy9ERkdCYXNpY0Js
b2NrSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MiwxMCArMjMw
OCwxMiBAQAogCQkJCTkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLywKIAkJ
CQk5MzA1MkMzMjBGQjc5MjE5MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuY3BwICovLAogCQkJCTkz
MDUyQzMzMEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5oICovLAorCQkJCTBGQ0NBRTQz
MTZEMENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICovLAogCQkJCUE3N0YxODI0MTY0MTky
NTQwMDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oICovLAogCQkJCTY1MzAzRDYzMTQ0N0I5RTEwMEQz
RjkwNCAvKiBQYXJzZXJUb2tlbnMuaCAqLywKIAkJCQk4NjlFQkNCNjBFOEM2RDRBMDA4NzIyQ0Mg
LyogUmVzdWx0VHlwZS5oICovLAogCQkJCTY1RTg2NkVFMERENTlBRkEwMEEyQjJBMSAvKiBTb3Vy
Y2VDb2RlLmggKi8sCisJCQkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3Zp
ZGVyLmNwcCAqLywKIAkJCQk2NUU4NjZFRDBERDU5QUZBMDBBMkIyQTEgLyogU291cmNlUHJvdmlk
ZXIuaCAqLywKIAkJCQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJD
YWNoZS5jcHAgKi8sCiAJCQkJRTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3Zp
ZGVyQ2FjaGUuaCAqLywKQEAgLTI1MjksNiArMjU0Nyw3IEBACiAJCQkJQkNERTNBQjEwRTZDODJD
RjAwMTQ1M0E3IC8qIFN0cnVjdHVyZS5oICovLAogCQkJCTdFNEVFNzBFMEVCQjdBNUIwMDU5MzRB
QSAvKiBTdHJ1Y3R1cmVDaGFpbi5jcHAgKi8sCiAJCQkJN0U0RUU3MDgwRUJCNzk2MzAwNTkzNEFB
IC8qIFN0cnVjdHVyZUNoYWluLmggKi8sCisJCQkJMEZEMkM5MjMxNkQwMUVFOTAwQzc4MDNGIC8q
IFN0cnVjdHVyZUlubGluZXMuaCAqLywKIAkJCQlDMkYwRjJEMDE2QkFFRUU5MDAxODdDMTkgLyog
U3RydWN0dXJlUmFyZURhdGEuY3BwICovLAogCQkJCUMyRkUxOEEzMTZCQUVDNDAwMEFGMzA2MSAv
KiBTdHJ1Y3R1cmVSYXJlRGF0YS5oICovLAogCQkJCUMyMEJBOTJDMTZCQjFDMTUwMEIzQUVBMiAv
KiBTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCAqLywKQEAgLTMzNDksNiArMzM2OCwxOCBAQAog
CQkJCTBGQkUwRjczMTZDMURCMDUwMDgyQzVFOCAvKiBERkdDUFNSZXRocmVhZGluZ1BoYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkJFMEY3NTE2QzFEQjBCMDA4MkM1RTggLyogREZHUHJlZGlj
dGlvbkluamVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJFMEY3NzE2QzFEQjEy
MDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZE
MkM5MjQxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjJFODkyRDE2RDAyQkFGMDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMTgxNkQwMkVCMjAwNTVBNURCIC8qIERGR0FsbG9j
YXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMUExNkQwMkVDNTAwNTVBNURCIC8qIERG
R0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIxQjE2RDAyRjAx
MDA1NUE1REIgLyogREZHTm9kZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjky
MUMxNkQwMkYxMTAwNTVBNURCIC8qIERGR09TUkV4aXRDb21waWxhdGlvbkluZm8uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRkI5MjFEMTZEMDJGMzAwMDU1QTVEQiAvKiBERkdTbG93UGF0aEdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGQjkyMUUxNkQwMkY0NzAwNTVBNURCIC8qIERG
R1ZhcmlhZGljRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkI5MjFGMTZEMDMzMDUw
MDU1QTVEQiAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKKwkJCQkwRkZCOTIyMDE2RDAzM0I3MDA1
NUE1REIgLyogTm9kZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDQ0FFNDUx
NkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM5ODcs
NiArNDAxOCw3IEBACiAJCQkJMEZCRTBGNzIxNkMxREIwMzAwODJDNUU4IC8qIERGR0NQU1JldGhy
ZWFkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzQxNkMxREIwOTAwODJD
NUU4IC8qIERGR1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkJFMEY3NjE2QzFEQjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNlUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDYgQEAK
ICNpbmNsdWRlICJMTEludENhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIkxhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmgiCiAjaW5jbHVkZSAiTGluZUluZm8uaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKICNpbmNsdWRlICJSZXNvbHZlT3BlcmF0aW9uLmgiCkBAIC0xNDYxLDExICsxNDYwLDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgfQogI2VuZGlmCiAgICAgCi0gICAgaW5saW5lIEpTVmFsdWUg
U3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gcHJvdG90eXBlRm9yTG9va3VwKGNvZGVCbG9jay0+Z2xv
YmFsT2JqZWN0KCkpOwotICAgIH0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBD
b2RlQmxvY2tfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V2YWxDb2Rl
Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXZh
bENvZGVDYWNoZS5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXZhbENvZGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw2IEBA
CiAKICNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
LSNpbmNsdWRlICJOb2Rlcy5oIgotI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlNvdXJj
ZUNvZGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TYW1wbGluZ1Rvb2wuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29s
LmgJKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
YW1wbGluZ1Rvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNyArMzAsNiBAQAogI2RlZmluZSBTYW1w
bGluZ1Rvb2xfaAogCiAjaW5jbHVkZSAiU3Ryb25nLmgiCi0jaW5jbHVkZSAiTm9kZXMuaCIKICNp
bmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ0NvdW50ZXIuaCIKICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCShyZXZpc2lvbiAxNDMxMzkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgogI2lu
Y2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIlBh
cnNlci5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
LmgiCiAjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKQEAgLTk4LDYgKzk5LDExIEBAIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmMKIHsKIH0KIAorc2l6ZV90IFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlOjpwYXJhbWV0ZXJDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcGFyYW1ldGVycy0+c2l6ZSgpOworfQorCiB2b2lkIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8VW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqPihjZWxsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCShyZXZpc2lvbiAxNDMx
MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzIsMTAgKzMyLDEyIEBACiAjaW5jbHVkZSAiRXhwcmVzc2lvblJh
bmdlSW5mby5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIK
KyNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkxpbmVJbmZvLmgiCi0jaW5jbHVkZSAi
Tm9kZXMuaCIKKyNpbmNsdWRlICJQYXJzZXJNb2Rlcy5oIgogI2luY2x1ZGUgIlJlZ0V4cC5oIgog
I2luY2x1ZGUgIlNwZWNpYWxQb2ludGVyLmgiCisjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKICNp
bmNsdWRlICJXZWFrLmgiCiAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZEFycmF5Lmg+CkBAIC05
Myw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiAoa2luZCA9PSBDb2Rl
Rm9yQ2FsbCkgPyBtX3N5bWJvbFRhYmxlRm9yQ2FsbC5nZXQoKSA6IG1fc3ltYm9sVGFibGVGb3JD
b25zdHJ1Y3QuZ2V0KCk7CiAgICAgfQotICAgIHNpemVfdCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFyYW1ldGVycy0+c2l6ZSgpOyB9CisgICAgc2l6ZV90IHBhcmFtZXRlckNv
dW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc0luU3RyaWN0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNJblN0cmljdENvbnRleHQ7IH0KICAgICBGdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUg
ZnVuY3Rpb25OYW1lSXNJblNjb3BlVG9nZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9mdW5jdGlvbk5h
bWVJc0luU2NvcGVUb2dnbGU7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMTQzMTM5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTGFiZWwuaCIK
ICNpbmNsdWRlICJMYWJlbFNjb3BlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVySUQuaCIKICNpbmNsdWRlICJT
eW1ib2xUYWJsZS5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9MYWJlbC5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDYgKzM3LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBCeXRlY29kZUdl
bmVyYXRvcjsKKwogICAgIGNsYXNzIExhYmVsIHsKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxp
Y2l0IExhYmVsKEJ5dGVjb2RlR2VuZXJhdG9yKiBnZW5lcmF0b3IpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTQz
MTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJERkdBcnJheU1vZGUu
aCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVz
LmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUHJlY2lzZUp1bXBUYXJnZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0
YXR1cy5oIgogI2luY2x1ZGUgIlJlc29sdmVHbG9iYWxTdGF0dXMuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmgJKHJldmlzaW9uIDE0MzEz
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNp
bmNsdWRlIDxkZmcvREZHR3JhcGguaD4KKyNpbmNsdWRlICJERkdHcmFwaC5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGUFJJbmZvLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGUFJJbmZvLmgJKHJl
dmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRlBSSW5mby5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkK
IAotI2luY2x1ZGUgPGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oPgotI2luY2x1ZGUgPGRmZy9E
RkdSZWdpc3RlckJhbmsuaD4KKyNpbmNsdWRlICJERkdSZWdpc3RlckJhbmsuaCIKKyNpbmNsdWRl
ICJNYWNyb0Fzc2VtYmxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVnaXN0ZXJCYW5rLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJhbmsuaAkocmV2
aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJh
bmsuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19K
SVQpCiAKLSNpbmNsdWRlIDxkZmcvREZHQ29tbW9uLmg+CisjaW5jbHVkZSAiREZHQ29tbW9uLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hhbmRsZVN0YWNrLmNwcAkocmV2aXNpb24gMTQzMTM5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiSGFuZGxlU3RhY2suaCIKIAogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVyLmgJ
KHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVC
YXJyaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAKIAogI2luY2x1ZGUgIk1h
Y3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKKyNpbmNsdWRlICJVbnVz
ZWRQb2ludGVyLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCi0jaW5jbHVkZSAiaml0L1Vu
dXNlZFBvaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmgJKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQYXJzZXJB
cmVuYS5oIgorI2luY2x1ZGUgIlBhcnNlclRva2Vucy5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUu
aCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKQEAg
LTQ3LDE5ICs0OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTU2NvcGU7CiAgICAg
Y2xhc3MgU2NvcGVOb2RlOwogCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBDb2RlRmVhdHVyZXM7Ci0K
LSAgICBjb25zdCBDb2RlRmVhdHVyZXMgTm9GZWF0dXJlcyA9IDA7Ci0gICAgY29uc3QgQ29kZUZl
YXR1cmVzIEV2YWxGZWF0dXJlID0gMSA8PCAwOwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBBcmd1
bWVudHNGZWF0dXJlID0gMSA8PCAxOwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBXaXRoRmVhdHVy
ZSA9IDEgPDwgMjsKLSAgICBjb25zdCBDb2RlRmVhdHVyZXMgQ2F0Y2hGZWF0dXJlID0gMSA8PCAz
OwotICAgIGNvbnN0IENvZGVGZWF0dXJlcyBUaGlzRmVhdHVyZSA9IDEgPDwgNDsKLSAgICBjb25z
dCBDb2RlRmVhdHVyZXMgU3RyaWN0TW9kZUZlYXR1cmUgPSAxIDw8IDU7Ci0gICAgY29uc3QgQ29k
ZUZlYXR1cmVzIFNoYWRvd3NBcmd1bWVudHNGZWF0dXJlID0gMSA8PCA2OwotICAgIAotICAgIGNv
bnN0IENvZGVGZWF0dXJlcyBBbGxGZWF0dXJlcyA9IEV2YWxGZWF0dXJlIHwgQXJndW1lbnRzRmVh
dHVyZSB8IFdpdGhGZWF0dXJlIHwgQ2F0Y2hGZWF0dXJlIHwgVGhpc0ZlYXR1cmUgfCBTdHJpY3RN
b2RlRmVhdHVyZSB8IFNoYWRvd3NBcmd1bWVudHNGZWF0dXJlOwotCiAgICAgZW51bSBPcGVyYXRv
ciB7CiAgICAgICAgIE9wRXF1YWwsCiAgICAgICAgIE9wUGx1c0VxLApAQCAtMTQxMiw3ICsxNDAw
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQqIG1fc3RvcmFnZTsKICAgICB9Owog
Ci0gICAgZW51bSBGdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUgeyBGdW5jdGlvbk5hbWVJc05v
dEluU2NvcGUsIEZ1bmN0aW9uTmFtZUlzSW5TY29wZSB9OwogICAgIGNsYXNzIEZ1bmN0aW9uQm9k
eU5vZGUgOiBwdWJsaWMgU2NvcGVOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBj
b25zdCBib29sIGlzRnVuY3Rpb25Ob2RlID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsMTAgQEAKICNp
bmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCiAjaW5jbHVkZSAiUGFyc2VyQXJl
bmEuaCIKKyNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1ZGUgIlBhcnNlclRva2Vucy5o
IgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXJD
YWNoZS5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTc2LDQ5ICs3
OCw2IEBAIENPTVBJTEVfQVNTRVJUKExhc3RVbnRhZ2dlZFRva2VuIDwgNjQsIEwKIGVudW0gU291
cmNlRWxlbWVudHNNb2RlIHsgQ2hlY2tGb3JTdHJpY3RNb2RlLCBEb250Q2hlY2tGb3JTdHJpY3RN
b2RlIH07CiBlbnVtIEZ1bmN0aW9uUmVxdWlyZW1lbnRzIHsgRnVuY3Rpb25Ob1JlcXVpcmVtZW50
cywgRnVuY3Rpb25OZWVkc05hbWUgfTsKIAotc3RydWN0IFBhcnNlckVycm9yIHsKLSAgICBlbnVt
IEVycm9yVHlwZSB7IEVycm9yTm9uZSwgU3RhY2tPdmVyZmxvdywgU3ludGF4RXJyb3IsIEV2YWxF
cnJvciwgT3V0T2ZNZW1vcnkgfSBtX3R5cGU7Ci0gICAgU3RyaW5nIG1fbWVzc2FnZTsKLSAgICBp
bnQgbV9saW5lOwotICAgIFBhcnNlckVycm9yKCkKLSAgICAgICAgOiBtX3R5cGUoRXJyb3JOb25l
KQotICAgICAgICAsIG1fbGluZSgtMSkKLSAgICB7Ci0gICAgfQotCi0gICAgUGFyc2VyRXJyb3Io
RXJyb3JUeXBlIHR5cGUpCi0gICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9saW5l
KC0xKQotICAgIHsKLSAgICB9Ci0KLSAgICBQYXJzZXJFcnJvcihFcnJvclR5cGUgdHlwZSwgU3Ry
aW5nIG1zZywgaW50IGxpbmUpCi0gICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9t
ZXNzYWdlKG1zZykKLSAgICAgICAgLCBtX2xpbmUobGluZSkKLSAgICB7Ci0gICAgfQotCi0gICAg
SlNPYmplY3QqIHRvRXJyb3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsK
LSAgICAgICAgY2FzZSBFcnJvck5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
Y2FzZSBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9t
ZXNzYWdlKSwgbV9saW5lLCBzb3VyY2UpOwotICAgICAgICBjYXNlIEV2YWxFcnJvcjoKLSAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7
Ci0gICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgY2FzZSBPdXRPZk1lbW9y
eToKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgIH0KLSAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZU91
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KTsgLy8gQXBwZWFzZSBRdCBib3QKLSAgICB9Ci0K
LX07Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgYm9vbCBpc0V2YWxOb2RlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KIHRlbXBsYXRlIDw+IGlubGluZSBib29sIGlzRXZhbE5vZGU8RXZhbE5v
ZGU+KCkgeyByZXR1cm4gdHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlckVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYXJzZXJF
cnJvcl9oCisjZGVmaW5lIFBhcnNlckVycm9yX2gKKworI2luY2x1ZGUgIkVycm9yLmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgSlNDIHsKKworc3RydWN0IFBhcnNlckVycm9yIHsKKyAgICBlbnVtIEVy
cm9yVHlwZSB7IEVycm9yTm9uZSwgU3RhY2tPdmVyZmxvdywgU3ludGF4RXJyb3IsIEV2YWxFcnJv
ciwgT3V0T2ZNZW1vcnkgfSBtX3R5cGU7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKyAgICBpbnQg
bV9saW5lOworICAgIFBhcnNlckVycm9yKCkKKyAgICAgICAgOiBtX3R5cGUoRXJyb3JOb25lKQor
ICAgICAgICAsIG1fbGluZSgtMSkKKyAgICB7CisgICAgfQorCisgICAgUGFyc2VyRXJyb3IoRXJy
b3JUeXBlIHR5cGUpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9saW5lKC0x
KQorICAgIHsKKyAgICB9CisKKyAgICBQYXJzZXJFcnJvcihFcnJvclR5cGUgdHlwZSwgU3RyaW5n
IG1zZywgaW50IGxpbmUpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1zZykKKyAgICAgICAgLCBtX2xpbmUobGluZSkKKyAgICB7CisgICAgfQorCisgICAgSlNP
YmplY3QqIHRvRXJyb3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAg
ICAgICAgY2FzZSBFcnJvck5vbmU6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2Fz
ZSBTeW50YXhFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBhZGRFcnJvckluZm8oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCksIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbV9tZXNz
YWdlKSwgbV9saW5lLCBzb3VyY2UpOworICAgICAgICBjYXNlIEV2YWxFcnJvcjoKKyAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1fbWVzc2FnZSk7Cisg
ICAgICAgIGNhc2UgU3RhY2tPdmVyZmxvdzoKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdGFj
a092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgY2FzZSBPdXRPZk1lbW9yeToK
KyAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCk7
CisgICAgICAgIH0KKyAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9m
TWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KTsgLy8gQXBwZWFzZSBRdCBib3QKKyAgICB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFBhcnNlckVycm9yX2gKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgJKHJldmlzaW9uIDE0MzEz
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzUsNiArMzUsMjEgQEAgZW51bSBKU1BhcnNlck1vZGUgeyBKU1BhcnNlUHJvZ3Jh
bUNvZGUsIAogZW51bSBQcm9maWxlck1vZGUgeyBQcm9maWxlck9mZiwgUHJvZmlsZXJPbiB9Owog
ZW51bSBEZWJ1Z2dlck1vZGUgeyBEZWJ1Z2dlck9mZiwgRGVidWdnZXJPbiB9OwogCi19CitlbnVt
IEZ1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZSB7IEZ1bmN0aW9uTmFtZUlzTm90SW5TY29wZSwg
RnVuY3Rpb25OYW1lSXNJblNjb3BlIH07CiAKLSNlbmRpZgordHlwZWRlZiB1bnNpZ25lZCBDb2Rl
RmVhdHVyZXM7CisKK2NvbnN0IENvZGVGZWF0dXJlcyBOb0ZlYXR1cmVzID0gMDsKK2NvbnN0IENv
ZGVGZWF0dXJlcyBFdmFsRmVhdHVyZSA9IDEgPDwgMDsKK2NvbnN0IENvZGVGZWF0dXJlcyBBcmd1
bWVudHNGZWF0dXJlID0gMSA8PCAxOworY29uc3QgQ29kZUZlYXR1cmVzIFdpdGhGZWF0dXJlID0g
MSA8PCAyOworY29uc3QgQ29kZUZlYXR1cmVzIENhdGNoRmVhdHVyZSA9IDEgPDwgMzsKK2NvbnN0
IENvZGVGZWF0dXJlcyBUaGlzRmVhdHVyZSA9IDEgPDwgNDsKK2NvbnN0IENvZGVGZWF0dXJlcyBT
dHJpY3RNb2RlRmVhdHVyZSA9IDEgPDwgNTsKK2NvbnN0IENvZGVGZWF0dXJlcyBTaGFkb3dzQXJn
dW1lbnRzRmVhdHVyZSA9IDEgPDwgNjsKKworY29uc3QgQ29kZUZlYXR1cmVzIEFsbEZlYXR1cmVz
ID0gRXZhbEZlYXR1cmUgfCBBcmd1bWVudHNGZWF0dXJlIHwgV2l0aEZlYXR1cmUgfCBDYXRjaEZl
YXR1cmUgfCBUaGlzRmVhdHVyZSB8IFN0cmljdE1vZGVGZWF0dXJlIHwgU2hhZG93c0FyZ3VtZW50
c0ZlYXR1cmU7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gUGFyc2VyTW9kZXNf
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRl
ci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZVByb3ZpZGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgorCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXJDYWNo
ZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworU291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVy
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNv
dXJjZVByb3ZpZGVyQ2FjaGUqIGNhY2hlKQorICAgIDogbV91cmwodXJsKQorICAgICwgbV9zdGFy
dFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pCisgICAgLCBtX3ZhbGlkYXRlZChmYWxzZSkKKyAgICAs
IG1fY2FjaGUoY2FjaGUgPyBjYWNoZSA6IG5ldyBTb3VyY2VQcm92aWRlckNhY2hlKQorICAgICwg
bV9jYWNoZU93bmVkKCFjYWNoZSkKK3sKK30KKworU291cmNlUHJvdmlkZXI6On5Tb3VyY2VQcm92
aWRlcigpCit7CisgICAgaWYgKG1fY2FjaGVPd25lZCkKKyAgICAgICAgZGVsZXRlIG1fY2FjaGU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDMyICsyOSwyMyBAQAogI2lmbmRlZiBTb3VyY2VQcm92
aWRlcl9oCiAjZGVmaW5lIFNvdXJjZVByb3ZpZGVyX2gKIAotI2luY2x1ZGUgIlNvdXJjZVByb3Zp
ZGVyQ2FjaGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFBvc2l0aW9uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewogCisgICAgY2xhc3MgU291cmNlUHJvdmlkZXJDYWNoZTsKKwogICAg
IGNsYXNzIFNvdXJjZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlUHJvdmlkZXI+
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBudWxsSUQgPSAx
OwogICAgICAgICAKLSAgICAgICAgU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJDYWNoZSogY2Fj
aGUgPSAwKQotICAgICAgICAgICAgOiBtX3VybCh1cmwpCi0gICAgICAgICAgICAsIG1fc3RhcnRQ
b3NpdGlvbihzdGFydFBvc2l0aW9uKQotICAgICAgICAgICAgLCBtX3ZhbGlkYXRlZChmYWxzZSkK
LSAgICAgICAgICAgICwgbV9jYWNoZShjYWNoZSA/IGNhY2hlIDogbmV3IFNvdXJjZVByb3ZpZGVy
Q2FjaGUpCi0gICAgICAgICAgICAsIG1fY2FjaGVPd25lZCghY2FjaGUpCi0gICAgICAgIHsKLSAg
ICAgICAgfQorICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92
aWRlckNhY2hlKiA9IDApOwogCi0gICAgICAgIHZpcnR1YWwgflNvdXJjZVByb3ZpZGVyKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKG1fY2FjaGVPd25lZCkKLSAgICAgICAgICAgICAgICBk
ZWxldGUgbV9jYWNoZTsKLSAgICAgICAgfQorICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0
dWFsIH5Tb3VyY2VQcm92aWRlcigpOwogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBz
b3VyY2UoKSBjb25zdCA9IDA7CiAgICAgICAgIFN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGlu
dCBlbmQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJDYWNoZWRDYWxsLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgi
CiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCisjaW5jbHVkZSAiRXJyb3IuaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTU3Ry
aW5nQnVpbGRlci5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyAr
MjcsMTMgQEAKICNpbmNsdWRlICJEYXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkRhdGVJbnN0
YW5jZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJKU0RhdGVNYXRoLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
ICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKIAogI2lmICFQTEFURk9STShNQUMpICYmIEhBVkUoTEFOR0lORk9fSCkK
ICNpbmNsdWRlIDxsYW5naW5mby5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuaAkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwx
MCArMzIsMTEgQEAKICNpbmNsdWRlICJIYW5kbGVySW5mby5oIgogI2luY2x1ZGUgIkpTRnVuY3Rp
b24uaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVENvZGUuaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkxMSW50Q0xvb3AuaCIKLSNpbmNs
dWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlNvdXJj
ZUNvZGUuaCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDE0MzEzOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNiBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKICNpbmNsdWRl
ICJKU0NhbGxiYWNrRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCkBA
IC03MSw2ICs3MCw4IEBACiAjaW5jbHVkZSAiTnVtYmVyUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiUGFyc2VyRXJyb3IuaCIKICNpbmNsdWRlICJS
ZWdFeHBDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlJlZ0V4cE1hdGNoZXNBcnJheS5oIgogI2lu
Y2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NTEsNTYgKzQ1MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gIWVudHJ5Lmlz
TnVsbCgpOwogICAgIH0KIAotICAgIGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90eXBl
Rm9yTG9va3VwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Ci0gICAgewotICAg
ICAgICBpZiAoaXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiBtX3Byb3RvdHlwZS5nZXQo
KTsKLQotICAgICAgICBBU1NFUlQodHlwZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSk7Ci0g
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPnN0cmluZ1Byb3RvdHlwZSgpOwotICAgIH0KLQot
ICAgIGlubGluZSBKU1ZhbHVlIFN0cnVjdHVyZTo6cHJvdG90eXBlRm9yTG9va3VwKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm90b3R5cGVGb3JMb29rdXAo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgU3RydWN0
dXJlQ2hhaW4qIFN0cnVjdHVyZTo6cHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotICAgIHsKLSAgICAgICAg
Ly8gV2UgY2FjaGUgb3VyIHByb3RvdHlwZSBjaGFpbiBzbyBvdXIgY2xpZW50cyBjYW4gc2hhcmUg
aXQuCi0gICAgICAgIGlmICghaXNWYWxpZChnbG9iYWxPYmplY3QsIG1fY2FjaGVkUHJvdG90eXBl
Q2hhaW4uZ2V0KCkpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3RvdHlw
ZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOwotICAgICAgICAgICAgbV9jYWNoZWRQcm90b3R5cGVD
aGFpbi5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgU3RydWN0dXJlQ2hhaW46OmNyZWF0ZShnbG9iYWxE
YXRhLCBwcm90b3R5cGUuaXNOdWxsKCkgPyAwIDogYXNPYmplY3QocHJvdG90eXBlKS0+c3RydWN0
dXJlKCkpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5nZXQoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6
cHJvdG90eXBlQ2hhaW4oRXhlY1N0YXRlKiBleGVjKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIHByb3RvdHlwZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3Rv
dHlwZUNoYWluKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFp
bikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBKU1ZhbHVlIHByb3RvdHlw
ZSA9IHByb3RvdHlwZUZvckxvb2t1cChnbG9iYWxPYmplY3QpOwotICAgICAgICBXcml0ZUJhcnJp
ZXI8U3RydWN0dXJlPiogY2FjaGVkU3RydWN0dXJlID0gY2FjaGVkUHJvdG90eXBlQ2hhaW4tPmhl
YWQoKTsKLSAgICAgICAgd2hpbGUoKmNhY2hlZFN0cnVjdHVyZSAmJiAhcHJvdG90eXBlLmlzTnVs
bCgpKSB7Ci0gICAgICAgICAgICBpZiAoYXNPYmplY3QocHJvdG90eXBlKS0+c3RydWN0dXJlKCkg
IT0gY2FjaGVkU3RydWN0dXJlLT5nZXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICArK2NhY2hlZFN0cnVjdHVyZTsKLSAgICAgICAgICAgIHByb3RvdHlwZSA9
IGFzT2JqZWN0KHByb3RvdHlwZSktPnByb3RvdHlwZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBwcm90b3R5cGUuaXNOdWxsKCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNoYWluKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGlzVmFsaWQoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjYWNoZWRQcm90b3R5cGVD
aGFpbik7Ci0gICAgfQotCiAgICAgaW5saW5lIEpTR2xvYmFsT2JqZWN0KiBFeGVjU3RhdGU6OmR5
bmFtaWNHbG9iYWxPYmplY3QoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMgPT0gbGV4aWNhbEds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTUHJveHku
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIK
IAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCisjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkBAIC04NTksNiArODYwLDEx
IEBAIHZvaWQgU3RydWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzRnJvbVN0cnUKICAgICB9CiB9CiAK
K0pTVmFsdWUgU3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb3RvdHlwZUZvckxvb2t1cChjb2RlQmxvY2stPmds
b2JhbE9iamVjdCgpKTsKK30KKwogdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBTdHJ1Y3R1cmUqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8U3RydWN0dXJlKj4oY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwNCwxMDUg
KzUwNCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9zdGF0aWNGdW5jdGlvblJlaWZpZWQ7
CiB9OwogCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
LCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKLXsK
LSAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwotICAgIEFTU0VSVChj
bGFzc0luZm8pOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIHR5cGVJbmZvLCBjbGFzc0luZm8sIGluZGV4aW5n
VHlwZSwgaW5saW5lQ2FwYWNpdHkpOwotICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSk7Ci0gICAgcmV0dXJuIHN0cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgU3Ry
dWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCi17Ci0gICAgQVNTRVJUKCFnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1
cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKLSAgICBzdHJ1Y3R1
cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIENyZWF0aW5nRWFybHlDZWxsKTsKLSAgICBy
ZXR1cm4gc3RydWN0dXJlOwotfQotCi1pbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ewotICAgIEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgU3RydWN0
dXJlKiBuZXdTdHJ1Y3R1cmUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+
KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwotICAg
IG5ld1N0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgaWYgKHN0cnVj
dHVyZS0+dHlwZUluZm8oKS5zdHJ1Y3R1cmVIYXNSYXJlRGF0YSgpKQotICAgICAgICBuZXdTdHJ1
Y3R1cmUtPmNsb25lUmFyZURhdGFGcm9tKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Ci0gICAgcmV0
dXJuIG5ld1N0cnVjdHVyZTsKLX0KLSAgICAgICAgCi1pbmxpbmUgUHJvcGVydHlPZmZzZXQgU3Ry
dWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQotewotICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5m
byk7Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwot
ICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsK
LQotICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHBy
b3BlcnR5TmFtZS51aWQoKSkuZmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNl
dCA6IGludmFsaWRPZmZzZXQ7Ci19Ci0KLWlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6
OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQot
ewotICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7Ci0gICAg
bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwotICAgIGlmICgh
bV9wcm9wZXJ0eVRhYmxlKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKLQotICAgIFBy
b3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhu
YW1lLmltcGwoKSkuZmlyc3Q7Ci0gICAgcmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGlu
dmFsaWRPZmZzZXQ7Ci19Ci0gICAgCi1pbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6Om1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QpCi17Ci0gICAg
cmV0dXJuIHR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVj
dCgpID09IGxleGljYWxHbG9iYWxPYmplY3Q7Ci19Ci0KLUFMV0FZU19JTkxJTkUgdm9pZCBTbG90
VmlzaXRvcjo6aW50ZXJuYWxBcHBlbmQoSlNDZWxsKiBjZWxsKQotewotICAgIEFTU0VSVCghbV9p
c0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRpb24pOwotICAgIGlmICghY2VsbCkKLSAgICAg
ICAgcmV0dXJuOwotI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQotICAgIHZhbGlkYXRlKGNlbGwp
OwotI2VuZGlmCi0gICAgaWYgKEhlYXA6OnRlc3RBbmRTZXRNYXJrZWQoY2VsbCkgfHwgIWNlbGwt
PnN0cnVjdHVyZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Zpc2l0Q291bnQrKzsKLSAg
ICAgICAgCi0gICAgTUFSS19MT0dfQ0hJTEQoKnRoaXMsIGNlbGwpOwotCi0gICAgLy8gU2hvdWxk
IG5ldmVyIGF0dGVtcHQgdG8gbWFyayBzb21ldGhpbmcgdGhhdCBpcyB6YXBwZWQuCi0gICAgQVNT
RVJUKCFjZWxsLT5pc1phcHBlZCgpKTsKLSAgICAgICAgCi0gICAgbV9zdGFjay5hcHBlbmQoY2Vs
bCk7Ci19Ci0KLWlubGluZSBib29sIFN0cnVjdHVyZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVk
RnJvbShTdHJ1Y3R1cmUqIHN0cnVjdHVyZVRvRmluZCkKLXsKLSAgICBmb3IgKFN0cnVjdHVyZSog
Y3VycmVudCA9IHRoaXM7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wcmV2aW91c0lEKCkp
IHsKLSAgICAgICAgaWYgKGN1cnJlbnQgPT0gc3RydWN0dXJlVG9GaW5kKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotaW5saW5lIHZvaWQg
U3RydWN0dXJlOjpzZXRFbnVtZXJhdGlvbkNhY2hlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSkKLXsKLSAgICBBU1NFUlQo
IWlzRGljdGlvbmFyeSgpKTsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURh
dGEoKSkKLSAgICAgICAgYWxsb2NhdGVSYXJlRGF0YShnbG9iYWxEYXRhKTsKLSAgICByYXJlRGF0
YSgpLT5zZXRFbnVtZXJhdGlvbkNhY2hlKGdsb2JhbERhdGEsIHRoaXMsIGVudW1lcmF0aW9uQ2Fj
aGUpOwotfQotCi1pbmxpbmUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogU3RydWN0dXJlOjplbnVt
ZXJhdGlvbkNhY2hlKCkKLXsKLSAgICBpZiAoIXR5cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURh
dGEoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPmVudW1lcmF0
aW9uQ2FjaGUoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdHJ1Y3R1
cmVfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZUlubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxODUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFN0cnVjdHVyZUlubGluZXNfaAorI2RlZmluZSBTdHJ1Y3R1cmVJbmxpbmVz
X2gKKworI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworaW5saW5l
IFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlw
ZUluZm8mIHR5cGVJbmZvLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNpdHkpCit7CisgICAgQVNTRVJUKGds
b2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBBU1NFUlQoY2xhc3NJbmZvKTsKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVj
dHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCB0eXBlSW5mbywgY2xhc3NJbmZvLCBpbmRleGluZ1R5cGUsIGlubGluZUNh
cGFjaXR5KTsKKyAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAg
IHJldHVybiBzdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y3Jl
YXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBBU1NFUlQoIWds
b2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
U3RydWN0dXJlKGdsb2JhbERhdGEpOworICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSwgQ3JlYXRpbmdFYXJseUNlbGwpOworICAgIHJldHVybiBzdHJ1Y3R1cmU7Cit9CisK
K2lubGluZSBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCit7CisgICAgQVNTRVJUKGdsb2JhbERh
dGEuc3RydWN0dXJlU3RydWN0dXJlKTsKKyAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3Ry
dWN0dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgbmV3U3RydWN0dXJlLT5maW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnN0cnVj
dHVyZUhhc1JhcmVEYXRhKCkpCisgICAgICAgIG5ld1N0cnVjdHVyZS0+Y2xvbmVSYXJlRGF0YUZy
b20oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICByZXR1cm4gbmV3U3RydWN0dXJlOworfQor
CitpbmxpbmUgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAgIEFTU0VSVChzdHJ1Y3R1
cmUoKS0+Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1h
cElmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOworICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQorICAg
ICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKworICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5
ID0gbV9wcm9wZXJ0eVRhYmxlLT5maW5kKHByb3BlcnR5TmFtZS51aWQoKSkuZmlyc3Q7CisgICAg
cmV0dXJuIGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Cit9CisKK2lubGlu
ZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQoreworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xh
c3NJbmZvKCkgPT0gJnNfaW5mbyk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNz
YXJ5KGdsb2JhbERhdGEpOworICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQorICAgICAgICByZXR1
cm4gaW52YWxpZE9mZnNldDsKKworICAgIFByb3BlcnR5TWFwRW50cnkqIGVudHJ5ID0gbV9wcm9w
ZXJ0eVRhYmxlLT5maW5kV2l0aFN0cmluZyhuYW1lLmltcGwoKSkuZmlyc3Q7CisgICAgcmV0dXJu
IGVudHJ5ID8gZW50cnktPm9mZnNldCA6IGludmFsaWRPZmZzZXQ7Cit9CisgICAgCitpbmxpbmUg
Ym9vbCBTdHJ1Y3R1cmU6Om1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIHR5cGVJbmZvKCkubWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCgpICYmIGdsb2JhbE9iamVjdCgpID09IGxleGljYWxHbG9iYWxPYmplY3Q7Cit9
CisKK0FMV0FZU19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6aW50ZXJuYWxBcHBlbmQoSlNDZWxs
KiBjZWxsKQoreworICAgIEFTU0VSVCghbV9pc0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRp
b24pOworICAgIGlmICghY2VsbCkKKyAgICAgICAgcmV0dXJuOworI2lmIEVOQUJMRShHQ19WQUxJ
REFUSU9OKQorICAgIHZhbGlkYXRlKGNlbGwpOworI2VuZGlmCisgICAgaWYgKEhlYXA6OnRlc3RB
bmRTZXRNYXJrZWQoY2VsbCkgfHwgIWNlbGwtPnN0cnVjdHVyZSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Zpc2l0Q291bnQrKzsKKyAgICAgICAgCisgICAgTUFSS19MT0dfQ0hJTEQoKnRo
aXMsIGNlbGwpOworCisgICAgLy8gU2hvdWxkIG5ldmVyIGF0dGVtcHQgdG8gbWFyayBzb21ldGhp
bmcgdGhhdCBpcyB6YXBwZWQuCisgICAgQVNTRVJUKCFjZWxsLT5pc1phcHBlZCgpKTsKKyAgICAg
ICAgCisgICAgbV9zdGFjay5hcHBlbmQoY2VsbCk7Cit9CisKK2lubGluZSBib29sIFN0cnVjdHVy
ZTo6dHJhbnNpdGl2ZWx5VHJhbnNpdGlvbmVkRnJvbShTdHJ1Y3R1cmUqIHN0cnVjdHVyZVRvRmlu
ZCkKK3sKKyAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRoaXM7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBjdXJyZW50LT5wcmV2aW91c0lEKCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQgPT0gc3Ry
dWN0dXJlVG9GaW5kKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK30KKworaW5saW5lIHZvaWQgU3RydWN0dXJlOjpzZXRFbnVtZXJhdGlvbkNhY2hl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogZW51bWVy
YXRpb25DYWNoZSkKK3sKKyAgICBBU1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKKyAgICBpZiAoIXR5
cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgYWxsb2NhdGVSYXJlRGF0
YShnbG9iYWxEYXRhKTsKKyAgICByYXJlRGF0YSgpLT5zZXRFbnVtZXJhdGlvbkNhY2hlKGdsb2Jh
bERhdGEsIHRoaXMsIGVudW1lcmF0aW9uQ2FjaGUpOworfQorCitpbmxpbmUgSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvciogU3RydWN0dXJlOjplbnVtZXJhdGlvbkNhY2hlKCkKK3sKKyAgICBpZiAoIXR5
cGVJbmZvKCkuc3RydWN0dXJlSGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIHJhcmVEYXRhKCktPmVudW1lcmF0aW9uQ2FjaGUoKTsKK30KKworaW5saW5lIEpTVmFs
dWUgU3RydWN0dXJlOjpwcm90b3R5cGVGb3JMb29rdXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkgY29uc3QKK3sKKyAgICBpZiAoaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIG1fcHJv
dG90eXBlLmdldCgpOworCisgICAgQVNTRVJUKHR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ1R5
cGUpOworICAgIHJldHVybiBnbG9iYWxPYmplY3QtPnN0cmluZ1Byb3RvdHlwZSgpOworfQorCitp
bmxpbmUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnByb3RvdHlwZUZvckxvb2t1cChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb3RvdHlwZUZvckxvb2t1cChleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpOworfQorCitpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6
cHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIC8vIFdlIGNhY2hlIG91ciBwcm90b3R5cGUgY2hh
aW4gc28gb3VyIGNsaWVudHMgY2FuIHNoYXJlIGl0LgorICAgIGlmICghaXNWYWxpZChnbG9iYWxP
YmplY3QsIG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uZ2V0KCkpKSB7CisgICAgICAgIEpTVmFsdWUg
cHJvdG90eXBlID0gcHJvdG90eXBlRm9yTG9va3VwKGdsb2JhbE9iamVjdCk7CisgICAgICAgIG1f
Y2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0KGdsb2JhbERhdGEsIHRoaXMsIFN0cnVjdHVyZUNoYWlu
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLmlzTnVsbCgpID8gMCA6IGFzT2JqZWN0KHBy
b3RvdHlwZSktPnN0cnVjdHVyZSgpKSk7CisgICAgfQorICAgIHJldHVybiBtX2NhY2hlZFByb3Rv
dHlwZUNoYWluLmdldCgpOworfQorCitpbmxpbmUgU3RydWN0dXJlQ2hhaW4qIFN0cnVjdHVyZTo6
cHJvdG90eXBlQ2hhaW4oRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBwcm90
b3R5cGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSk7Cit9CisKK2lubGluZSBib29sIFN0cnVjdHVyZTo6aXNWYWxpZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90eXBlQ2hhaW4pIGNvbnN0
Cit7CisgICAgaWYgKCFjYWNoZWRQcm90b3R5cGVDaGFpbikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBwcm90b3R5cGVGb3JMb29rdXAoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogY2FjaGVkU3RydWN0dXJlID0gY2Fj
aGVkUHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsKKyAgICB3aGlsZSAoKmNhY2hlZFN0cnVjdHVyZSAm
JiAhcHJvdG90eXBlLmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChhc09iamVjdChwcm90b3R5cGUp
LT5zdHJ1Y3R1cmUoKSAhPSBjYWNoZWRTdHJ1Y3R1cmUtPmdldCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICArK2NhY2hlZFN0cnVjdHVyZTsKKyAgICAgICAgcHJvdG90eXBl
ID0gYXNPYmplY3QocHJvdG90eXBlKS0+cHJvdG90eXBlKCk7CisgICAgfQorICAgIHJldHVybiBw
cm90b3R5cGUuaXNOdWxsKCkgJiYgISpjYWNoZWRTdHJ1Y3R1cmU7Cit9CisKK2lubGluZSBib29s
IFN0cnVjdHVyZTo6aXNWYWxpZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjYWNo
ZWRQcm90b3R5cGVDaGFpbikgY29uc3QKK3sKKyAgICByZXR1cm4gaXNWYWxpZChleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGNhY2hlZFByb3RvdHlwZUNoYWluKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBTdHJ1Y3R1cmVJbmxpbmVzX2gKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAko
cmV2aXNpb24gMTQzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhLmgiCiAKLSNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIk9wZXJh
dGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
MzEzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEzLTAyLTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgTW92ZSBhbGwgU3RydWN0dXJlIG91dC1vZi1saW5lIGlubGluZSBtZXRob2RzIHRv
IFN0cnVjdHVyZUlubGluZXMuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTEwMDI0CisKKyAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5p
Zy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBubyBuZXcgYmVoYXZpb3IuIEp1c3Qg
cmV3aXJpbmcgaW5jbHVkZXMuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wYXJzZXIv
U291cmNlUHJvdmlkZXJDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcDoKKwogMjAxMy0wMi0xNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTQzMTI1KTogfjUlIHBlcmZvcm1hbmNlIGhp
dCBvbiBDaHJvbWl1bSdzIGludGwyIHBhZ2UgY3ljbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wYXJzZXIvU291cmNlUHJvdmlk
ZXJDYWNoZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1NvdXJjZVByb3ZpZGVyQ2FjaGVfaAorI2RlZmluZSBX
ZWJDb3JlX0ZXRF9Tb3VyY2VQcm92aWRlckNhY2hlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VQcm92aWRlckNhY2hlLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCShyZXZpc2lvbiAxNDMxMzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksNiArMzksNyBAQAogCiAjaWYgVVNFKEpTQykgIAogI2luY2x1ZGUgPHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oPgorI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmg+CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>