<?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>43134</bug_id>
          
          <creation_ts>2010-07-28 12:06:12 -0700</creation_ts>
          <short_desc>Add idl and mock implementation for HTML5 FileSystem API</short_desc>
          <delta_ts>2010-07-31 02:21:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>43130</dependson>
          <blocked>42903</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dumi</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257280</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-28 12:06:12 -0700</bug_when>
    <thetext>Add idl and mock classes for basic FileSystem API interfaces
As defined in: http://dev.w3.org/2009/dap/file-system/file-dir-sys.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257303</commentid>
    <comment_count>1</comment_count>
      <attachid>62864</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-28 12:49:50 -0700</bug_when>
    <thetext>Created attachment 62864
Patch (depends on 43130)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257377</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-28 15:00:02 -0700</bug_when>
    <thetext>Attachment 62864 did not build on chromium:
Build output: http://queues.webkit.org/results/3559627</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257487</commentid>
    <comment_count>3</comment_count>
      <attachid>62864</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-07-28 17:55:01 -0700</bug_when>
    <thetext>Comment on attachment 62864
Patch (depends on 43130)

i think you might need to modify JSValueToNative in CodeGeneratorV8.pm to make the patch build in chromium. for [Callback] parameters, i think you would want to return &quot;$value&quot;.

WebCore/bindings/scripts/CodeGenerator.pm:363
 +      $ret =~ s/^eXCLUSIVE/exclusiveFlag/ if $ret =~ /^eXCLUSIVE$/;
i think isCreate() or isCreateFlag() would be a better name for a boolean getter. same for exclusiveFlag(). also, you should add a test for these cases to WebCore/bindings/scripts/test/TestObj.idl, and change the expected outputs in WebCore/bindings/scripts/test/{JS|V8|...}/. Please make sure WebKitTools/Scripts/run-bindings-tests passes.

WebCore/storage/DOMFileSystem.cpp:35
 +  #include &quot;DOMFileSystem.h&quot;
i believe the common pattern is:

#include &quot;config.h&quot;
#include &quot;DOMFileSystem.h&quot;

#if ENABLE(FILE_SYSTEM)

WebCore/storage/DOMFileSystem.cpp:38
 +  #include &quot;EntryCallback.h&quot;
looks like this include is not yet needed.

WebCore/storage/DOMFileSystem.cpp:39
 +  #include &quot;ErrorCallback.h&quot;
ditto.

WebCore/storage/DOMFileSystem.h:44
 +  class ErrorCallback;
these 2 classes don&apos;t need to be forward-declared just yet.

WebCore/storage/DOMFileSystem.h:45
 +  class ScriptExecutionContext;
ditto.

WebCore/storage/Entry.cpp:34
 +  #include &quot;Entry.h&quot;
same comment about moving this outside #if ENABLE(FILE_SYSTEM)

WebCore/storage/Entry.cpp:50
 +          m_name = fullPath.substring(index);
should there be a &quot;else m_name = fullPath;&quot; here?

WebCore/storage/Entry.h:34
 +  #include &quot;DOMFileSystem.h&quot;
either remove this include, or the forward-declaration below.

WebCore/storage/ErrorCallback.h:43
 +  class ErrorCallback : public ThreadSafeShared&lt;ErrorCallback&gt; {
this callback is ThreadSafeShared, and all other callbacks are RefCounted. is this intended?

WebCore/storage/Flags.h:50
 +      void setEXCLUSIVE(bool exclusive) { m_exclusive = exclusive; }
you should modify WK_ucfirst in CodeGenerator.pm the same way you modified WK_lcfirst, and convert setCREATE() and setEXCLUSIVE() to setCreate() and setExclusive().

WebCore/storage/Metadata.h:53
 +      double m_modificationTime;
empty line before this field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257533</commentid>
    <comment_count>4</comment_count>
      <attachid>62914</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-28 21:04:34 -0700</bug_when>
    <thetext>Created attachment 62914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257536</commentid>
    <comment_count>5</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-28 21:19:27 -0700</bug_when>
    <thetext>Thanks for your careful review!  I fixed the issues you pointed out.

(In reply to comment #3)
&gt; (From update of attachment 62864 [details])
&gt; i think you might need to modify JSValueToNative in CodeGeneratorV8.pm to make the patch build in chromium. for [Callback] parameters, i think you would want to return &quot;$value&quot;.

I have another proposing patch (issue 43130 - I&apos;ve cc&apos;ed you) that hopefully fixes this.  (I&apos;ll look for alternative solution if it&apos;s not the right solution.)

&gt; WebCore/bindings/scripts/CodeGenerator.pm:363
&gt;  +      $ret =~ s/^eXCLUSIVE/exclusiveFlag/ if $ret =~ /^eXCLUSIVE$/;
&gt; i think isCreate() or isCreateFlag() would be a better name for a boolean getter. same for exclusiveFlag(). also, you should add a test for these cases to WebCore/bindings/scripts/test/TestObj.idl, and change the expected outputs in WebCore/bindings/scripts/test/{JS|V8|...}/. Please make sure WebKitTools/Scripts/run-bindings-tests passes.
&gt; 
&gt; WebCore/storage/DOMFileSystem.cpp:35
&gt;  +  #include &quot;DOMFileSystem.h&quot;
&gt; i believe the common pattern is:
&gt; 
&gt; #include &quot;config.h&quot;
&gt; #include &quot;DOMFileSystem.h&quot;
&gt; 
&gt; #if ENABLE(FILE_SYSTEM)
&gt; 
&gt; WebCore/storage/DOMFileSystem.cpp:38
&gt;  +  #include &quot;EntryCallback.h&quot;
&gt; looks like this include is not yet needed.
&gt; 
&gt; WebCore/storage/DOMFileSystem.cpp:39
&gt;  +  #include &quot;ErrorCallback.h&quot;
&gt; ditto.
&gt; 
&gt; WebCore/storage/DOMFileSystem.h:44
&gt;  +  class ErrorCallback;
&gt; these 2 classes don&apos;t need to be forward-declared just yet.
&gt; 
&gt; WebCore/storage/DOMFileSystem.h:45
&gt;  +  class ScriptExecutionContext;
&gt; ditto.
&gt; 
&gt; WebCore/storage/Entry.cpp:34
&gt;  +  #include &quot;Entry.h&quot;
&gt; same comment about moving this outside #if ENABLE(FILE_SYSTEM)
&gt; 
&gt; WebCore/storage/Entry.cpp:50
&gt;  +          m_name = fullPath.substring(index);
&gt; should there be a &quot;else m_name = fullPath;&quot; here?
&gt; 
&gt; WebCore/storage/Entry.h:34
&gt;  +  #include &quot;DOMFileSystem.h&quot;
&gt; either remove this include, or the forward-declaration below.
&gt; 
&gt; WebCore/storage/ErrorCallback.h:43
&gt;  +  class ErrorCallback : public ThreadSafeShared&lt;ErrorCallback&gt; {
&gt; this callback is ThreadSafeShared, and all other callbacks are RefCounted. is this intended?

Good catch... it was a mistake.

&gt; WebCore/storage/Flags.h:50
&gt;  +      void setEXCLUSIVE(bool exclusive) { m_exclusive = exclusive; }
&gt; you should modify WK_ucfirst in CodeGenerator.pm the same way you modified WK_lcfirst, and convert setCREATE() and setEXCLUSIVE() to setCreate() and setExclusive().
&gt; 
&gt; WebCore/storage/Metadata.h:53
&gt;  +      double m_modificationTime;
&gt; empty line before this field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257586</commentid>
    <comment_count>6</comment_count>
      <attachid>62914</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-07-29 01:36:32 -0700</bug_when>
    <thetext>Comment on attachment 62914
Patch

r=me, but please address the comments below, and make sure you can build webkit and chromium before you submit the patch.

WebCore/bindings/scripts/CodeGenerator.pm:348
 +      $ret =~ s/^CREATE/Create/ if $ret =~ /^CREATE$/;
now that i look at this code, i think we can do a little better: instead of adding special cases for CREATE and EXCLUSIVE, we can do the same trick for all uppercase strings.

basically, i think we should just add &apos;return ucfirst(lc($param)) if $param eq uc($param);&apos; at the beginning of this function.

sorry i didn&apos;t think about this earlier.

WebCore/bindings/scripts/CodeGenerator.pm:367
 +      $ret =~ s/^cREATE/isCreate/ if $ret =~ /^cREATE$/;
same thing here, i think it&apos;s ok to assume for now that all uppercase attributes are boolean: return &quot;is&quot; . ucfirst(lc($param)) if $param eq uc($param);

WebCore/bindings/scripts/test/TestObj.idl:48
 +          attribute bool                     CREATE;
s/bool/boolean/. otherwise, we&apos;ll get lots of non-sense includes like &quot;JSbool.h&quot; and &quot;V8bool.h&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257938</commentid>
    <comment_count>7</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-29 15:47:54 -0700</bug_when>
    <thetext>Thanks for reviewing.

(In reply to comment #6)
&gt; (From update of attachment 62914 [details])
&gt; r=me, but please address the comments below, and make sure you can build webkit and chromium before you submit the patch.
&gt; 
&gt; WebCore/bindings/scripts/CodeGenerator.pm:348
&gt;  +      $ret =~ s/^CREATE/Create/ if $ret =~ /^CREATE$/;
&gt; now that i look at this code, i think we can do a little better: instead of adding special cases for CREATE and EXCLUSIVE, we can do the same trick for all uppercase strings.
&gt; basically, i think we should just add &apos;return ucfirst(lc($param)) if $param eq uc($param);&apos; at the beginning of this function.

Yeah it&apos;ll be cleaner - I didn&apos;t do so out of fear to break something, but it looks ok as you say (grepping confirmed that).
I&apos;ll change like that.  I&apos;ll also fix bool in idl and make sure they can be built on both platforms before submitting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258581</commentid>
    <comment_count>8</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-07-31 01:44:43 -0700</bug_when>
    <thetext>Committed r64414: &lt;http://trac.webkit.org/changeset/64414&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258585</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-31 02:21:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64414 might have broken Chromium Mac Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62864</attachid>
            <date>2010-07-28 12:49:50 -0700</date>
            <delta_ts>2010-07-28 21:04:30 -0700</delta_ts>
            <desc>Patch (depends on 43130)</desc>
            <filename>bug-43134-20100728124949.patch</filename>
            <type>text/plain</type>
            <size>66946</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTE5NjU1ZjgxYmVhYmIyODU4ZDc1YWQwZDk3NTdmMWY2Y2RjMWZhNi4uYjQ1NTFjYWUzZTQzNTIx
NTg1YmVlMjYxMWRkODhkMmJhZDBkNGU0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wNy0yOCAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlkbCBhbmQgbW9jayBpbXBsZW1lbnRhdGlv
biBmb3IgSFRNTDUgRmlsZVN5c3RlbSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzMTM0CisKKyAgICAgICAgQWRkIGlkbCBmb3I6IEZpbGVTeXN0
ZW0gKGFzIERPTUZpbGVTeXN0ZW0pLCBFbnRyeSwgRmxhZ3MsIE1ldGFkYXRhLAorICAgICAgICBG
aWxlU3lzdGVtQ2FsbGJhY2ssIEVudHJ5Q2FsbGJhY2sgYW5kIEVycm9yQ2FsbGJhY2suCisgICAg
ICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMDkvZGFwL2ZpbGUtc3lzdGVtL2ZpbGUtZGlyLXN5cy5o
dG1sCisKKyAgICAgICAgVGhleSBhcmUgYWRkZWQgb25seSBmb3IgTWFjIGFuZCBjaHJvbWl1bS4K
KworICAgICAgICBUZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBlbnRyeSBw
b2ludCBhbmQgYWRkIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbToKKyAgICAgICAgKiBzdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9ET01GaWxlU3lzdGVtLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9FbnRyeS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvRW50cnkuaDogQWRkZWQuCisgICAgICAgICogc3Rv
cmFnZS9FbnRyeS5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvRW50cnlDYWxsYmFjay5o
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0VudHJ5Q2FsbGJhY2suaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL0Vycm9yQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9FcnJvckNhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9GaWxlU3lzdGVt
Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2su
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0ZsYWdzLmg6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvRmxhZ3MuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL01ldGFkYXRhLmg6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvTWV0YWRhdGEuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9N
ZXRhZGF0YUNhbGxiYWNrLmlkbDogQWRkZWQuCisKIDIwMTAtMDctMjggIFRvbnkgR2VudGlsY29y
ZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDhjZWNjMmI1NjhiZGEwNTk1ZGNmODY3M2ZlNTQzNzA1
YTczMGE2Y2IuLjJjMzI5N2MyNmY4OTlkM2IxZTYxYjViYzc2MmJkYTNjMThmZTdjM2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTExMSw2ICsxMTEsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0IFwKICAgICBET01BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBET01D
b3JlRXhjZXB0aW9uIFwKKyAgICBET01GaWxlU3lzdGVtIFwKICAgICBET01Gb3JtRGF0YSBcCiAg
ICAgRE9NSW1wbGVtZW50YXRpb24gXAogICAgIERPTU1pbWVUeXBlIFwKQEAgLTEzMyw2ICsxMzQs
OSBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBFbGVtZW50VGltZUNvbnRyb2wgXAogICAgIEVudGl0
eSBcCiAgICAgRW50aXR5UmVmZXJlbmNlIFwKKyAgICBFbnRyeSBcCisgICAgRW50cnlDYWxsYmFj
ayBcCisgICAgRXJyb3JDYWxsYmFjayBcCiAgICAgRXJyb3JFdmVudCBcCiAgICAgRXZlbnQgXAog
ICAgIEV2ZW50RXhjZXB0aW9uIFwKQEAgLTE0Myw2ICsxNDcsOCBAQCBET01fQ0xBU1NFUyA9IFwK
ICAgICBGaWxlRXJyb3IgXAogICAgIEZpbGVMaXN0IFwKICAgICBGaWxlUmVhZGVyIFwKKyAgICBG
aWxlU3lzdGVtQ2FsbGJhY2sgXAorICAgIEZsYWdzIFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAg
R2VvcG9zaXRpb24gXAogICAgIEhUTUxBbGxDb2xsZWN0aW9uIFwKQEAgLTI0Miw2ICsyNDgsOCBA
QCBET01fQ0xBU1NFUyA9IFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50
IFwKICAgICBNZXNzYWdlUG9ydCBcCisgICAgTWV0YWRhdGEgXAorICAgIE1ldGFkYXRhQ2FsbGJh
Y2sgXAogICAgIE1vdXNlRXZlbnQgXAogICAgIE11dGF0aW9uRXZlbnQgXAogICAgIE5hbWVkTm9k
ZU1hcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDY5OGUzMDI1NmJiN2ZiZGU3MzI2NjBiMWFhZTA2YThhMzI2NGE4ZjIuLmJm
MWNjMThiMzIwMzIxZjk4Y2Q3NDYyYzI0YTY2N2Q2MTM2YjBjZjMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzAsNiArMjMw
LDExIEBACiAgICAgICAgICAgICAnc3RvcmFnZS9EYXRhYmFzZS5pZGwnLAogICAgICAgICAgICAg
J3N0b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0
YWJhc2VTeW5jLmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9ET01GaWxlU3lzdGVtLmlkbCcs
CisgICAgICAgICAgICAnc3RvcmFnZS9FbnRyeS5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2Uv
RW50cnlDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRXJyb3JDYWxsYmFjay5p
ZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmlkbCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJBbnkuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRh
dGFiYXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0
aW9uLmlkbCcsCkBAIC03NDAsNiArNzQ1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEVsZW1lbnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhFbnRyeUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZl
bnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEdlb2xvY2F0aW9uQ3VzdG9tLmNwcCcsCkBAIC0zNDY4LDYgKzM0NzQsMTMgQEAKICAgICAg
ICAgICAgICdzdG9yYWdlL0RhdGFiYXNlVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvRGF0YWJhc2VUcmFja2VyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJhc2VUcmFj
a2VyQ2xpZW50LmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAnLAor
ICAgICAgICAgICAgJ3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oJywKKyAgICAgICAgICAgICdzdG9y
YWdlL0VudHJ5LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9FbnRyeS5oJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL0VudHJ5Q2FsbGJhY2suaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9GaWxl
U3lzdGVtQ2FsbGJhY2suaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9GbGFncy5oJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQkFueS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55
LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgnLApAQCAtMzUxMSw2ICsz
NTI0LDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwJywKICAgICAgICAgICAgICdz
dG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL01ldGFk
YXRhLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oJywKICAgICAg
ICAgICAgICdzdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5jcHAnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvT3JpZ2lu
VXNhZ2VSZWNvcmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMzBjODE5NjkyZTQzYmU0MDcxNWFlN2U4MzNlNmI2M2Q3YmQ5ODM4NS4uZDI0YTlm
NWNlNGU5MDQ5ZDk4MWVkZjdjZTdmOTdhNDRiY2JkZWE2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzMjMsNiArMjMyMywzMiBAQAogCQk4OTUyNTNE
QzExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5NTI1M0RBMTE2QzRFRjUwMENBQkYwMCAv
KiBGaWxlU3RyZWFtUHJveHkuY3BwICovOyB9OwogCQk4OTUyNTNERDExNkM0RUY1MDBDQUJGMDAg
LyogRmlsZVN0cmVhbVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OTUyNTNEQjExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5Lmgg
Ki87IH07CiAJCTg5NTI1M0RGMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREUxMTZD
NEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggKi87IH07CisJCTg5N0EyRDIyMTFGRjU4
QTUwMDgyNzQwQyAvKiBET01GaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDE5MTFGRjU4QTUwMDgyNzQwQyAvKiBET01GaWxl
U3lzdGVtLmNwcCAqLzsgfTsKKwkJODk3QTJEMjMxMUZGNThBNTAwODI3NDBDIC8qIERPTUZpbGVT
eXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
N0EyRDFBMTFGRjU4QTUwMDgyNzQwQyAvKiBET01GaWxlU3lzdGVtLmggKi87IH07CisJCTg5N0Ey
RDI1MTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQxQzExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnku
Y3BwICovOyB9OworCQk4OTdBMkQyNjExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDFEMTFGRjU4QTUw
MDgyNzQwQyAvKiBFbnRyeS5oICovOyB9OworCQk4OTdBMkQyNzExRkY1OEE1MDA4Mjc0MEMgLyog
RW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODk3QTJEMUUxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5Q2FsbGJhY2suaCAqLzsgfTsK
KwkJODk3QTJEMjkxMUZGNThBNTAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDIwMTFGRjU4QTUwMDgy
NzQwQyAvKiBFcnJvckNhbGxiYWNrLmggKi87IH07CisJCTg5N0EyRDJBMTFGRjU4QTUwMDgyNzQw
QyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5N0EyRDIxMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2Fs
bGJhY2suaCAqLzsgfTsKKwkJODk3QTJENEYxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJENDkx
MUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuY3BwICovOyB9OworCQk4OTdBMkQ1MDExRkY2Qzkw
MDA4Mjc0MEMgLyogSlNFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODk3QTJENEExMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuaCAqLzsgfTsK
KwkJODk3QTJENTExMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnlDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ0QjExRkY2Qzkw
MDA4Mjc0MEMgLyogSlNFbnRyeUNhbGxiYWNrLmNwcCAqLzsgfTsKKwkJODk3QTJENTIxMUZGNkM5
MDAwODI3NDBDIC8qIEpTRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJENEMxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnlD
YWxsYmFjay5oICovOyB9OworCQk4OTdBMkQ1MzExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg5N0EyRDREMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovOyB9Owor
CQk4OTdBMkQ1NDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ0RTExRkY2QzkwMDA4
Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggKi87IH07CisJCTg5N0EyRDU3MTFGRjZDQTQwMDgy
NzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ1NTExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxl
U3lzdGVtQ2FsbGJhY2suY3BwICovOyB9OworCQk4OTdBMkQ1ODExRkY2Q0E0MDA4Mjc0MEMgLyog
SlNGaWxlU3lzdGVtQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg5N0EyRDU2MTFGRjZDQTQwMDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxs
YmFjay5oICovOyB9OworCQk4OTdBMkQ2MzEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDYwMTIwMDAx
MjIwMDgyNzQwQyAvKiBGbGFncy5oICovOyB9OworCQk4OTdBMkQ3NzEyMDAwMTQ0MDA4Mjc0MEMg
LyogTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg5N0EyRDczMTIwMDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0YS5oICovOyB9OworCQk4OTdB
MkQ3OTEyMDAwMTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJENzUxMjAwMDE0NDAwODI3NDBD
IC8qIE1ldGFkYXRhQ2FsbGJhY2suaCAqLzsgfTsKKwkJODk3QTJEOEYxMjAwMDM1RjAwODI3NDBD
IC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTdBMkQ4RDEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01GaWxlU3lzdGVt
LmNwcCAqLzsgfTsKKwkJODk3QTJEOTAxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3Rl
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJE
OEUxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5oICovOyB9OworCQk4OTdBMkQ5
MzEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFn
cy5jcHAgKi87IH07CisJCTg5N0EyRDk0MTIwMDAzNzYwMDgyNzQwQyAvKiBKU0ZsYWdzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5MjEyMDAw
Mzc2MDA4Mjc0MEMgLyogSlNGbGFncy5oICovOyB9OworCQk4OTdBMkQ5OTEyMDAwM0EwMDA4Mjc0
MEMgLyogSlNNZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OTdBMkQ5NTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5jcHAgKi87
IH07CisJCTg5N0EyRDlBMTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5NjEyMDAwM0EwMDA4
Mjc0MEMgLyogSlNNZXRhZGF0YS5oICovOyB9OworCQk4OTdBMkQ5QjEyMDAwM0EwMDA4Mjc0MEMg
LyogSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5N0EyRDk3MTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhQ2Fs
bGJhY2suY3BwICovOyB9OworCQk4OTdBMkQ5QzEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0
YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTdBMkQ5ODEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggKi87IH07
CiAJCTg5ODhFMTBFMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTg4RTEwQzExQTM1MDhCMDBEQjcz
MkUgLyogQmxvYkl0ZW0uY3BwICovOyB9OwogCQk4OTg4RTEwRjExQTM1MDhCMDBEQjczMkUgLyog
QmxvYkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg5QjVFQUExMTFFODAwM0QwMEYyMzY3
RSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg5QjVFQTlGMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLzsg
fTsKQEAgLTgwNTYsNiArODA4Miw0MCBAQAogCQk4OTUyNTNEQTExNkM0RUY1MDBDQUJGMDAgLyog
RmlsZVN0cmVhbVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZpbGVTdHJlYW1Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5NTI1
M0RCMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN0cmVhbVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg5NTI1M0RFMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlVGhyZWFkVGFzay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQxOTExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmls
ZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01GaWxl
U3lzdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJEMUExMUZGNThB
NTAwODI3NDBDIC8qIERPTUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdB
MkQxQjExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5c3RlbS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRE9NRmlsZVN5c3RlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTg5N0EyRDFDMTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg5N0EyRDFEMTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTdBMkQxRTExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnlDYWxsYmFjay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFbnRyeUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5N0EyRDFGMTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeUNhbGxiYWNrLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFbnRyeUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODk3QTJEMjAxMUZGNThBNTAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXJyb3JDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQyMTExRkY1OEE1MDA4Mjc0MEMgLyogRmls
ZVN5c3RlbUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVT
eXN0ZW1DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQzQjEx
RkY2Mzg2MDA4Mjc0MEMgLyogRW50cnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVudHJ5
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJENDkxMUZGNkM5MDAwODI3
NDBDIC8qIEpTRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDRBMTFGRjZD
OTAwMDgyNzQwQyAvKiBKU0VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJENEIxMUZGNkM5
MDAwODI3NDBDIC8qIEpTRW50cnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0VudHJ5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4OTdBMkQ0QzExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeUNhbGxiYWNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50cnlDYWxsYmFjay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ0RDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJv
ckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJy
b3JDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDRFMTFG
RjZDOTAwMDgyNzQwQyAvKiBKU0Vycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNFcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg5N0EyRDU1MTFGRjZDQTQwMDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1DYWxsYmFj
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDU2MTFGRjZDQTQwMDgy
NzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4OTdBMkQ1RDEyMDAwMEZGMDA4Mjc0MEMgLyogRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRXJyb3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5N0EyRDVGMTIwMDAxMjIwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2su
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZpbGVTeXN0ZW1DYWxsYmFjay5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDYwMTIwMDAxMjIwMDgyNzQwQyAvKiBGbGFn
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGFncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ2MTEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZsYWdzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODk3QTJENzMxMjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5N0EyRDc0MTIwMDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0YS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWV0YWRhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4OTdBMkQ3NTEyMDAwMTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXRhZGF0YUNhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDc2MTIwMDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0
YUNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZXRhZGF0YUNhbGxiYWNrLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJEOEQxMjAwMDM1RjAwODI3NDBD
IC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUZpbGVTeXN0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTdBMkQ4RTEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZsYWdzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJEOTIxMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGbGFncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ5NTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01ldGFkYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJEOTYxMjAwMDNBMDAwODI3NDBD
IC8qIEpTTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXRh
ZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ5NzEyMDAwM0EwMDA4
Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWV0YWRhdGFDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg5N0EyRDk4MTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhQ2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXRhZGF0YUNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAv
KiBCbG9iSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9i
SXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBEMTFBMzUwOEIw
MERCNzMyRSAvKiBCbG9iSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9iSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUI1RUE5RjExRTgwMDNE
MDBGMjM2N0UgLyogTGluZUVuZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMaW5lRW5kaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
MzE1LDYgKzExMzc1LDIwIEBACiAJCQkJMUFENTFBMTMwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFi
YXNlVHJhY2tlci5jcHAgKi8sCiAJCQkJMUFENTFBMTIwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFi
YXNlVHJhY2tlci5oICovLAogCQkJCTUxRkFGRTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFz
ZVRyYWNrZXJDbGllbnQuaCAqLywKKwkJCQk4OTdBMkQxOTExRkY1OEE1MDA4Mjc0MEMgLyogRE9N
RmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODk3QTJEMUExMUZGNThBNTAwODI3NDBDIC8qIERPTUZp
bGVTeXN0ZW0uaCAqLywKKwkJCQk4OTdBMkQxQjExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5
c3RlbS5pZGwgKi8sCisJCQkJODk3QTJEMUMxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5LmNwcCAq
LywKKwkJCQk4OTdBMkQxRDExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnkuaCAqLywKKwkJCQk4OTdB
MkQzQjExRkY2Mzg2MDA4Mjc0MEMgLyogRW50cnkuaWRsICovLAorCQkJCTg5N0EyRDFFMTFGRjU4
QTUwMDgyNzQwQyAvKiBFbnRyeUNhbGxiYWNrLmggKi8sCisJCQkJODk3QTJEMUYxMUZGNThBNTAw
ODI3NDBDIC8qIEVudHJ5Q2FsbGJhY2suaWRsICovLAorCQkJCTg5N0EyRDIwMTFGRjU4QTUwMDgy
NzQwQyAvKiBFcnJvckNhbGxiYWNrLmggKi8sCisJCQkJODk3QTJENUQxMjAwMDBGRjAwODI3NDBD
IC8qIEVycm9yQ2FsbGJhY2suaWRsICovLAorCQkJCTg5N0EyRDIxMTFGRjU4QTUwMDgyNzQwQyAv
KiBGaWxlU3lzdGVtQ2FsbGJhY2suaCAqLywKKwkJCQk4OTdBMkQ1RjEyMDAwMTIyMDA4Mjc0MEMg
LyogRmlsZVN5c3RlbUNhbGxiYWNrLmlkbCAqLywKKwkJCQk4OTdBMkQ2MDEyMDAwMTIyMDA4Mjc0
MEMgLyogRmxhZ3MuaCAqLywKKwkJCQk4OTdBMkQ2MTEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3Mu
aWRsICovLAogCQkJCUM1ODVBNjk4MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuY3BwICovLAog
CQkJCUM1ODVBNjk5MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaCAqLywKIAkJCQlDNTg1QTY5
QTExRDRGQjNEMDA0QzNFNEIgLyogSURCQW55LmlkbCAqLywKQEAgLTExMzcxLDYgKzExNDQ1LDEw
IEBACiAJCQkJNTExRjIzMTQwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCAq
LywKIAkJCQk1MTFGMjMxNTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNw
cCAqLywKIAkJCQk1MTFGMjMxNjBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFk
LmggKi8sCisJCQkJODk3QTJENzMxMjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggKi8sCisJ
CQkJODk3QTJENzQxMjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmlkbCAqLywKKwkJCQk4OTdB
MkQ3NTEyMDAwMTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oICovLAorCQkJCTg5N0Ey
RDc2MTIwMDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0YUNhbGxiYWNrLmlkbCAqLywKIAkJCQk1MUE5
MjY3ODBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcCAqLywKIAkJCQk1
MUE5MjY3OTBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luUXVvdGFNYW5hZ2VyLmggKi8sCiAJCQkJ
NTFBOTI2N0EwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblVzYWdlUmVjb3JkLmNwcCAqLywKQEAg
LTE0NzU3LDYgKzE0ODM1LDE4IEBACiAJCQkJQjU5REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8qIEpT
RGF0YWJhc2VDYWxsYmFjay5oICovLAogCQkJCUI1OENFQjY4MTE5MTM2MDcwMDJBNjc5MCAvKiBK
U0RhdGFiYXNlU3luYy5jcHAgKi8sCiAJCQkJQjU4Q0VCNjcxMTkxMzYwNzAwMkE2NzkwIC8qIEpT
RGF0YWJhc2VTeW5jLmggKi8sCisJCQkJODk3QTJEOEQxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9N
RmlsZVN5c3RlbS5jcHAgKi8sCisJCQkJODk3QTJEOEUxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9N
RmlsZVN5c3RlbS5oICovLAorCQkJCTg5N0EyRDQ5MTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5
LmNwcCAqLywKKwkJCQk4OTdBMkQ0QTExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeS5oICovLAor
CQkJCTg5N0EyRDRCMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5Q2FsbGJhY2suY3BwICovLAor
CQkJCTg5N0EyRDRDMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5Q2FsbGJhY2suaCAqLywKKwkJ
CQk4OTdBMkQ0RDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLywKKwkJ
CQk4OTdBMkQ0RTExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggKi8sCisJCQkJ
ODk3QTJENTUxMUZGNkNBNDAwODI3NDBDIC8qIEpTRmlsZVN5c3RlbUNhbGxiYWNrLmNwcCAqLywK
KwkJCQk4OTdBMkQ1NjExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2suaCAq
LywKKwkJCQk4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8sCisJCQkJ
ODk3QTJEOTIxMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3MuaCAqLywKIAkJCQlDNTg1QTY2NDEx
RDRGQjA3MDA0QzNFNEIgLyogSlNJREJBbnkuY3BwICovLAogCQkJCUM1ODVBNjY1MTFENEZCMDcw
MDRDM0U0QiAvKiBKU0lEQkFueS5oICovLAogCQkJCUM1ODVBNjY2MTFENEZCMDcwMDRDM0U0QiAv
KiBKU0lEQkRhdGFiYXNlRXJyb3IuY3BwICovLApAQCAtMTQ3ODMsNiArMTQ4NzMsMTAgQEAKIAkJ
CQlDNTg1QTY3QjExRDRGQjA3MDA0QzNFNEIgLyogSlNJREJTdWNjZXNzRXZlbnQuaCAqLywKIAkJ
CQlDNTg1QTY5NDExRDRGQjEzMDA0QzNFNEIgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNw
cCAqLywKIAkJCQlDNTg1QTY5NTExRDRGQjEzMDA0QzNFNEIgLyogSlNJbmRleGVkRGF0YWJhc2VS
ZXF1ZXN0LmggKi8sCisJCQkJODk3QTJEOTUxMjAwMDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGEu
Y3BwICovLAorCQkJCTg5N0EyRDk2MTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhLmggKi8s
CisJCQkJODk3QTJEOTcxMjAwMDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAg
Ki8sCisJCQkJODk3QTJEOTgxMjAwMDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5o
ICovLAogCQkJCTUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCAqLywK
IAkJCQlCQzgyNDMyNTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxFcnJvci5oICovLAogCQkJCUI1
MjVBOTY0MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0xOTg3
MSw2ICsxOTk2NSwyMiBAQAogCQkJCTA4NEQwRTNEMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNv
dXJjZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NEQwRTNGMTFGNTgxNjEwMDA4MUUxQSAvKiBT
VkdSZXNvdXJjZXNDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1QjA1QzMxMUZBRTE2QzAw
NEQ2NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
OTdBMkQyMzExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODk3QTJEMjYxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5LmggaW4gSGVhZGVycyAqLywK
KwkJCQk4OTdBMkQyNzExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnlDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCisJCQkJODk3QTJEMjkxMUZGNThBNTAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTg5N0EyRDJBMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVt
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTg5N0EyRDUwMTFGRjZDOTAwMDgyNzQwQyAv
KiBKU0VudHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ1MjExRkY2QzkwMDA4Mjc0MEMg
LyogSlNFbnRyeUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ1NDExRkY2Qzkw
MDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ1
ODExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAorCQkJCTg5N0EyRDYzMTIwMDAxMjIwMDgyNzQwQyAvKiBGbGFncy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODk3QTJENzcxMjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk4OTdBMkQ3OTEyMDAwMTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODk3QTJEOTAxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5
c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODk3QTJEOTQxMjAwMDM3NjAwODI3NDBDIC8qIEpT
RmxhZ3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5N0EyRDlBMTIwMDAzQTAwMDgyNzQwQyAvKiBK
U01ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ5QzEyMDAwM0EwMDA4Mjc0MEMg
LyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMjcwLDYgKzIyMzgw
LDE2IEBACiAJCQkJMDg0RDBFM0UxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4NkE0MDA2MTFGNkQ2QjcwMDJDRUM1MyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODVCMDVDMjEx
RkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJODk3QTJEMjIxMUZGNThBNTAwODI3NDBDIC8qIERPTUZpbGVTeXN0ZW0uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJODk3QTJEMjUxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTg5N0EyRDRGMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTg5N0EyRDUxMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODk3QTJENTMxMUZGNkM5MDAwODI3NDBD
IC8qIEpTRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OTdBMkQ1NzExRkY2
Q0E0MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJODk3QTJEOEYxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk4OTdBMkQ5MzEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk4OTdBMkQ5OTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk4OTdBMkQ5QjEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRh
ZGF0YUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvci5wbQppbmRleCAzNjNmZGM1NjljZGE0OWNhOWRhNmY3N2JiNGM0MDQ1NmNh
ZmQ2ODVjLi42ZTU3NDZlZjhmYWU3NmFiNjg4ODBjMjllOWYzM2FkZjg3NmYzMDQzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQpAQCAtMzU3LDYgKzM1NywxMSBA
QCBzdWIgV0tfbGNmaXJzdAogICAgICRyZXQgPX4gcy9qUy9qcy8gaWYgJHJldCA9fiAvXmpTLzsK
ICAgICAkcmV0ID1+IHMveE1ML3htbC8gaWYgJHJldCA9fiAvXnhNTC87CiAgICAgJHJldCA9fiBz
L3hTTFQveHNsdC8gaWYgJHJldCA9fiAvXnhTTFQvOworCisgICAgIyBGb3IgSFRNTDUgRmlsZVN5
c3RlbSBBUEkgRmxhZ3MgYXR0cmlidXRlcy4KKyAgICAkcmV0ID1+IHMvXmNSRUFURS9jcmVhdGVG
bGFnLyBpZiAkcmV0ID1+IC9eY1JFQVRFJC87CisgICAgJHJldCA9fiBzL15lWENMVVNJVkUvZXhj
bHVzaXZlRmxhZy8gaWYgJHJldCA9fiAvXmVYQ0xVU0lWRSQvOworCiAgICAgcmV0dXJuICRyZXQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjdkYTNlMjVhNTFj
MzU4ODQ2ZjYxN2EwNGNmNTY1NDg1YzExMzI0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlICJET01GaWxlU3lzdGVt
LmgiCisKKyNpbmNsdWRlICJFbnRyeS5oIgorI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2suaCIKKyNp
bmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9N
RmlsZVN5c3RlbTo6RE9NRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgcm9vdFBhdGgsIGxvbmcgbG9uZyBzaXplKQorICAgIDogbV9yb290UGF0aChyb290UGF0aCkK
KyAgICAsIG1fbmFtZShuYW1lKQorICAgICwgbV9zaXplKHNpemUpCit7Cit9CisKK2NvbnN0IFBh
c3NSZWZQdHI8RW50cnk+IERPTUZpbGVTeXN0ZW06OnJvb3QoKQoreworICAgIHJldHVybiBFbnRy
eTo6Y3JlYXRlKHRoaXMsICIvIik7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5
c3RlbS5oIGIvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2E4
NWQ4Y2U1ODBiNjg2NzBkNjkwOWNjZjk2MGQ5NWE0YmIzZTlhCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
T01GaWxlU3lzdGVtX2gKKyNkZWZpbmUgRE9NRmlsZVN5c3RlbV9oCisKKyNpZiBFTkFCTEUoRklM
RV9TWVNURU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbnRyeTsKK2NsYXNzIEVudHJ5Q2FsbGJhY2s7CitjbGFzcyBFcnJv
ckNhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRE9NRmls
ZVN5c3RlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUZpbGVTeXN0ZW0+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoLCBsb25nIGxvbmcgc2l6ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbShuYW1lLCByb290UGF0aCwgc2l6
ZSkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIGNvbnN0IFBhc3NSZWZQdHI8RW50cnk+IHJvb3QoKTsKKworcHJpdmF0ZToK
KyAgICBET01GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByb290
UGF0aCwgbG9uZyBsb25nIHNpemUpOworCisgICAgU3RyaW5nIG1fcm9vdFBhdGg7CisgICAgU3Ry
aW5nIG1fbmFtZTsKKyAgICBsb25nIGxvbmcgbV9zaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UK
KworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIERPTUZpbGVTeXN0
ZW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaWRsIGIvV2Vi
Q29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNDFjNGE2ZmJkMjJm
MTkyMTFkYWMxMzcxMjRhNGI3ZDFmODU0MDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvRE9NRmlsZVN5c3RlbS5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTQorICAgIF0g
RE9NRmlsZVN5c3RlbSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFt
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVudHJ5IHJvb3Q7CisgICAgfTsKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9FbnRyeS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvRW50
cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjODIyNGJhNTc0MmJiM2JiOGVmMzM1MGJkNjBhOGYzNWU5YTYx
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnkuY3BwCkBAIC0wLDAg
KzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisj
aW5jbHVkZSAiRW50cnkuaCIKKworI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRl
ICJFbnRyeUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUg
Ik1ldGFkYXRhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitFbnRyeTo6RW50cnkoUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBm
aWxlU3lzdGVtLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKQorICAgIDogbV9maWxlU3lzdGVtKGZp
bGVTeXN0ZW0pCisgICAgLCBtX2Z1bGxQYXRoKGZ1bGxQYXRoKQoreworICAgIGludCBpbmRleCA9
IGZ1bGxQYXRoLnJldmVyc2VGaW5kKCIvIik7CisgICAgaWYgKGluZGV4ICE9IC0xKQorICAgICAg
ICBtX25hbWUgPSBmdWxsUGF0aC5zdWJzdHJpbmcoaW5kZXgpOworfQorCit2b2lkIEVudHJ5Ojpn
ZXRNZXRhZGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZXRhZGF0YUNh
bGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPikKK3sKKyAgICAvLyBGSVhNRTogdG8g
YmUgaW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgRW50cnk6Om1vdmVUbyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxFbnRyeT4sIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8RW50
cnlDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pCit7CisgICAgLy8gRklYTUU6
IHRvIGJlIGltcGxlbWVudGVkLgorfQorCit2b2lkIEVudHJ5Ojpjb3B5VG8oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RW50cnk+LCBjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRy
PEVudHJ5Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KQoreworICAgIC8vIEZJ
WE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBFbnRyeTo6cmVtb3ZlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJy
b3JDYWxsYmFjaz4pCit7CisgICAgLy8gRklYTUU6IHRvIGJlIGltcGxlbWVudGVkLgorfQorCit2
b2lkIEVudHJ5OjpnZXRQYXJlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
RW50cnlDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pCit7CisgICAgLy8gRklY
TUU6IHRvIGJlIGltcGxlbWVudGVkLgorfQorCitTdHJpbmcgRW50cnk6OnRvVVJJKGNvbnN0IFN0
cmluZyYpCit7CisgICAgLy8gRklYTUU6IHRvIGJlIGltcGxlbWVudGVkLgorICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0VudHJ5LmggYi9XZWJD
b3JlL3N0b3JhZ2UvRW50cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTRjNTA0MDU3Mzc0MTE5MDY0NTljNjRi
YTM2M2UzM2I3NDJmZDNiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0VudHJ5
LmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRW50cnlfaAorI2RlZmluZSBFbnRyeV9oCisKKyNp
bmNsdWRlICJET01GaWxlU3lzdGVtLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEVudHJ5Q2FsbGJhY2s7CitjbGFzcyBFcnJvckNhbGxiYWNrOworY2xhc3MgRE9NRmlsZVN5c3Rl
bTsKK2NsYXNzIE1ldGFkYXRhQ2FsbGJhY2s7CitjbGFzcyBWb2lkQ2FsbGJhY2s7CisKK2NsYXNz
IEVudHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8RW50cnk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxFbnRyeT4gY3JlYXRlKFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbT4gbV9maWxl
U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1fZnVsbFBhdGgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEVudHJ5KG1fZmlsZVN5c3RlbSwgbV9mdWxsUGF0aCkpOworICAgIH0KKwor
ICAgIHZpcnR1YWwgfkVudHJ5KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEaXJlY3RvcnkoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnVsbFBhdGg7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KKworICAgIERPTUZpbGVTeXN0ZW0qIGZpbGVzeXN0ZW0oKSBjb25z
dCB7IHJldHVybiBtX2ZpbGVTeXN0ZW0uZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBnZXRN
ZXRhZGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZXRhZGF0YUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSAwLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2sgPSAwKTsKKworICAgIHZpcnR1YWwgdm9pZCBtb3ZlVG8oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8RW50cnk+IHBhcmVudCwgY29uc3QgU3RyaW5nJiBuYW1lID0g
U3RyaW5nKCksIFBhc3NSZWZQdHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwg
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCk7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlUbyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxFbnRyeT4g
cGFyZW50LCBjb25zdCBTdHJpbmcmIG5hbWUgPSBTdHJpbmcoKSwgUGFzc1JlZlB0cjxFbnRyeUNh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSAwLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVy
cm9yQ2FsbGJhY2sgPSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwg
UGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCk7CisgICAgdmlydHVh
bCB2b2lkIGdldFBhcmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxFbnRy
eUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSAwLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+
IGVycm9yQ2FsbGJhY2sgPSAwKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIHRvVVJJKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUgPSBTdHJpbmcoKSk7CisKK3Byb3RlY3RlZDoKKyAgICBFbnRyeShQYXNz
UmVmUHRyPERPTUZpbGVTeXN0ZW0+IGZpbGVTeXN0ZW0sIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgp
OworCisgICAgUmVmUHRyPERPTUZpbGVTeXN0ZW0+IG1fZmlsZVN5c3RlbTsKKyAgICBTdHJpbmcg
bV9mdWxsUGF0aDsgLy8gdmlydHVhbCBwYXRoCisgICAgU3RyaW5nIG1fbmFtZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVudHJ5X2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9FbnRyeS5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnkuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3Mjc1MWUxYzkyMzM4MTVkZTYwNjVhOWExNWJlMzE0YmI2NzhjYWYKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnkuaWRsCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9T
WVNURU0KKyAgICBdIEVudHJ5IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
aXNGaWxlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RpcmVjdG9yeTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bGxQYXRoOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NRmlsZVN5c3RlbSBmaWxlc3lzdGVtOworCisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIG1vdmVUbyhpbiBFbnRyeSBwYXJlbnQsIGluIFtPcHRp
b25hbF0gRE9NU3RyaW5nIG5hbWUsIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVudHJ5Q2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNr
IGVycm9yQ2FsbGJhY2spOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gdm9pZCBjb3B5VG8oaW4gRW50cnkgcGFyZW50LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBu
YW1lLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFj
aywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsK
KyAgICAgICAgRE9NU3RyaW5nIHRvVVJJKGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIG1pbWVUeXBl
KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcmVtb3Zl
KGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGlu
IFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGdldFBhcmVudChpbiBb
T3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09w
dGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICB9Owor
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0VudHJ5Q2FsbGJhY2suaCBiL1dlYkNvcmUv
c3RvcmFnZS9FbnRyeUNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThhYTM0YTgzNGZlNGY3ZjBkMTgx
MTBkYWZjNzg3NjJkYTgwNjA5MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9F
bnRyeUNhbGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRW50cnlDYWxsYmFja19oCisj
ZGVmaW5lIEVudHJ5Q2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBF
bnRyeTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIEVudHJ5Q2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxFbnRyeUNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+RW50cnlDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRW50cnkqKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gRW50cnlDYWxs
YmFja19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRW50cnlDYWxsYmFjay5pZGwgYi9X
ZWJDb3JlL3N0b3JhZ2UvRW50cnlDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVhM2ZkMTQ3MGVk
MGM3YzA0YjliMTFlMmM2MTA1Y2RmZjlhNGE3OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9FbnRyeUNhbGxiYWNrLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2Ug
eworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAorICAg
ICAgICBDYWxsYmFjaworICAgIF0gRW50cnlDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFu
ZGxlRXZlbnQoaW4gRW50cnkgZW50cnkpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvRXJyb3JDYWxsYmFjay5oIGIvV2ViQ29yZS9zdG9yYWdlL0Vycm9yQ2FsbGJhY2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNGNhMWM2NzFmZDI1N2I3YTNlNWUwZGVhZGUyMTQwYzIwZGYzZGRhCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0Vycm9yQ2FsbGJhY2suaApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBFcnJvckNhbGxiYWNrX2gKKyNkZWZpbmUgRXJyb3JDYWxsYmFja19o
CisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVNo
YXJlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVFcnJvcjsKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIEVycm9yQ2FsbGJhY2sgOiBwdWJsaWMg
VGhyZWFkU2FmZVNoYXJlZDxFcnJvckNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
RXJyb3JDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgRmlsZUVycm9yKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UK
KworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEVycm9yQ2FsbGJh
Y2tfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0Vycm9yQ2FsbGJhY2suaWRsIGIvV2Vi
Q29yZS9zdG9yYWdlL0Vycm9yQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjN2ZhODVjNDA1ODI4
YWY3MjcyOTVmZWQ2ZjY2MDAwMjk0OGY3ODgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvRXJyb3JDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKKyAgICAg
ICAgQ2FsbGJhY2sKKyAgICBdIEVycm9yQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRs
ZUV2ZW50KGluIEZpbGVFcnJvciBlcnJvcik7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lz
dGVtQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2JmMzRkZmQ5ODE1NmNhNzA1MGUyYmQ4Zjc3YzY0
ZDNhMDg5MTg2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0ZpbGVTeXN0ZW1D
YWxsYmFjay5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZpbGVTeXN0ZW1DYWxsYmFja19oCisj
ZGVmaW5lIEZpbGVTeXN0ZW1DYWxsYmFja19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERPTUZpbGVTeXN0ZW07CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBGaWxlU3lzdGVtQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtQ2FsbGJh
Y2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtQ2FsbGJhY2soKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERPTUZp
bGVTeXN0ZW0qKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gRmlsZVN5c3RlbUNhbGxiYWNrX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsIGIvV2ViQ29yZS9zdG9y
YWdlL0ZpbGVTeXN0ZW1DYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y2ODZmZjFiZjVmZDA4ODNi
YTY4MjQxMjNlZDYzMDE4MGZkM2UyMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFn
ZS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCisgICAg
ICAgIENhbGxiYWNrCisgICAgXSBGaWxlU3lzdGVtQ2FsbGJhY2sgeworICAgICAgICBib29sZWFu
IGhhbmRsZUV2ZW50KGluIERPTUZpbGVTeXN0ZW0gZmlsZVN5c3RlbSk7CisgICAgfTsKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oIGIvV2ViQ29yZS9zdG9yYWdlL0ZsYWdz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjE5YjYzZjRiYjhjODBiNjFhMDg4YjczODI2ZGVhYmI0MzMzN2VhNwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEZsYWdzX2gKKyNkZWZpbmUgRmxhZ3NfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBGbGFncyA6IHB1YmxpYyBSZWZDb3VudGVkPEZsYWdzPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RmxhZ3M+IGNyZWF0ZShib29sIGNyZWF0ZSA9IGZhbHNlLCBi
b29sIGV4Y2x1c2l2ZSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBGbGFncyhjcmVhdGUsIGV4Y2x1c2l2ZSkpOworICAgIH0KKworICAgIGJvb2wgY3JlYXRlRmxh
ZygpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlOyB9CisgICAgdm9pZCBzZXRDUkVBVEUoYm9vbCBj
cmVhdGUpIHsgbV9jcmVhdGUgPSBjcmVhdGU7IH0KKyAgICBib29sIGV4Y2x1c2l2ZUZsYWcoKSBj
b25zdCB7IHJldHVybiBtX2V4Y2x1c2l2ZTsgfQorICAgIHZvaWQgc2V0RVhDTFVTSVZFKGJvb2wg
ZXhjbHVzaXZlKSB7IG1fZXhjbHVzaXZlID0gZXhjbHVzaXZlOyB9CisKK3ByaXZhdGU6CisgICAg
RmxhZ3MoYm9vbCBjcmVhdGUsIGJvb2wgZXhjbHVzaXZlKQorICAgICAgICA6IG1fY3JlYXRlKGNy
ZWF0ZSkKKyAgICAgICAgLCBtX2V4Y2x1c2l2ZShleGNsdXNpdmUpCisgICAgeworICAgIH0KKyAg
ICBib29sIG1fY3JlYXRlOworICAgIGJvb2wgbV9leGNsdXNpdmU7Cit9OworCit9IC8vIG5hbWVz
cGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8gRmxhZ3Nf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0ZsYWdzLmlkbCBiL1dlYkNvcmUvc3RvcmFn
ZS9GbGFncy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNzNkMjIxMGE4MGU3MmQ2N2NmYjE4YTc4ZTVhNzZm
NDkyYjY5MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5pZGwKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1GSUxFX1NZU1RFTQorICAgIF0gRmxhZ3MgeworICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiBDUkVBVEU7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIEVYQ0xVU0lWRTsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhLmggYi9XZWJDb3Jl
L3N0b3JhZ2UvTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWZlMGEwOTg1OGUxNzZkMjIzNDI4YWM1
MThmYTgwZjA0YTk0YTBlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL01ldGFk
YXRhLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWV0YWRhdGFfaAorI2RlZmluZSBNZXRhZGF0
YV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1ldGFkYXRhIDogcHVibGljIFJl
ZkNvdW50ZWQ8TWV0YWRhdGE+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRh
ZGF0YT4gY3JlYXRlKGRvdWJsZSBtb2RpZmljYXRpb25UaW1lKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNZXRhZGF0YShtb2RpZmljYXRpb25UaW1lKSk7CisgICAgfQorICAg
IGRvdWJsZSBtb2RpZmljYXRpb25UaW1lKCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmljYXRpb25U
aW1lOyB9CisKK3ByaXZhdGU6CisgICAgTWV0YWRhdGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUp
CisgICAgICAgIDogbV9tb2RpZmljYXRpb25UaW1lKG1vZGlmaWNhdGlvblRpbWUpCisgICAgewor
ICAgIH0KKyAgICBkb3VibGUgbV9tb2RpZmljYXRpb25UaW1lOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIE1ldGFkYXRh
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YS5pZGwgYi9XZWJDb3JlL3N0
b3JhZ2UvTWV0YWRhdGEuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YTkwYmM2NjcxMjliODlmN2ExMzFmNDZj
MWM2MTJjMGJlMmYwZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvTWV0YWRh
dGEuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0KKyAgICBdIE1ldGFkYXRhIHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgbW9kaWZpY2F0aW9uVGltZTsKKyAgICB9OworfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaCBiL1dlYkNvcmUv
c3RvcmFnZS9NZXRhZGF0YUNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZlNGM5MWIyYmNmNDUyMjc5
ODdjZjkyNDMxMjFhNzhjZDk0NjE2MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFn
ZS9NZXRhZGF0YUNhbGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWV0YWRhdGFDYWxs
YmFja19oCisjZGVmaW5lIE1ldGFkYXRhQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBNZXRhZGF0YTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2Ns
YXNzIE1ldGFkYXRhQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZXRhZGF0YUNhbGxiYWNr
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWV0YWRhdGFDYWxsYmFjaygpIHsgfQorICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWV0YWRhdGEq
KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjZW5kaWYgLy8gTWV0YWRhdGFDYWxsYmFja19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvTWV0YWRhdGFD
YWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRjYTE4MDU0MjBhNmFlMDU0ZmI0MWQ4NjhkM2ZmMDE1
NzRkZmMzMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YUNhbGxi
YWNrLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFjZSBb
CisgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAorICAgICAgICBDYWxsYmFjaworICAg
IF0gTWV0YWRhdGFDYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTWV0
YWRhdGEgbWV0YWRhdGEpOworICAgIH07Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62914</attachid>
            <date>2010-07-28 21:04:34 -0700</date>
            <delta_ts>2010-07-29 01:36:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43134-20100728210432.patch</filename>
            <type>text/plain</type>
            <size>98553</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Mjk3NTYwNWQxNjVkZmVlMjNkNjcxMzZmMmFiY2UxNzM3NjJhMzcwNy4uOWZhOTExOGM4Y2RiZjEz
ZTAyZDEwYjBiZDJiNDg4ZGU5ZGM3NzQwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wNy0yOCAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGlkbCBhbmQgbW9jayBpbXBsZW1lbnRhdGlv
biBmb3IgSFRNTDUgRmlsZVN5c3RlbSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzMTM0CisKKyAgICAgICAgQWRkIGlkbCBmb3I6IEZpbGVTeXN0
ZW0gKGFzIERPTUZpbGVTeXN0ZW0pLCBFbnRyeSwgRmxhZ3MsIE1ldGFkYXRhLAorICAgICAgICBG
aWxlU3lzdGVtQ2FsbGJhY2ssIEVudHJ5Q2FsbGJhY2sgYW5kIEVycm9yQ2FsbGJhY2suCisgICAg
ICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMDkvZGFwL2ZpbGUtc3lzdGVtL2ZpbGUtZGlyLXN5cy5o
dG1sCisKKyAgICAgICAgVGhleSBhcmUgYWRkZWQgb25seSBmb3IgTWFjIGFuZCBjaHJvbWl1bS4K
KworICAgICAgICBUZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBlbnRyeSBw
b2ludCBhbmQgYWRkIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNw
cDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9ET01GaWxlU3lzdGVtLmg6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvRE9NRmlsZVN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvRW50cnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0VudHJ5Lmg6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvRW50cnkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0Vu
dHJ5Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9FbnRyeUNhbGxiYWNrLmlk
bDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9FcnJvckNhbGxiYWNrLmg6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvRXJyb3JDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvRmlsZVN5c3RlbUNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9GbGFncy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL0ZsYWdzLmlkbDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9NZXRhZGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL01ldGFkYXRhLmlkbDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9NZXRhZGF0YUNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5pZGw6IEFkZGVkLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOiBBZGRlZCBzcGVjaWFsIGNhc2UgaGFuZGxp
bmdzIGZvciBnZW5lcmF0aW5nIHNldHRlci9nZXR0ZXIgbmFtZXMgZm9yIENSRUFURS9FWENMVVNJ
VkUgYXR0cmlidXRlcyBpbiBGbGFncy5pZGwuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGw6IFVwZGF0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOiBVcGRhdGVkLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBVcGRhdGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOiBV
cGRhdGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaDogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcDogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmg6IFVwZGF0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oOiBVcGRhdGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW06IFVwZGF0ZWQuCisKIDIwMTAtMDctMjggIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFp
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDNiMGYzOGQxNGNlYjU1MTljNDViNzRkNzY1YWQ0OGY0NDY1
YmNkMmEuLmFiZmQwY2UwZDE1ZTk1Nzc1NDQwMDI5N2I3YjY4ODUwYzZjNzBjNTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTExMSw2ICsxMTEsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0IFwKICAgICBET01BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBET01Db3Jl
RXhjZXB0aW9uIFwKKyAgICBET01GaWxlU3lzdGVtIFwKICAgICBET01Gb3JtRGF0YSBcCiAgICAg
RE9NSW1wbGVtZW50YXRpb24gXAogICAgIERPTU1pbWVUeXBlIFwKQEAgLTEzMyw2ICsxMzQsOSBA
QCBET01fQ0xBU1NFUyA9IFwKICAgICBFbGVtZW50VGltZUNvbnRyb2wgXAogICAgIEVudGl0eSBc
CiAgICAgRW50aXR5UmVmZXJlbmNlIFwKKyAgICBFbnRyeSBcCisgICAgRW50cnlDYWxsYmFjayBc
CisgICAgRXJyb3JDYWxsYmFjayBcCiAgICAgRXJyb3JFdmVudCBcCiAgICAgRXZlbnQgXAogICAg
IEV2ZW50RXhjZXB0aW9uIFwKQEAgLTE0Myw2ICsxNDcsOCBAQCBET01fQ0xBU1NFUyA9IFwKICAg
ICBGaWxlRXJyb3IgXAogICAgIEZpbGVMaXN0IFwKICAgICBGaWxlUmVhZGVyIFwKKyAgICBGaWxl
U3lzdGVtQ2FsbGJhY2sgXAorICAgIEZsYWdzIFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2Vv
cG9zaXRpb24gXAogICAgIEhUTUxBbGxDb2xsZWN0aW9uIFwKQEAgLTI0Miw2ICsyNDgsOCBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2FnZUV2ZW50IFwK
ICAgICBNZXNzYWdlUG9ydCBcCisgICAgTWV0YWRhdGEgXAorICAgIE1ldGFkYXRhQ2FsbGJhY2sg
XAogICAgIE1vdXNlRXZlbnQgXAogICAgIE11dGF0aW9uRXZlbnQgXAogICAgIE5hbWVkTm9kZU1h
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDY5OGUzMDI1NmJiN2ZiZGU3MzI2NjBiMWFhZTA2YThhMzI2NGE4ZjIuLjNhZDMw
MjQxYWI0ZWM0MWE2M2EwYmM0MWY5NTdhN2FjMTE4YmRjZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzAsNiArMjMwLDEx
IEBACiAgICAgICAgICAgICAnc3RvcmFnZS9EYXRhYmFzZS5pZGwnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvRGF0YWJhc2VDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJh
c2VTeW5jLmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9ET01GaWxlU3lzdGVtLmlkbCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9FbnRyeS5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRW50
cnlDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvRXJyb3JDYWxsYmFjay5pZGwn
LAorICAgICAgICAgICAgJ3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJBbnkuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFi
YXNlRXJyb3IuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmlkbCcsCkBAIC0zNDY4LDYgKzM0NzMsMTMgQEAKICAgICAgICAgICAgICdzdG9yYWdlL0RhdGFi
YXNlVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJhc2VUcmFja2VyLmgn
LAogICAgICAgICAgICAgJ3N0b3JhZ2UvRGF0YWJhc2VUcmFja2VyQ2xpZW50LmgnLAorICAgICAg
ICAgICAgJ3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2Uv
RE9NRmlsZVN5c3RlbS5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0VudHJ5LmNwcCcsCisgICAg
ICAgICAgICAnc3RvcmFnZS9FbnRyeS5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0VudHJ5Q2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9GbGFncy5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkFu
eS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmgnLAogICAgICAgICAgICAgJ3N0
b3JhZ2UvSURCQ2FsbGJhY2tzLmgnLApAQCAtMzUxMSw2ICszNTIzLDggQEAKICAgICAgICAgICAg
ICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Mb2Nh
bFN0b3JhZ2VUaHJlYWQuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0xvY2FsU3RvcmFnZVRo
cmVhZC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL01ldGFkYXRhLmgnLAorICAgICAgICAgICAg
J3N0b3JhZ2UvTWV0YWRhdGFDYWxsYmFjay5oJywKICAgICAgICAgICAgICdzdG9yYWdlL09yaWdp
blF1b3RhTWFuYWdlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5h
Z2VyLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvT3JpZ2luVXNhZ2VSZWNvcmQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2FmNjM4Nzg4MmVm
NDg0MjkyZWY0NjkwZWEwMTYzOGYxY2ZkNzE1Mi4uY2Q2NTYwYjkwMjQ4OGIwZDk4NTc2M2NmM2Ey
NzIxNzBmZDQ0MDhkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzMjMsNiArMjMyMywzMiBAQAogCQk4OTUyNTNEQzExNkM0RUY1MDBDQUJGMDAgLyog
RmlsZVN0cmVhbVByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg5NTI1M0RBMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuY3Bw
ICovOyB9OwogCQk4OTUyNTNERDExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUyNTNEQjEx
NkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi87IH07CiAJCTg5NTI1M0RGMTE2
QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREUxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVU
aHJlYWRUYXNrLmggKi87IH07CisJCTg5N0EyRDIyMTFGRjU4QTUwMDgyNzQwQyAvKiBET01GaWxl
U3lzdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg5N0EyRDE5MTFGRjU4QTUwMDgyNzQwQyAvKiBET01GaWxlU3lzdGVtLmNwcCAqLzsgfTsKKwkJ
ODk3QTJEMjMxMUZGNThBNTAwODI3NDBDIC8qIERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDFBMTFGRjU4QTUwMDgyNzQw
QyAvKiBET01GaWxlU3lzdGVtLmggKi87IH07CisJCTg5N0EyRDI1MTFGRjU4QTUwMDgyNzQwQyAv
KiBFbnRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTdBMkQxQzExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnkuY3BwICovOyB9OworCQk4OTdBMkQy
NjExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDFEMTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeS5oICov
OyB9OworCQk4OTdBMkQyNzExRkY1OEE1MDA4Mjc0MEMgLyogRW50cnlDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJEMUUxMUZGNThB
NTAwODI3NDBDIC8qIEVudHJ5Q2FsbGJhY2suaCAqLzsgfTsKKwkJODk3QTJEMjkxMUZGNThBNTAw
ODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5N0EyRDIwMTFGRjU4QTUwMDgyNzQwQyAvKiBFcnJvckNhbGxiYWNr
LmggKi87IH07CisJCTg5N0EyRDJBMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0Ey
RDIxMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2suaCAqLzsgfTsKKwkJODk3
QTJENEYxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJENDkxMUZGNkM5MDAwODI3NDBDIC8qIEpT
RW50cnkuY3BwICovOyB9OworCQk4OTdBMkQ1MDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJENEEx
MUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuaCAqLzsgfTsKKwkJODk3QTJENTExMUZGNkM5MDAw
ODI3NDBDIC8qIEpTRW50cnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ0QjExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeUNh
bGxiYWNrLmNwcCAqLzsgfTsKKwkJODk3QTJENTIxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnlD
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODk3QTJENEMxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnlDYWxsYmFjay5oICovOyB9OworCQk4
OTdBMkQ1MzExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDREMTFGRjZDOTAwMDgy
NzQwQyAvKiBKU0Vycm9yQ2FsbGJhY2suY3BwICovOyB9OworCQk4OTdBMkQ1NDExRkY2QzkwMDA4
Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ0RTExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxi
YWNrLmggKi87IH07CisJCTg5N0EyRDU3MTFGRjZDQTQwMDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1D
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTdBMkQ1NTExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2suY3BwICov
OyB9OworCQk4OTdBMkQ1ODExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDU2
MTFGRjZDQTQwMDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5oICovOyB9OworCQk4OTdB
MkQ2MzEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDYwMTIwMDAxMjIwMDgyNzQwQyAvKiBGbGFncy5o
ICovOyB9OworCQk4OTdBMkQ3NzEyMDAwMTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0EyRDczMTIwMDAxNDQw
MDgyNzQwQyAvKiBNZXRhZGF0YS5oICovOyB9OworCQk4OTdBMkQ3OTEyMDAwMTQ0MDA4Mjc0MEMg
LyogTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODk3QTJENzUxMjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhQ2FsbGJhY2su
aCAqLzsgfTsKKwkJODk3QTJEOEYxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ4
RDEyMDAwMzVGMDA4Mjc0MEMgLyogSlNET01GaWxlU3lzdGVtLmNwcCAqLzsgfTsKKwkJODk3QTJE
OTAxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk3QTJEOEUxMjAwMDM1RjAwODI3NDBDIC8q
IEpTRE9NRmlsZVN5c3RlbS5oICovOyB9OworCQk4OTdBMkQ5MzEyMDAwMzc2MDA4Mjc0MEMgLyog
SlNGbGFncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTdBMkQ5MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi87IH07CisJCTg5N0Ey
RDk0MTIwMDAzNzYwMDgyNzQwQyAvKiBKU0ZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5MjEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFn
cy5oICovOyB9OworCQk4OTdBMkQ5OTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5NTEy
MDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5jcHAgKi87IH07CisJCTg5N0EyRDlBMTIwMDAz
QTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5NjEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5o
ICovOyB9OworCQk4OTdBMkQ5QjEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5N0Ey
RDk3MTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwICovOyB9OworCQk4
OTdBMkQ5QzEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTdBMkQ5ODEyMDAwM0EwMDA4
Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggKi87IH07CiAJCTg5ODhFMTBFMTFBMzUwOEIw
MERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICov
OyB9OwogCQk4OTg4RTEwRjExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5ODhFMTBEMTFBMzUwOEIwMERC
NzMyRSAvKiBCbG9iSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg5QjVFQUExMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5QjVFQTlGMTFF
ODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLzsgfTsKQEAgLTgwNTYsNiArODA4Miw0
MCBAQAogCQk4OTUyNTNEQTExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTdHJlYW1Qcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5NTI1M0RCMTE2QzRFRjUwMENBQkYwMCAv
KiBGaWxlU3RyZWFtUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmls
ZVN0cmVhbVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5NTI1M0RFMTE2
QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlVGhyZWFkVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4OTdBMkQxOTExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01GaWxlU3lzdGVtLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJEMUExMUZGNThBNTAwODI3NDBDIC8qIERPTUZpbGVT
eXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZVN5c3RlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQxQjExRkY1OEE1MDA4Mjc0MEMg
LyogRE9NRmlsZVN5c3RlbS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NRmlsZVN5c3Rl
bS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDFDMTFGRjU4QTUwMDgy
NzQwQyAvKiBFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
bnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDFEMTFGRjU4QTUw
MDgyNzQwQyAvKiBFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbnRy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQxRTExRkY1OEE1MDA4Mjc0
MEMgLyogRW50cnlDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
bnRyeUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDFGMTFG
RjU4QTUwMDgyNzQwQyAvKiBFbnRyeUNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBFbnRyeUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJE
MjAxMUZGNThBNTAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4OTdBMkQyMTExRkY1OEE1MDA4Mjc0MEMgLyogRmlsZVN5c3RlbUNhbGxiYWNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1DYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQzQjExRkY2Mzg2MDA4Mjc0MEMgLyogRW50
cnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVudHJ5LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODk3QTJENDkxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbnRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDRBMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJENEIxMUZGNkM5MDAwODI3NDBDIC8qIEpTRW50cnlD
YWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudHJ5
Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ0QzExRkY2
QzkwMDA4Mjc0MEMgLyogSlNFbnRyeUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRW50cnlDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4OTdBMkQ0RDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JDYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDRFMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0Vy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDU1MTFGRjZDQTQw
MDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVTeXN0ZW1DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTg5N0EyRDU2MTFGRjZDQTQwMDgyNzQwQyAvKiBKU0ZpbGVTeXN0ZW1D
YWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVTeXN0ZW1D
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ1RDEyMDAwMEZG
MDA4Mjc0MEMgLyogRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXJy
b3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDVGMTIw
MDAxMjIwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEZpbGVTeXN0ZW1DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg5N0EyRDYwMTIwMDAxMjIwMDgyNzQwQyAvKiBGbGFncy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGbGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTdBMkQ2MTEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEZsYWdzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODk3QTJENzMxMjAw
MDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDc0MTIw
MDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWV0
YWRhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ3NTEyMDAwMTQ0
MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZXRhZGF0YUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTg5N0EyRDc2MTIwMDAxNDQwMDgyNzQwQyAvKiBNZXRhZGF0YUNhbGxiYWNrLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZXRhZGF0YUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODk3QTJEOEQxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZpbGVTeXN0ZW0u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ4RTEyMDAwMzVGMDA4Mjc0
MEMgLyogSlNET01GaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRE9NRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTdBMkQ5
MTEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ZsYWdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODk3QTJEOTIxMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNGbGFncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTdBMkQ5NTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01ldGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODk3QTJEOTYxMjAwMDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4OTdBMkQ5NzEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWV0YWRh
dGFDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5N0EyRDk4MTIw
MDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNNZXRhZGF0YUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg5ODhFMTBDMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iSXRlbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iSXRlbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4OUI1RUE5RjExRTgwMDNEMDBGMjM2N0UgLyogTGluZUVuZGlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5lRW5kaW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzE1LDYgKzExMzc1LDIwIEBACiAJ
CQkJMUFENTFBMTMwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJhY2tlci5jcHAgKi8sCiAJ
CQkJMUFENTFBMTIwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJhY2tlci5oICovLAogCQkJ
CTUxRkFGRTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLywK
KwkJCQk4OTdBMkQxOTExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5c3RlbS5jcHAgKi8sCisJ
CQkJODk3QTJEMUExMUZGNThBNTAwODI3NDBDIC8qIERPTUZpbGVTeXN0ZW0uaCAqLywKKwkJCQk4
OTdBMkQxQjExRkY1OEE1MDA4Mjc0MEMgLyogRE9NRmlsZVN5c3RlbS5pZGwgKi8sCisJCQkJODk3
QTJEMUMxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5LmNwcCAqLywKKwkJCQk4OTdBMkQxRDExRkY1
OEE1MDA4Mjc0MEMgLyogRW50cnkuaCAqLywKKwkJCQk4OTdBMkQzQjExRkY2Mzg2MDA4Mjc0MEMg
LyogRW50cnkuaWRsICovLAorCQkJCTg5N0EyRDFFMTFGRjU4QTUwMDgyNzQwQyAvKiBFbnRyeUNh
bGxiYWNrLmggKi8sCisJCQkJODk3QTJEMUYxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5Q2FsbGJh
Y2suaWRsICovLAorCQkJCTg5N0EyRDIwMTFGRjU4QTUwMDgyNzQwQyAvKiBFcnJvckNhbGxiYWNr
LmggKi8sCisJCQkJODk3QTJENUQxMjAwMDBGRjAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaWRs
ICovLAorCQkJCTg5N0EyRDIxMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2su
aCAqLywKKwkJCQk4OTdBMkQ1RjEyMDAwMTIyMDA4Mjc0MEMgLyogRmlsZVN5c3RlbUNhbGxiYWNr
LmlkbCAqLywKKwkJCQk4OTdBMkQ2MDEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaCAqLywKKwkJ
CQk4OTdBMkQ2MTEyMDAwMTIyMDA4Mjc0MEMgLyogRmxhZ3MuaWRsICovLAogCQkJCUM1ODVBNjk4
MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuY3BwICovLAogCQkJCUM1ODVBNjk5MTFENEZCM0Qw
MDRDM0U0QiAvKiBJREJBbnkuaCAqLywKIAkJCQlDNTg1QTY5QTExRDRGQjNEMDA0QzNFNEIgLyog
SURCQW55LmlkbCAqLywKQEAgLTExMzcxLDYgKzExNDQ1LDEwIEBACiAJCQkJNTExRjIzMTQwREMx
NjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCAqLywKIAkJCQk1MTFGMjMxNTBEQzE2
MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCAqLywKIAkJCQk1MTFGMjMxNjBE
QzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmggKi8sCisJCQkJODk3QTJENzMx
MjAwMDE0NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggKi8sCisJCQkJODk3QTJENzQxMjAwMDE0NDAw
ODI3NDBDIC8qIE1ldGFkYXRhLmlkbCAqLywKKwkJCQk4OTdBMkQ3NTEyMDAwMTQ0MDA4Mjc0MEMg
LyogTWV0YWRhdGFDYWxsYmFjay5oICovLAorCQkJCTg5N0EyRDc2MTIwMDAxNDQwMDgyNzQwQyAv
KiBNZXRhZGF0YUNhbGxiYWNrLmlkbCAqLywKIAkJCQk1MUE5MjY3ODBENTNGMDU3MDA2M0VDQzIg
LyogT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcCAqLywKIAkJCQk1MUE5MjY3OTBENTNGMDU3MDA2M0VD
QzIgLyogT3JpZ2luUXVvdGFNYW5hZ2VyLmggKi8sCiAJCQkJNTFBOTI2N0EwRDUzRjA1NzAwNjNF
Q0MyIC8qIE9yaWdpblVzYWdlUmVjb3JkLmNwcCAqLywKQEAgLTE0NzU3LDYgKzE0ODM1LDE4IEBA
CiAJCQkJQjU5REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICov
LAogCQkJCUI1OENFQjY4MTE5MTM2MDcwMDJBNjc5MCAvKiBKU0RhdGFiYXNlU3luYy5jcHAgKi8s
CiAJCQkJQjU4Q0VCNjcxMTkxMzYwNzAwMkE2NzkwIC8qIEpTRGF0YWJhc2VTeW5jLmggKi8sCisJ
CQkJODk3QTJEOEQxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgKi8sCisJ
CQkJODk3QTJEOEUxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5oICovLAorCQkJ
CTg5N0EyRDQ5MTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5LmNwcCAqLywKKwkJCQk4OTdBMkQ0
QTExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeS5oICovLAorCQkJCTg5N0EyRDRCMTFGRjZDOTAw
MDgyNzQwQyAvKiBKU0VudHJ5Q2FsbGJhY2suY3BwICovLAorCQkJCTg5N0EyRDRDMTFGRjZDOTAw
MDgyNzQwQyAvKiBKU0VudHJ5Q2FsbGJhY2suaCAqLywKKwkJCQk4OTdBMkQ0RDExRkY2QzkwMDA4
Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmNwcCAqLywKKwkJCQk4OTdBMkQ0RTExRkY2QzkwMDA4
Mjc0MEMgLyogSlNFcnJvckNhbGxiYWNrLmggKi8sCisJCQkJODk3QTJENTUxMUZGNkNBNDAwODI3
NDBDIC8qIEpTRmlsZVN5c3RlbUNhbGxiYWNrLmNwcCAqLywKKwkJCQk4OTdBMkQ1NjExRkY2Q0E0
MDA4Mjc0MEMgLyogSlNGaWxlU3lzdGVtQ2FsbGJhY2suaCAqLywKKwkJCQk4OTdBMkQ5MTEyMDAw
Mzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgKi8sCisJCQkJODk3QTJEOTIxMjAwMDM3NjAwODI3
NDBDIC8qIEpTRmxhZ3MuaCAqLywKIAkJCQlDNTg1QTY2NDExRDRGQjA3MDA0QzNFNEIgLyogSlNJ
REJBbnkuY3BwICovLAogCQkJCUM1ODVBNjY1MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkFueS5o
ICovLAogCQkJCUM1ODVBNjY2MTFENEZCMDcwMDRDM0U0QiAvKiBKU0lEQkRhdGFiYXNlRXJyb3Iu
Y3BwICovLApAQCAtMTQ3ODMsNiArMTQ4NzMsMTAgQEAKIAkJCQlDNTg1QTY3QjExRDRGQjA3MDA0
QzNFNEIgLyogSlNJREJTdWNjZXNzRXZlbnQuaCAqLywKIAkJCQlDNTg1QTY5NDExRDRGQjEzMDA0
QzNFNEIgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCAqLywKIAkJCQlDNTg1QTY5NTEx
RDRGQjEzMDA0QzNFNEIgLyogSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggKi8sCisJCQkJODk3
QTJEOTUxMjAwMDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGEuY3BwICovLAorCQkJCTg5N0EyRDk2
MTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhLmggKi8sCisJCQkJODk3QTJEOTcxMjAwMDNB
MDAwODI3NDBDIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgKi8sCisJCQkJODk3QTJEOTgxMjAw
MDNBMDAwODI3NDBDIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oICovLAogCQkJCTUxNEM3NjM1MENF
OTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCAqLywKIAkJCQlCQzgyNDMyNTBEMENFOEEy
MDA0NjBDOEYgLyogSlNTUUxFcnJvci5oICovLAogCQkJCUI1MjVBOTY0MTFDQTIzNDAwMDNBMjNB
OCAvKiBKU1NRTEV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0xOTg3MSw2ICsxOTk2NSwyMiBAQAogCQkJ
CTA4NEQwRTNEMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4NEQwRTNGMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXNDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDg1QjA1QzMxMUZBRTE2QzAwNEQ2NUY2IC8qIFNWR1Jlc291cmNl
c0N5Y2xlU29sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQyMzExRkY1OEE1MDA4Mjc0
MEMgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODk3QTJEMjYxMUZGNThB
NTAwODI3NDBDIC8qIEVudHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQyNzExRkY1OEE1
MDA4Mjc0MEMgLyogRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODk3QTJEMjkx
MUZGNThBNTAwODI3NDBDIC8qIEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTg5
N0EyRDJBMTFGRjU4QTUwMDgyNzQwQyAvKiBGaWxlU3lzdGVtQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTg5N0EyRDUwMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4OTdBMkQ1MjExRkY2QzkwMDA4Mjc0MEMgLyogSlNFbnRyeUNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ1NDExRkY2QzkwMDA4Mjc0MEMgLyogSlNFcnJvckNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ1ODExRkY2Q0E0MDA4Mjc0MEMgLyog
SlNGaWxlU3lzdGVtQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTg5N0EyRDYzMTIwMDAx
MjIwMDgyNzQwQyAvKiBGbGFncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODk3QTJENzcxMjAwMDE0
NDAwODI3NDBDIC8qIE1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTdBMkQ3OTEyMDAw
MTQ0MDA4Mjc0MEMgLyogTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJODk3
QTJEOTAxMjAwMDM1RjAwODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODk3QTJEOTQxMjAwMDM3NjAwODI3NDBDIC8qIEpTRmxhZ3MuaCBpbiBIZWFkZXJzICov
LAorCQkJCTg5N0EyRDlBMTIwMDAzQTAwMDgyNzQwQyAvKiBKU01ldGFkYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4OTdBMkQ5QzEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMjcwLDYgKzIyMzgwLDE2IEBACiAJCQkJMDg0RDBFM0Ux
MUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA4NkE0MDA2MTFGNkQ2QjcwMDJDRUM1MyAvKiBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODVCMDVDMjExRkFFMTZDMDA0RDY1RjYgLyogU1ZH
UmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODk3QTJEMjIxMUZG
NThBNTAwODI3NDBDIC8qIERPTUZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODk3
QTJEMjUxMUZGNThBNTAwODI3NDBDIC8qIEVudHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5
N0EyRDRGMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTg5N0EyRDUxMTFGRjZDOTAwMDgyNzQwQyAvKiBKU0VudHJ5Q2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJODk3QTJENTMxMUZGNkM5MDAwODI3NDBDIC8qIEpTRXJyb3JDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk4OTdBMkQ1NzExRkY2Q0E0MDA4Mjc0MEMgLyogSlNGaWxl
U3lzdGVtQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODk3QTJEOEYxMjAwMDM1RjAw
ODI3NDBDIC8qIEpTRE9NRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OTdBMkQ5
MzEyMDAwMzc2MDA4Mjc0MEMgLyogSlNGbGFncy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4OTdB
MkQ5OTEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk4OTdBMkQ5QjEyMDAwM0EwMDA4Mjc0MEMgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3IucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRl
eCAzNjNmZGM1NjljZGE0OWNhOWRhNmY3N2JiNGM0MDQ1NmNhZmQ2ODVjLi5hZGM0N2QwZGIzZjA5
YWZjYzNlNjAyMTBjZGE3YzI3MTQ4Zjk2NGQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvci5wbQpAQCAtMzQzLDYgKzM0MywxMSBAQCBzdWIgV0tfdWNmaXJzdAogICAg
IG15ICgkb2JqZWN0LCAkcGFyYW0pID0gQF87CiAgICAgbXkgJHJldCA9IHVjZmlyc3QoJHBhcmFt
KTsKICAgICAkcmV0ID1+IHMvWG1sL1hNTC8gaWYgJHJldCA9fiAvXlhtbFteYS16XS87CisKKyAg
ICAjIEZvciBIVE1MNSBGaWxlU3lzdGVtIEFQSSBGbGFncyBhdHRyaWJ1dGVzLgorICAgICRyZXQg
PX4gcy9eQ1JFQVRFL0NyZWF0ZS8gaWYgJHJldCA9fiAvXkNSRUFURSQvOworICAgICRyZXQgPX4g
cy9eRVhDTFVTSVZFL0V4Y2x1c2l2ZS8gaWYgJHJldCA9fiAvXkVYQ0xVU0lWRSQvOworCiAgICAg
cmV0dXJuICRyZXQ7CiB9CiAKQEAgLTM1Nyw2ICszNjIsMTEgQEAgc3ViIFdLX2xjZmlyc3QKICAg
ICAkcmV0ID1+IHMvalMvanMvIGlmICRyZXQgPX4gL15qUy87CiAgICAgJHJldCA9fiBzL3hNTC94
bWwvIGlmICRyZXQgPX4gL154TUwvOwogICAgICRyZXQgPX4gcy94U0xUL3hzbHQvIGlmICRyZXQg
PX4gL154U0xULzsKKworICAgICMgRm9yIEhUTUw1IEZpbGVTeXN0ZW0gQVBJIEZsYWdzIGF0dHJp
YnV0ZXMuCisgICAgJHJldCA9fiBzL15jUkVBVEUvaXNDcmVhdGUvIGlmICRyZXQgPX4gL15jUkVB
VEUkLzsKKyAgICAkcmV0ID1+IHMvXmVYQ0xVU0lWRS9pc0V4Y2x1c2l2ZS8gaWYgJHJldCA9fiAv
XmVYQ0xVU0lWRSQvOworCiAgICAgcmV0dXJuICRyZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAppbmRleCAxNzliMzAx
OTMyYjc4NjA4MTFlYzQxYjA5OWZmYmEwN2M1YTJlYTMyLi5kZGY3Y2RlNWMwMDZiNjU4ZWZmZTI5
ODg2NTliODBmYzVlMGQ1ODE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC0yOSw4ICsyOSwxMCBAQAogI2luY2x1ZGUg
IlRlc3RPYmouaCIKICNpbmNsdWRlICJXZWJET01JREJLZXkuaCIKICNpbmNsdWRlICJXZWJET01T
dHJpbmcuaCIKKyNpbmNsdWRlICJXZWJET01ib29sLmgiCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9u
SGFuZGxlci5oIgogI2luY2x1ZGUgIldlYk5hdGl2ZUV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJib29sLmgiCiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIApAQCAtMTc2LDYgKzE3OCw3MCBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFRlc3RPYmpB
dHRyKGNvbnN0IFdlYkRPTVRlc3RPYmomIG5ld1Rlc3RPYmpBdHRyKQogICAgIGltcGwoKS0+c2V0
VGVzdE9iakF0dHIodG9XZWJDb3JlKG5ld1Rlc3RPYmpBdHRyKSk7CiB9CiAKK1dlYkRPTVRlc3RP
YmogV2ViRE9NVGVzdE9iajo6WE1MT2JqQXR0cigpIGNvbnN0Cit7CisgICAgaWYgKCFpbXBsKCkp
CisgICAgICAgIHJldHVybiBXZWJET01UZXN0T2JqKCk7CisKKyAgICByZXR1cm4gdG9XZWJLaXQo
V1RGOjpnZXRQdHIoaW1wbCgpLT54bWxPYmpBdHRyKCkpKTsKK30KKwordm9pZCBXZWJET01UZXN0
T2JqOjpzZXRYTUxPYmpBdHRyKGNvbnN0IFdlYkRPTVRlc3RPYmomIG5ld1hNTE9iakF0dHIpCit7
CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+c2V0WE1M
T2JqQXR0cih0b1dlYkNvcmUobmV3WE1MT2JqQXR0cikpOworfQorCitpbnQgV2ViRE9NVGVzdE9i
ajo6SFRNTExvbmdBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gaW1wbCgpLT5odG1sTG9uZ0F0dHIoKTsKK30KKwordm9pZCBX
ZWJET01UZXN0T2JqOjpzZXRIVE1MTG9uZ0F0dHIoaW50IG5ld0hUTUxMb25nQXR0cikKK3sKKyAg
ICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgpLT5zZXRIVE1MTG9u
Z0F0dHIobmV3SFRNTExvbmdBdHRyKTsKK30KKworV2ViRE9NYm9vbCBXZWJET01UZXN0T2JqOjpD
UkVBVEUoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gV2ViRE9N
Ym9vbCgpOworCisgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+aXNDcmVh
dGUoKSkpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldENSRUFURShjb25zdCBXZWJET01i
b29sJiBuZXdDUkVBVEUpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGltcGwoKS0+c2V0Q3JlYXRlKHRvV2ViQ29yZShuZXdDUkVBVEUpKTsKK30KKworV2ViRE9N
Ym9vbCBXZWJET01UZXN0T2JqOjpFWENMVVNJVkUoKSBjb25zdAoreworICAgIGlmICghaW1wbCgp
KQorICAgICAgICByZXR1cm4gV2ViRE9NYm9vbCgpOworCisgICAgcmV0dXJuIHRvV2ViS2l0KFdU
Rjo6Z2V0UHRyKGltcGwoKS0+aXNFeGNsdXNpdmUoKSkpOworfQorCit2b2lkIFdlYkRPTVRlc3RP
Ymo6OnNldEVYQ0xVU0lWRShjb25zdCBXZWJET01ib29sJiBuZXdFWENMVVNJVkUpCit7CisgICAg
aWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+c2V0RXhjbHVzaXZl
KHRvV2ViQ29yZShuZXdFWENMVVNJVkUpKTsKK30KKwogV2ViRE9NU3RyaW5nIFdlYkRPTVRlc3RP
Ymo6OnJlZmxlY3RlZFN0cmluZ0F0dHIoKSBjb25zdAogewogICAgIGlmICghaW1wbCgpKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmou
aCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5k
ZXggMDljNzdkYjc1MmY1N2MzMDU2ZmFjYjc4NzQ4YjVlNmE0ZTIwMGM1Mi4uNWQ3ZDI0NGE5Y2Fj
MDM2N2JkMmMzYTE5OGNhMjA2ODllZDIwZDFkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC0zNCw2ICszNCw3IEBAIGNsYXNz
IFdlYkRPTUV2ZW50TGlzdGVuZXI7CiBjbGFzcyBXZWJET01JREJLZXk7CiBjbGFzcyBXZWJET01T
dHJpbmc7CiBjbGFzcyBXZWJET01UZXN0T2JqOworY2xhc3MgV2ViRE9NYm9vbDsKIAogY2xhc3Mg
V2ViRE9NVGVzdE9iaiA6IHB1YmxpYyBXZWJET01PYmplY3QgewogcHVibGljOgpAQCAtNjksNiAr
NzAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RyaW5nQXR0cihjb25zdCBXZWJET01TdHJp
bmcmKTsKICAgICBXZWJET01UZXN0T2JqIHRlc3RPYmpBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRUZXN0T2JqQXR0cihjb25zdCBXZWJET01UZXN0T2JqJik7CisgICAgV2ViRE9NVGVzdE9iaiBY
TUxPYmpBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRYTUxPYmpBdHRyKGNvbnN0IFdlYkRPTVRl
c3RPYmomKTsKKyAgICBpbnQgSFRNTExvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRIVE1M
TG9uZ0F0dHIoaW50KTsKKyAgICBXZWJET01ib29sIENSRUFURSgpIGNvbnN0OworICAgIHZvaWQg
c2V0Q1JFQVRFKGNvbnN0IFdlYkRPTWJvb2wmKTsKKyAgICBXZWJET01ib29sIEVYQ0xVU0lWRSgp
IGNvbnN0OworICAgIHZvaWQgc2V0RVhDTFVTSVZFKGNvbnN0IFdlYkRPTWJvb2wmKTsKICAgICBX
ZWJET01TdHJpbmcgcmVmbGVjdGVkU3RyaW5nQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVm
bGVjdGVkU3RyaW5nQXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsKICAgICBpbnQgcmVmbGVjdGVk
SW50ZWdyYWxBdHRyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCBiNGI2Nzg3NmNk
MjBmZmU5ZTE0MDZmZDIzNGRkMWVjNjc5OWJhY2RhLi5kNjEwMGE0NTQ5Zjk3MWRiNGY0MWUzMjlj
ODhkN2FlMzEyNTJiN2FiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RE9NQmluZGluZy5oIgorI2luY2x1ZGUgImJvb2wuaCIKICNpbmNs
dWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2Vi
S2l0RE9NSURCS2V5LmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTUlEQktleVByaXZhdGUu
aCIKQEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0T2Jq
LmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTVRlc3RPYmpQcml2YXRlLmgiCisjaW5jbHVk
ZSAid2Via2l0L1dlYktpdERPTWJvb2wuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NYm9v
bFByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0
cHJpdmF0ZS5oIgogCkBAIC00NzUsNiArNDc4LDk0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Rlc3Rfb2JqX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaioK
ICAgICBpdGVtLT5zZXRUZXN0T2JqQXR0cihjb252ZXJ0ZWRfdmFsdWUpOwogfQogCitXZWJLaXRE
T01UZXN0T2JqKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3htbF9vYmpfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpU
ZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBQYXNzUmVmUHRyPFdlYkNv
cmU6OlRlc3RPYmo+IGdfcmVzID0gV1RGOjpnZXRQdHIoaXRlbS0+eG1sT2JqQXR0cigpKTsKKyAg
ICBXZWJLaXRET01UZXN0T2JqKiAgcmVzID0gc3RhdGljX2Nhc3Q8V2ViS2l0RE9NVGVzdE9iaiog
PihXZWJLaXQ6OmtpdChnX3Jlcy5nZXQoKSkpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQK
K3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3htbF9vYmpfYXR0cihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBXZWJLaXRET01UZXN0T2JqKiAgdmFsdWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2Vi
Q29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1cm5f
aWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGNvbnZlcnRlZF92YWx1ZSA9
IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRfdmFs
dWUpOworICAgIGl0ZW0tPnNldFhNTE9iakF0dHIoY29udmVydGVkX3ZhbHVlKTsKK30KKworZ2xv
bmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2h0bWxfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmog
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdsb25nIHJlcyA9IGl0ZW0tPmh0bWxM
b25nQXR0cigpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2h0bWxfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVl
KQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPnNldEhUTUxMb25nQXR0cih2YWx1ZSk7Cit9CisKK1dl
YktpdERPTWJvb2wqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfY3JlYXRlKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RP
YmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6
Ym9vbD4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVtLT5pc0NyZWF0ZSgpKTsKKyAgICBXZWJLaXRE
T01ib29sKiAgcmVzID0gc3RhdGljX2Nhc3Q8V2ViS2l0RE9NYm9vbCogPihXZWJLaXQ6OmtpdChn
X3Jlcy5nZXQoKSkpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X2NyZWF0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01ib29sKiAg
dmFsdWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2Vi
Q29yZTo6Ym9vbCAqIGNvbnZlcnRlZF92YWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAg
Z19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRfdmFsdWUpOworICAgIGl0ZW0tPnNldENyZWF0ZShj
b252ZXJ0ZWRfdmFsdWUpOworfQorCitXZWJLaXRET01ib29sKiAKK3dlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2V4Y2x1c2l2ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChz
ZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKKyAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OmJvb2w+IGdfcmVzID0gV1RGOjpnZXRQdHIoaXRl
bS0+aXNFeGNsdXNpdmUoKSk7CisgICAgV2ViS2l0RE9NYm9vbCogIHJlcyA9IHN0YXRpY19jYXN0
PFdlYktpdERPTWJvb2wqID4oV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkpKTsKKyAgICByZXR1cm4g
cmVzOworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9leGNsdXNpdmUoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYm9vbCogIHZhbHVlKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmJvb2wgKiBjb252ZXJ0ZWRf
dmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVy
dGVkX3ZhbHVlKTsKKyAgICBpdGVtLT5zZXRFeGNsdXNpdmUoY29udmVydGVkX3ZhbHVlKTsKK30K
KwogZ2NoYXIqIAogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX3N0cmluZ19hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CkBAIC05MzIsNiArMTAyMywxMCBAQCBlbnVtIHsK
ICAgICBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSLAogICAgIFBST1BfU1RSSU5HX0FUVFIs
CiAgICAgUFJPUF9URVNUX09CSl9BVFRSLAorICAgIFBST1BfWE1MX09CSl9BVFRSLAorICAgIFBS
T1BfSFRNTF9MT05HX0FUVFIsCisgICAgUFJPUF9DUkVBVEUsCisgICAgUFJPUF9FWENMVVNJVkUs
CiAgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCiAgICAgUFJPUF9SRUZMRUNURURfSU5U
RUdSQUxfQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCkBAIC0xMDAwLDYg
KzEwOTUsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb24KICAgICAgICAgY29yZVNlbGYtPnNl
dFN0cmluZ0F0dHIoV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmco
dmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfSFRNTF9MT05H
X0FUVFI6CisgICAgeworICAgICAgICBjb3JlU2VsZi0+c2V0SFRNTExvbmdBdHRyKChnX3ZhbHVl
X2dldF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9Q
X1JFRkxFQ1RFRF9TVFJJTkdfQVRUUjoKICAgICB7CiAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0ciwgV2ViQ29y
ZTo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CkBAIC0xMTU1
LDYgKzEyNTUsMjkgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmEKICAgICAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0KCkpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQorICAgIGNhc2UgUFJPUF9YTUxfT0JKX0FUVFI6CisgICAgeworICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6VGVzdE9iaj4gcHRyID0gY29yZVNlbGYtPnhtbE9iakF0dHIoKTsKKyAgICAg
ICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0KCkpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9IVE1MX0xPTkdfQVRUUjoKKyAgICB7
CisgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5odG1sTG9uZ0F0dHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfQ1JFQVRFOgorICAgIHsK
KyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OmJvb2w+IHB0ciA9IGNvcmVTZWxmLT5pc0NyZWF0ZSgp
OworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQo
KSkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX0VYQ0xVU0lWRToKKyAg
ICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpib29sPiBwdHIgPSBjb3JlU2VsZi0+aXNFeGNs
dXNpdmUoKTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChw
dHIuZ2V0KCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9SRUZMRUNU
RURfU1RSSU5HX0FUVFI6CiAgICAgewogICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVl
LCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0cikpKTsKQEAgLTEzNTUsNiArMTQ3OCwzNiBA
QCBHX01BWFVJTlQ2NCwgLyogbWluICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwgLyog
Z29iamVjdCB0eXBlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfWE1MX09CSl9BVFRSLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgieG1sLW9iai1hdHRyIiwgLyog
bmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9vYmpfeG1sLW9iai1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24g
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlYWQtd3JpdGUgIFdlYktpdERPTVRlc3RPYmoqICBUZXN0T2JqLnhtbC1vYmotYXR0
ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9ET01fVEVTVF9PQkosIC8qIGdvYmplY3QgdHlwZSAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9Q
X0hUTUxfTE9OR19BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX2xvbmcoImh0bWwtbG9uZy1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
aHRtbC1sb25nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAg
Z2xvbmcgVGVzdE9iai5odG1sLWxvbmctYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGgg
c29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTkxPTkcsIC8qIG1pbiAqLworR19N
QVhMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURX
UklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9DUkVBVEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJjcmVh
dGUiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9jcmVhdGUiLCAvKiBzaG9ydCBkZXNjcmlwdGlv
biAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVhZC13cml0ZSAgV2ViS2l0RE9NYm9vbCogIFRlc3RPYmouY3JlYXRlIiwgLyog
bG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9UWVBFX0RPTV9CT09MLCAvKiBnb2JqZWN0IHR5cGUgKi8KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENs
YXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FWENMVVNJVkUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0
KCJleGNsdXNpdmUiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9leGNsdXNpdmUiLCAvKiBzaG9y
dCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgV2ViS2l0RE9NYm9vbCogIFRlc3RPYmou
ZXhjbHVzaXZlIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVm
ZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RPTV9CT09MLCAvKiBnb2JqZWN0IHR5cGUgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ29iamVjdENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJyZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBu
YW1lICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBzaG9ydCBkZXNj
cmlwdGlvbiAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCBiYWYyNzhjZjk3ZTI2ZmNlYWJmMTMyZWY4
NGUxMGU4Mjg5ZmU3YTE1Li43MTI3MmQ5NTdmMDIwODNkNTIzMjhmMTYyM2QyM2Y1ZTM4NjEwNDE1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouaApAQCAtMTYzLDYgKzE2MywzMCBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF90ZXN0X29ial9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogV0VCS0lUX0FQ
SSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF90ZXN0X29ial9hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqICB2YWx1ZSk7CiAKK1dFQktJVF9BUEkgV2Vi
S2l0RE9NVGVzdE9iaiogCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF94bWxfb2JqX2F0dHIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfeG1sX29ial9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRl
c3RPYmoqICB2YWx1ZSk7CisKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X2h0bWxfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2h0bWxfbG9uZ19hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKKworV0VCS0lUX0FQSSBXZWJLaXRET01ib29sKiAK
K3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2NyZWF0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jcmVhdGUoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYm9vbCogIHZhbHVlKTsKKworV0VCS0lUX0FQSSBX
ZWJLaXRET01ib29sKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2V4Y2x1c2l2ZShXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9leGNsdXNpdmUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYm9vbCogIHZh
bHVlKTsKKwogV0VCS0lUX0FQSSBnY2hhciogCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZs
ZWN0ZWRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGExMzdlYTE1ZmE2
NzNiMDlmZGFkMTA4MzE2ZTBmZjU4ZTUyMDhjN2YuLmE1YTE5OTJlNWVjNzI2ODQxM2YxNzE2NzE5
YjE1NjBlZDE3NjViYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcApAQCAtMjgsMTEgKzI4LDEzIEBACiAjaW5jbHVkZSAiSlNFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2suaCIKICNpbmNsdWRlICJKU1Rlc3RPYmou
aCIKKyNpbmNsdWRlICJKU2Jvb2wuaCIKICNpbmNsdWRlICJKU2xvZy5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVkZSAiYm9vbC5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTTnVtYmVyQ2VsbC5oPgpAQCAtNTIsNyArNTQsNyBAQCBB
U1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTVGVzdE9iaik7CiAjZGVmaW5lIFRIVU5LX0dFTkVS
QVRPUihnZW5lcmF0b3IpCiAjZW5kaWYKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE9ialRhYmxlVmFsdWVzWzMyXSA9CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqVGFibGVWYWx1ZXNbMzZdID0KIHsKICAgICB7ICJyZWFkT25seUludEF0dHIiLCBEb250
RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqUmVhZE9ubHlJbnRBdHRyKSwgKGludHB0cl90KTAgVEhVTktf
R0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVhZE9ubHlTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVS
QVRPUigwKSB9LApAQCAtNjIsNiArNjQsMTAgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdE9ialRhYmxlVmFsdWVzWzMyXSA9CiAgICAgeyAidW5zaWduZWRMb25nTG9uZ0F0dHIi
LCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVz
dE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInN0
cmluZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqU3RyaW5nQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJ0ZXN0T2JqQXR0ciIs
IERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqVGVzdE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqVGVzdE9i
akF0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAiWE1MT2JqQXR0ciIsIERvbnREZWxl
dGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqWE1MT2JqQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAorICAgIHsgIkhUTUxMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSFRN
TExvbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakhUTUxMb25nQXR0ciBUSFVOS19HRU5F
UkFUT1IoMCkgfSwKKyAgICB7ICJDUkVBVEUiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNyZWF0ZSksIChpbnRw
dHJfdClzZXRKU1Rlc3RPYmpDcmVhdGUgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAiRVhD
TFVTSVZFIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpFeGNsdXNpdmUpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2Jq
RXhjbHVzaXZlIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0
dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJy
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0
ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIgVEhVTktfR0VO
RVJBVE9SKDApIH0sCiAgICAgeyAicmVmbGVjdGVkQm9vbGVhbkF0dHIiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alJlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZEJv
b2xlYW5BdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LApAQCAtOTUsNyArMTAxLDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzWzMyXSA9CiB9OwogCiAj
dW5kZWYgVEhVTktfR0VORVJBVE9SCi1zdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFi
bGUgSlNUZXN0T2JqVGFibGUgPSB7IDY4LCA2MywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsK
K3N0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsg
MTMyLCAxMjcsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBj
b25zdHJ1Y3RvciAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihn
ZW5lcmF0b3IpICwgZ2VuZXJhdG9yCkBAIC0zNDUsNiArMzUxLDQyIEBAIEpTVmFsdWUganNUZXN0
T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJ
ZGVudGlmaWVyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorSlNWYWx1ZSBqc1Rlc3RPYmpYTUxP
YmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2Jq
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVz
dE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Cisg
ICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBXVEY6OmdldFB0cihpbXAtPnhtbE9iakF0dHIoKSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK0pTVmFsdWUganNUZXN0T2JqSFRNTExvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9i
aio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihl
eGVjLCBpbXAtPmh0bWxMb25nQXR0cigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1Zh
bHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlz
LT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wLT5pc0NyZWF0ZSgpKSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworSlNWYWx1ZSBqc1Rlc3RPYmpFeGNsdXNpdmUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkp
OworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2Fz
dDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRv
SlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcC0+aXNF
eGNsdXNpdmUoKSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC01OTMsNiArNjM1LDM0IEBA
IHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1CiAgICAgaW1wLT5zZXRUZXN0T2JqQXR0cih0b1Rlc3RP
YmoodmFsdWUpKTsKIH0KIAordm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7Cisg
ICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CisgICAgaW1wLT5zZXRYTUxPYmpBdHRyKHRvVGVzdE9iaih2YWx1ZSkpOworfQorCit2b2lk
IHNldEpTVGVzdE9iakhUTUxMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0SFRN
TExvbmdBdHRyKHZhbHVlLnRvSW50MzIoZXhlYykpOworfQorCit2b2lkIHNldEpTVGVzdE9iakNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+
KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0Q3JlYXRlKHRvYm9vbCh2YWx1ZSkpOwor
fQorCit2b2lkIHNldEpTVGVzdE9iakV4Y2x1c2l2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGlt
cCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+
c2V0RXhjbHVzaXZlKHRvYm9vbCh2YWx1ZSkpOworfQorCiB2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKaW5kZXggMzNlMmVhYzI5ZmI1NTlkYzIyZjJlNmI5NjZlMWVmOTg5OTkw
OWMwMi4uYjI2NDhlNmFhNDYzNTI2MDJjZWE5NWZkNDhkMGVlNTY3YzcwODEyZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTEzNiw2ICsxMzYs
MTQgQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnQKIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpK
U1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNW
YWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVl
IGpzVGVzdE9iakhUTUxMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakhUTUxMb25nQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVl
IGpzVGVzdE9iakNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlND
OjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakV4
Y2x1c2l2ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakV4Y2x1c2l2ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggYTk2YjQ5OTVhZjdhMmVlYjRmOTUzNDQ0ZmQx
YjRhZTM5MWE1N2NjNi4uMzYyN2ExMzJjNGZhN2Y0NzYzYmI1ZTBlNGZjNjg3ZWJkZWEwYTZlNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgK
QEAgLTMwLDYgKzMwLDcgQEAKIAogQGNsYXNzIERPTUlEQktleTsKIEBjbGFzcyBET01UZXN0T2Jq
OworQGNsYXNzIERPTWJvb2w7CiBAY2xhc3MgRE9NbG9nOwogQGNsYXNzIE5TU3RyaW5nOwogQHBy
b3RvY29sIERPTUV2ZW50TGlzdGVuZXI7CkBAIC02Miw2ICs2MywxNCBAQCBlbnVtIHsKIC0gKHZv
aWQpc2V0U3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdTdHJpbmdBdHRyOwogLSAoRE9NVGVzdE9i
aiAqKXRlc3RPYmpBdHRyOwogLSAodm9pZClzZXRUZXN0T2JqQXR0cjooRE9NVGVzdE9iaiAqKW5l
d1Rlc3RPYmpBdHRyOworLSAoRE9NVGVzdE9iaiAqKVhNTE9iakF0dHI7CistICh2b2lkKXNldFhN
TE9iakF0dHI6KERPTVRlc3RPYmogKiluZXdYTUxPYmpBdHRyOworLSAoaW50KUhUTUxMb25nQXR0
cjsKKy0gKHZvaWQpc2V0SFRNTExvbmdBdHRyOihpbnQpbmV3SFRNTExvbmdBdHRyOworLSAoRE9N
Ym9vbCAqKUNSRUFURTsKKy0gKHZvaWQpc2V0Q1JFQVRFOihET01ib29sICopbmV3Q1JFQVRFOwor
LSAoRE9NYm9vbCAqKUVYQ0xVU0lWRTsKKy0gKHZvaWQpc2V0RVhDTFVTSVZFOihET01ib29sICop
bmV3RVhDTFVTSVZFOwogLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJpbmdBdHRyOwogLSAodm9p
ZClzZXRSZWZsZWN0ZWRTdHJpbmdBdHRyOihOU1N0cmluZyAqKW5ld1JlZmxlY3RlZFN0cmluZ0F0
dHI7CiAtIChpbnQpcmVmbGVjdGVkSW50ZWdyYWxBdHRyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDk5YzNjYzY1NWYxMWNlZDFm
MzMwNWZlOWFlN2ExNjE4ODdhOGZiMGYuLmI5M2I0ZmE2YTI2ZTQ0ZTc0YmRmZDc3ODU2YWVhNjgw
MTcxN2ExMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmoubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NU3R5bGVTaGVldEludGVybmFsLmgiCiAjaW1wb3J0ICJET01UZXN0T2Jq
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTWJvb2xJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NbG9n
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkV2ZW50TGlzdGVuZXIuaCIKICNpbXBvcnQgIkV4Y2VwdGlv
bkhhbmRsZXJzLmgiCkBAIC01MCw2ICs1MSw3IEBACiAjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgog
I2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFBy
aXZhdGUuaCIKKyNpbXBvcnQgImJvb2wuaCIKICNpbXBvcnQgImxvZy5oIgogI2ltcG9ydCA8d3Rm
L0dldFB0ci5oPgogCkBAIC0xNTQsNiArMTU2LDYwIEBACiAgICAgSU1QTC0+c2V0VGVzdE9iakF0
dHIoY29yZShuZXdUZXN0T2JqQXR0cikpOwogfQogCistIChET01UZXN0T2JqICopWE1MT2JqQXR0
cgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnhtbE9iakF0dHIoKSkpOworfQorCistICh2b2lkKXNl
dFhNTE9iakF0dHI6KERPTVRlc3RPYmogKiluZXdYTUxPYmpBdHRyCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIEFTU0VSVChuZXdYTUxPYmpBdHRyKTsK
KworICAgIElNUEwtPnNldFhNTE9iakF0dHIoY29yZShuZXdYTUxPYmpBdHRyKSk7Cit9CisKKy0g
KGludClIVE1MTG9uZ0F0dHIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmh0bWxMb25nQXR0cigpOworfQorCistICh2b2lkKXNl
dEhUTUxMb25nQXR0cjooaW50KW5ld0hUTUxMb25nQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRIVE1MTG9uZ0F0dHIobmV3SFRN
TExvbmdBdHRyKTsKK30KKworLSAoRE9NYm9vbCAqKUNSRUFURQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElN
UEwtPmlzQ3JlYXRlKCkpKTsKK30KKworLSAodm9pZClzZXRDUkVBVEU6KERPTWJvb2wgKiluZXdD
UkVBVEUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
QVNTRVJUKG5ld0NSRUFURSk7CisKKyAgICBJTVBMLT5zZXRDcmVhdGUoY29yZShuZXdDUkVBVEUp
KTsKK30KKworLSAoRE9NYm9vbCAqKUVYQ0xVU0lWRQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmlz
RXhjbHVzaXZlKCkpKTsKK30KKworLSAodm9pZClzZXRFWENMVVNJVkU6KERPTWJvb2wgKiluZXdF
WENMVVNJVkUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgQVNTRVJUKG5ld0VYQ0xVU0lWRSk7CisKKyAgICBJTVBMLT5zZXRFeGNsdXNpdmUoY29yZShu
ZXdFWENMVVNJVkUpKTsKK30KKwogLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJpbmdBdHRyCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBiMWYwMGEyYTk2NDRiNmM5ZjE5MGQ2
ZGE4YzA2ZGVkYTE5YjY1Njk4Li4wNzA1MjZmMDE0YjBkMjAzODEyMzgwNGJiZjhlMmU2MmZmZDI1
OGMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNDEs
NiArNDEsMTMgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgICAgICAgICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBUZXN0T2JqICAgICAg
ICAgICAgICAgICAgdGVzdE9iakF0dHI7CiAKKyAgICAgICAgSlMsIFY4CisgICAgICAgIC8vIFdL
X3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCisgICAgICAgIGF0dHJpYnV0
ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgWE1MT2JqQXR0cjsKKyAgICAgICAgYXR0cmlidXRl
IGxvbmcgICAgICAgICAgICAgICAgICAgICBIVE1MTG9uZ0F0dHI7CisgICAgICAgIGF0dHJpYnV0
ZSBib29sICAgICAgICAgICAgICAgICAgICAgQ1JFQVRFOworICAgICAgICBhdHRyaWJ1dGUgYm9v
bCAgICAgICAgICAgICAgICAgICAgIEVYQ0xVU0lWRTsKKwogICAgICAgICAvLyBSZWZsZWN0ZWQg
RE9NIGF0dHJpYnV0ZXMKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmVm
bGVjdGVkU3RyaW5nQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHJlZmxl
Y3RlZEludGVncmFsQXR0cjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCmluZGV4IGRhOWU2NjBiYWFlYTEzYzcyNDZiZjcyYmJjZThhNDE1ZGY3YWQz
NzkuLjNhYTk0ODJlNDRiZDBkNTYwNTI4NzE4ZjAyNWUyZTNhNmQxZjE4YjUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5o
IgogI2luY2x1ZGUgIlY4VGVzdENhbGxiYWNrLmgiCisjaW5jbHVkZSAiVjhib29sLmgiCiAjaW5j
bHVkZSAiVjhsb2cuaCIKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTE1NSw2ICsxNTYsNzAgQEAgc3RhdGljIHZvaWQgdGVzdE9iakF0dHJB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHUK
ICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gWE1MT2JqQXR0
ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5YTUxPYmpBdHRyLl9n
ZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOworICAgIHJldHVybiB0b1Y4KGltcC0+eG1sT2JqQXR0cigpKTsKK30KKworc3RhdGljIHZv
aWQgWE1MT2JqQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorewor
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouWE1MT2JqQXR0ci5fc2V0Iik7CisgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBUZXN0T2Jq
KiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAgaW1wLT5zZXRY
TUxPYmpBdHRyKFdURjo6Z2V0UHRyKHYpKTsKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gSFRNTExvbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLkhUTUxMb25nQXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVn
ZXI6Ok5ldyhpbXAtPmh0bWxMb25nQXR0cigpKTsKK30KKworc3RhdGljIHZvaWQgSFRNTExvbmdB
dHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5IVE1MTG9uZ0F0dHIuX3NldCIpOworICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50IHYgPSB0b0ludDMy
KHZhbHVlKTsKKyAgICBpbXAtPnNldEhUTUxMb25nQXR0cih2KTsKKyAgICByZXR1cm47Cit9CisK
K3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gQ1JFQVRFQXR0ckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLkNSRUFURS5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdG9WOChpbXAt
PmlzQ3JlYXRlKCkpOworfQorCitzdGF0aWMgdm9pZCBDUkVBVEVBdHRyU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLkNSRUFU
RS5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKKyAgICBib29sKiB2ID0gVjhib29sOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOGJv
b2w6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Cisg
ICAgaW1wLT5zZXRDcmVhdGUoV1RGOjpnZXRQdHIodikpOworICAgIHJldHVybjsKK30KKworc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBFWENMVVNJVkVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmouRVhDTFVTSVZFLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB0b1Y4KGlt
cC0+aXNFeGNsdXNpdmUoKSk7Cit9CisKK3N0YXRpYyB2b2lkIEVYQ0xVU0lWRUF0dHJTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouRVhDTFVTSVZFLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGJvb2wqIHYgPSBWOGJvb2w6Okhhc0luc3RhbmNlKHZh
bHVlKSA/IFY4Ym9vbDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1
ZSkpIDogMDsKKyAgICBpbXAtPnNldEV4Y2x1c2l2ZShXVEY6OmdldFB0cih2KSk7CisgICAgcmV0
dXJuOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZFN0cmluZ0F0
dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3Ry
aW5nQXR0ci5fZ2V0Iik7CkBAIC0xMDAyLDYgKzEwNjcsMTQgQEAgc3RhdGljIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJzdHJpbmdBdHRyIiwgVGVzdE9i
akludGVybmFsOjpzdHJpbmdBdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpzdHJpbmdB
dHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd0ZXN0T2Jq
QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidGVzdE9iakF0dHIi
LCBUZXN0T2JqSW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFs
Ojp0ZXN0T2JqQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6
OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0
cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0
ZSAnWE1MT2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsiWE1M
T2JqQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJ
bnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0
dHJpYnV0ZSAnSFRNTExvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisg
ICAgeyJIVE1MTG9uZ0F0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OkhUTUxMb25nQXR0ckF0dHJHZXR0
ZXIsIFRlc3RPYmpJbnRlcm5hbDo6SFRNTExvbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCisgICAgLy8gQXR0cmlidXRlICdDUkVBVEUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnJykKKyAgICB7IkNSRUFURSIsIFRlc3RPYmpJbnRlcm5hbDo6Q1JFQVRFQXR0ckdldHRlciwg
VGVzdE9iakludGVybmFsOjpDUkVBVEVBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAv
LyBBdHRyaWJ1dGUgJ0VYQ0xVU0lWRScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQor
ICAgIHsiRVhDTFVTSVZFIiwgVGVzdE9iakludGVybmFsOjpFWENMVVNJVkVBdHRyR2V0dGVyLCBU
ZXN0T2JqSW50ZXJuYWw6OkVYQ0xVU0lWRUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAg
IC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkU3RyaW5nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4
dEF0dHI6ICdSZWZsZWN0JykKICAgICB7InJlZmxlY3RlZFN0cmluZ0F0dHIiLCBUZXN0T2JqSW50
ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJl
ZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ3JlZmxlY3RlZEludGVncmFsQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6
ICdSZWZsZWN0JykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjYyNTVm
NzkwNGNlY2NlMTY0OGViZmI3MTA1MzE2NDc3MjQ3MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NRmlsZVN5c3RlbS5oIgorCisjaWYgRU5BQkxFKEZJTEVf
U1lTVEVNKQorCisjaW5jbHVkZSAiRW50cnkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
T01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiByb290UGF0aCwgbG9uZyBsb25nIHNpemUpCisgICAgOiBtX3Jvb3RQYXRoKHJvb3RQYXRo
KQorICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX3NpemUoc2l6ZSkKK3sKK30KKworUGFzc1Jl
ZlB0cjxFbnRyeT4gRE9NRmlsZVN5c3RlbTo6cm9vdCgpCit7CisgICAgcmV0dXJuIEVudHJ5Ojpj
cmVhdGUodGhpcywgIi8iKTsKK30KKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJM
RShGSUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVt
LmggYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3M2NmYTQz
M2Y3NWY2ZGI3ZmQ5ZTdkM2JmZmE1YTZjY2IwOTIzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERPTUZp
bGVTeXN0ZW1faAorI2RlZmluZSBET01GaWxlU3lzdGVtX2gKKworI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEVudHJ5OworCitjbGFzcyBET01GaWxlU3lzdGVtIDogcHVibGljIFJlZkNv
dW50ZWQ8RE9NRmlsZVN5c3RlbT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TUZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcm9v
dFBhdGgsIGxvbmcgbG9uZyBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBET01GaWxlU3lzdGVtKG5hbWUsIHJvb3RQYXRoLCBzaXplKSk7CisgICAgfQorCisgICAgY29u
c3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgUGFzc1JlZlB0
cjxFbnRyeT4gcm9vdCgpOworCitwcml2YXRlOgorICAgIERPTUZpbGVTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJvb3RQYXRoLCBsb25nIGxvbmcgc2l6ZSk7CisKKyAg
ICBTdHJpbmcgbV9yb290UGF0aDsKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIGxvbmcgbG9uZyBt
X3NpemU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lT
VEVNKQorCisjZW5kaWYgLy8gRE9NRmlsZVN5c3RlbV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvRE9NRmlsZVN5c3RlbS5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvRE9NRmlsZVN5c3RlbS5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDI0MWM0YTZmYmQyMmYxOTIxMWRhYzEzNzEyNGE0YjdkMWY4NTQwNgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9ET01GaWxlU3lzdGVtLmlkbApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENv
bmRpdGlvbmFsPUZJTEVfU1lTVEVNCisgICAgXSBET01GaWxlU3lzdGVtIHsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRW50cnkgcm9vdDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0Vu
dHJ5LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9FbnRyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ4NDhhNzI0
NTMxMTEyOTI4MGZlOTU4NzAwYTFkN2MxMjI0OGFmZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9FbnRyeS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRW50cnkuaCIKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUg
IkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJFbnRyeUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
RXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIk1ldGFkYXRhQ2FsbGJhY2suaCIKKyNpbmNsdWRl
ICJWb2lkQ2FsbGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFbnRyeTo6RW50cnko
UGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBmaWxlU3lzdGVtLCBjb25zdCBTdHJpbmcmIGZ1bGxQ
YXRoKQorICAgIDogbV9maWxlU3lzdGVtKGZpbGVTeXN0ZW0pCisgICAgLCBtX2Z1bGxQYXRoKGZ1
bGxQYXRoKQoreworICAgIGludCBpbmRleCA9IGZ1bGxQYXRoLnJldmVyc2VGaW5kKCIvIik7Cisg
ICAgaWYgKGluZGV4ICE9IC0xKQorICAgICAgICBtX25hbWUgPSBmdWxsUGF0aC5zdWJzdHJpbmco
aW5kZXgpOworICAgIGVsc2UKKyAgICAgICAgbV9uYW1lID0gZnVsbFBhdGg7Cit9CisKK3ZvaWQg
RW50cnk6OmdldE1ldGFkYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPE1l
dGFkYXRhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KQoreworICAgIC8vIEZJ
WE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBFbnRyeTo6bW92ZVRvKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPEVudHJ5PiwgY29uc3QgU3RyaW5nJiwgUGFzc1Jl
ZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPikKK3sKKyAgICAv
LyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgRW50cnk6OmNvcHlUbyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxFbnRyeT4sIGNvbnN0IFN0cmluZyYsIFBh
c3NSZWZQdHI8RW50cnlDYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pCit7Cisg
ICAgLy8gRklYTUU6IHRvIGJlIGltcGxlbWVudGVkLgorfQorCit2b2lkIEVudHJ5OjpyZW1vdmUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPikKK3sKKyAgICAvLyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQu
Cit9CisKK3ZvaWQgRW50cnk6OmdldFBhcmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPikKK3sKKyAg
ICAvLyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQuCit9CisKK1N0cmluZyBFbnRyeTo6dG9VUkko
Y29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQuCisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRW50cnku
aCBiL1dlYkNvcmUvc3RvcmFnZS9FbnRyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1YjFhYWIyNzIxOTExNDFh
MjdhOWY3YjI1YzRlNDhlNmM1ODlmMDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvRW50cnkuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFbnRyeV9oCisjZGVmaW5lIEVudHJ5
X2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUZpbGVTeXN0ZW07CitjbGFz
cyBFbnRyeUNhbGxiYWNrOworY2xhc3MgRXJyb3JDYWxsYmFjazsKK2NsYXNzIE1ldGFkYXRhQ2Fs
bGJhY2s7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgVm9pZENhbGxiYWNr
OworCitjbGFzcyBFbnRyeSA6IHB1YmxpYyBSZWZDb3VudGVkPEVudHJ5PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RW50cnk+IGNyZWF0ZShQYXNzUmVmUHRyPERPTUZpbGVTeXN0
ZW0+IG1fZmlsZVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtX2Z1bGxQYXRoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbnRyeShtX2ZpbGVTeXN0ZW0sIG1fZnVsbFBhdGgpKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5FbnRyeSgpIHsgfQorCisgICAgdmlydHVhbCBib29sIGlz
RmlsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRGlyZWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIGNvbnN0IFN0cmluZyYgZnVsbFBh
dGgoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxQYXRoOyB9CisgICAgY29uc3QgU3RyaW5nJiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisKKyAgICBET01GaWxlU3lzdGVtKiBmaWxlc3lz
dGVtKCkgY29uc3QgeyByZXR1cm4gbV9maWxlU3lzdGVtLmdldCgpOyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0TWV0YWRhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWV0
YWRhdGFDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwgUGFzc1JlZlB0cjxFcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrID0gMCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZVRvKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPEVudHJ5PiBwYXJlbnQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSA9IFN0cmluZygpLCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjayA9IDAsIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IDApOwor
ICAgIHZpcnR1YWwgdm9pZCBjb3B5VG8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8RW50cnk+IHBhcmVudCwgY29uc3QgU3RyaW5nJiBuYW1lID0gU3RyaW5nKCksIFBhc3NSZWZQ
dHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwgUGFzc1JlZlB0cjxFcnJvckNh
bGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxs
YmFjayA9IDAsIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IDApOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRQYXJlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwgUGFzc1JlZlB0cjxFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCk7CisKKyAgICB2aXJ0dWFsIFN0cmluZyB0b1VS
SShjb25zdCBTdHJpbmcmIG1pbWVUeXBlID0gU3RyaW5nKCkpOworCitwcm90ZWN0ZWQ6CisgICAg
RW50cnkoUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtPiBmaWxlU3lzdGVtLCBjb25zdCBTdHJpbmcm
IGZ1bGxQYXRoKTsKKworICAgIFJlZlB0cjxET01GaWxlU3lzdGVtPiBtX2ZpbGVTeXN0ZW07Cisg
ICAgU3RyaW5nIG1fZnVsbFBhdGg7IC8vIHZpcnR1YWwgcGF0aAorICAgIFN0cmluZyBtX25hbWU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9T
WVNURU0pCisKKyNlbmRpZiAvLyBFbnRyeV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
RW50cnkuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0VudHJ5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzI3NTFl
MWM5MjMzODE1ZGU2MDY1YTlhMTViZTMxNGJiNjc4Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0VudHJ5LmlkbApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2Ugewor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNCisgICAgXSBF
bnRyeSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmlsZTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNEaXJlY3Rvcnk7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBmdWxsUGF0aDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUZpbGVT
eXN0ZW0gZmlsZXN5c3RlbTsKKworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gdm9pZCBtb3ZlVG8oaW4gRW50cnkgcGFyZW50LCBpbiBbT3B0aW9uYWxdIERPTVN0cmlu
ZyBuYW1lLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
KTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgY29weVRv
KGluIEVudHJ5IHBhcmVudCwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlv
bmFsLCBDYWxsYmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25h
bCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIERPTVN0
cmluZyB0b1VSSShpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBtaW1lVHlwZSk7CisgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHJlbW92ZShpbiBbT3B0aW9uYWws
IENhbGxiYWNrXSBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWwsIENh
bGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBnZXRQYXJlbnQoaW4gW09wdGlvbmFsLCBDYWxs
YmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25hbCwgQ2FsbGJh
Y2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgfTsKK30KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9FbnRyeUNhbGxiYWNrLmggYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnlD
YWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4YWEzNGE4MzRmZTRmN2YwZDE4MTEwZGFmYzc4NzYyZGE4
MDYwOTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnlDYWxsYmFjay5o
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEVudHJ5Q2FsbGJhY2tfaAorI2RlZmluZSBFbnRyeUNh
bGxiYWNrX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRW50cnk7CitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBFbnRyeUNhbGxiYWNrIDogcHVibGljIFJl
ZkNvdW50ZWQ8RW50cnlDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgfkVudHJ5Q2Fs
bGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEVudHJ5KikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8v
IEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIEVudHJ5Q2FsbGJhY2tfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0VudHJ5Q2FsbGJhY2suaWRsIGIvV2ViQ29yZS9zdG9yYWdl
L0VudHJ5Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlYTNmZDE0NzBlZDBjN2MwNGI5YjExZTJj
NjEwNWNkZmY5YTRhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRW50cnlD
YWxsYmFjay5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKKyAgICAgICAgQ2FsbGJhY2sK
KyAgICBdIEVudHJ5Q2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEVu
dHJ5IGVudHJ5KTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0Vycm9y
Q2FsbGJhY2suaCBiL1dlYkNvcmUvc3RvcmFnZS9FcnJvckNhbGxiYWNrLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGNkZGJjNzM5M2Y4ODVlYzA0MGQwNjUxM2QwNWJlMjlmM2U2Y2VkZAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9FcnJvckNhbGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRXJyb3JDYWxsYmFja19oCisjZGVmaW5lIEVycm9yQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxF
KEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGaWxlRXJyb3I7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OworCitjbGFzcyBFcnJvckNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8RXJyb3JDYWxs
YmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgfkVycm9yQ2FsbGJhY2soKSB7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEZpbGVFcnJv
ciopID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9T
WVNURU0pCisKKyNlbmRpZiAvLyBFcnJvckNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9FcnJvckNhbGxiYWNrLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9FcnJvckNhbGxiYWNr
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYzdmYTg1YzQwNTgyOGFmNzI3Mjk1ZmVkNmY2NjAwMDI5NDhmNzg4
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0Vycm9yQ2FsbGJhY2suaWRsCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
Q29uZGl0aW9uYWw9RklMRV9TWVNURU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBFcnJvckNh
bGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBGaWxlRXJyb3IgZXJyb3Ip
OworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxi
YWNrLmggYi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTNiZjM0ZGZkOTgxNTZjYTcwNTBlMmJkOGY3N2M2NGQzYTA4OTE4NgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaApAQCAtMCwwICsxLDUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBGaWxlU3lzdGVtQ2FsbGJhY2tfaAorI2RlZmluZSBGaWxlU3lzdGVtQ2FsbGJhY2tf
aAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01GaWxlU3lzdGVtOworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrIDogcHVi
bGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbUNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+RmlsZVN5c3RlbUNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBET01GaWxlU3lzdGVtKikgPSAwOworfTsKKworfSAv
LyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8v
IEZpbGVTeXN0ZW1DYWxsYmFja19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5
c3RlbUNhbGxiYWNrLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNmNjg2ZmYxYmY1ZmQwODgzYmE2ODI0MTIzZWQ2MzAxODBmZDNlMjAKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmlkbApA
QCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAorICAgICAgICBDYWxsYmFjaworICAgIF0gRmlsZVN5
c3RlbUNhbGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01GaWxlU3lz
dGVtIGZpbGVTeXN0ZW0pOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
RmxhZ3MuaCBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZTM0MDM4YTA0
YzQwY2U5ZTNhODc1ODMwYjFiYjgwNWNmNjZlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvRmxhZ3MuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGbGFnc19oCisjZGVmaW5l
IEZsYWdzX2gKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxhZ3MgOiBwdWJsaWMg
UmVmQ291bnRlZDxGbGFncz4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZsYWdz
PiBjcmVhdGUoYm9vbCBjcmVhdGUgPSBmYWxzZSwgYm9vbCBleGNsdXNpdmUgPSBmYWxzZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmxhZ3MoY3JlYXRlLCBleGNsdXNpdmUp
KTsKKyAgICB9CisKKyAgICBib29sIGlzQ3JlYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGU7
IH0KKyAgICB2b2lkIHNldENyZWF0ZShib29sIGNyZWF0ZSkgeyBtX2NyZWF0ZSA9IGNyZWF0ZTsg
fQorICAgIGJvb2wgaXNFeGNsdXNpdmUoKSBjb25zdCB7IHJldHVybiBtX2V4Y2x1c2l2ZTsgfQor
ICAgIHZvaWQgc2V0RXhjbHVzaXZlKGJvb2wgZXhjbHVzaXZlKSB7IG1fZXhjbHVzaXZlID0gZXhj
bHVzaXZlOyB9CisKK3ByaXZhdGU6CisgICAgRmxhZ3MoYm9vbCBjcmVhdGUsIGJvb2wgZXhjbHVz
aXZlKQorICAgICAgICA6IG1fY3JlYXRlKGNyZWF0ZSkKKyAgICAgICAgLCBtX2V4Y2x1c2l2ZShl
eGNsdXNpdmUpCisgICAgeworICAgIH0KKyAgICBib29sIG1fY3JlYXRlOworICAgIGJvb2wgbV9l
eGNsdXNpdmU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVf
U1lTVEVNKQorCisjZW5kaWYgLy8gRmxhZ3NfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0ZsYWdzLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9GbGFncy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNzNk
MjIxMGE4MGU3MmQ2N2NmYjE4YTc4ZTVhNzZmNDkyYjY5MgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9GbGFncy5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTQorICAgIF0g
RmxhZ3MgeworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBDUkVBVEU7CisgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuIEVYQ0xVU0lWRTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL01ldGFkYXRhLmggYi9XZWJDb3JlL3N0b3JhZ2UvTWV0YWRhdGEuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYjA2ZjkwMmVkMTM0MzZkZmJlODFhNmRlYTk1MTk4NzNjNjQ2ZGY5Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TWV0YWRhdGFfaAorI2RlZmluZSBNZXRhZGF0YV9oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIE1ldGFkYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8TWV0YWRhdGE+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRhZGF0YT4gY3JlYXRlKGRvdWJsZSBtb2RpZmljYXRp
b25UaW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRhZGF0YShtb2Rp
ZmljYXRpb25UaW1lKSk7CisgICAgfQorICAgIGRvdWJsZSBtb2RpZmljYXRpb25UaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmljYXRpb25UaW1lOyB9CisKK3ByaXZhdGU6CisgICAgTWV0YWRh
dGEoZG91YmxlIG1vZGlmaWNhdGlvblRpbWUpCisgICAgICAgIDogbV9tb2RpZmljYXRpb25UaW1l
KG1vZGlmaWNhdGlvblRpbWUpCisgICAgeworICAgIH0KKworICAgIGRvdWJsZSBtX21vZGlmaWNh
dGlvblRpbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVf
U1lTVEVNKQorCisjZW5kaWYgLy8gTWV0YWRhdGFfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL01ldGFkYXRhLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTVhOTBiYzY2NzEyOWI4OWY3YTEzMWY0NmMxYzYxMmMwYmUyZjBlNQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YS5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSBzdG9yYWdlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZ
U1RFTQorICAgIF0gTWV0YWRhdGEgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0ZSBt
b2RpZmljYXRpb25UaW1lOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
TWV0YWRhdGFDYWxsYmFjay5oIGIvV2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NmU0YzkxYjJiY2Y0NTIyNzk4N2NmOTI0MzEyMWE3OGNkOTQ2MTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBNZXRhZGF0YUNhbGxiYWNrX2gKKyNkZWZpbmUgTWV0YWRhdGFDYWxs
YmFja19oCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1ldGFkYXRhOworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgTWV0YWRhdGFDYWxsYmFjayA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1ldGFkYXRhQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5N
ZXRhZGF0YUNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBNZXRhZGF0YSopID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
CisKKyNlbmRpZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNlbmRpZiAvLyBNZXRhZGF0YUNh
bGxiYWNrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YUNhbGxiYWNrLmlk
bCBiL1dlYkNvcmUvc3RvcmFnZS9NZXRhZGF0YUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGNh
MTgwNTQyMGE2YWUwNTRmYjQxZDg2OGQzZmYwMTU3NGRmYzMzCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9T
WVNURU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBNZXRhZGF0YUNhbGxiYWNrIHsKKyAgICAg
ICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBNZXRhZGF0YSBtZXRhZGF0YSk7CisgICAgfTsKK30K
</data>
<flag name="review"
          id="51171"
          type_id="1"
          status="+"
          setter="dumi"
    />
    <flag name="commit-queue"
          id="51194"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
      

    </bug>

</bugzilla>