<?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>139939</bug_id>
          
          <creation_ts>2014-12-24 19:23:57 -0800</creation_ts>
          <short_desc>Convert more creator functions to return Ref instead of PassRefPtr.</short_desc>
          <delta_ts>2014-12-25 14:44:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1057800</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-24 19:23:57 -0800</bug_when>
    <thetext>Yeah!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057801</commentid>
    <comment_count>1</comment_count>
      <attachid>243734</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-24 19:25:22 -0800</bug_when>
    <thetext>Created attachment 243734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057802</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-24 19:28:11 -0800</bug_when>
    <thetext>Attachment 243734 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:66:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:32:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:33:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:50:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:51:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:72:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/loader/FormSubmission.h:92:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/filters/FETile.h:32:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:86:  The parameter name &quot;acceleration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  The parameter name &quot;rotationRate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/graphics/filters/FEFlood.h:33:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 12 in 300 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057803</commentid>
    <comment_count>3</comment_count>
      <attachid>243735</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-24 19:38:12 -0800</bug_when>
    <thetext>Created attachment 243735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057804</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-24 19:39:18 -0800</bug_when>
    <thetext>Attachment 243735 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:66:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:32:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:33:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:50:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:51:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:72:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/loader/FormSubmission.h:92:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/filters/FETile.h:32:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:86:  The parameter name &quot;acceleration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  The parameter name &quot;rotationRate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/graphics/filters/FEFlood.h:33:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 12 in 303 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057808</commentid>
    <comment_count>5</comment_count>
      <attachid>243737</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-24 21:44:25 -0800</bug_when>
    <thetext>Created attachment 243737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057809</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-24 21:47:08 -0800</bug_when>
    <thetext>Attachment 243737 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:66:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:32:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:33:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:50:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:51:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/DeviceMotionData.cpp:72:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/loader/FormSubmission.h:92:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/filters/FETile.h:32:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:86:  The parameter name &quot;acceleration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  The parameter name &quot;rotationRate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/dom/DeviceMotionData.h:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/graphics/filters/FEFlood.h:33:  The parameter name &quot;filter&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 12 in 304 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057819</commentid>
    <comment_count>7</comment_count>
      <attachid>243737</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-12-24 22:28:38 -0800</bug_when>
    <thetext>Comment on attachment 243737
Patch

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

I see no problems.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2130
&gt; +    template&lt;class T&gt;

typename instead of class?

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2131
&gt; +    JSValue getJSValue(T&amp; nativeObj)

Why does this function have “get” in its name?

&gt; Source/WebCore/dom/DeviceMotionData.cpp:33
&gt; +Ref&lt;DeviceMotionData::Acceleration&gt; DeviceMotionData::Acceleration::create(bool canProvideX, double x,
&gt; +                                                                           bool canProvideY, double y,
&gt; +                                                                           bool canProvideZ, double z)

Yuck, high maintenance formatting. All one one line maybe? Maybe use auto for the result type so we don’t have to say DeviceMotionData:: for the return type?

I won’t repeat the comment, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057828</commentid>
    <comment_count>8</comment_count>
      <attachid>243737</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-24 23:50:25 -0800</bug_when>
    <thetext>Comment on attachment 243737
Patch

Clearing flags on attachment: 243737

Committed r177733: &lt;http://trac.webkit.org/changeset/177733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057829</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-24 23:50:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057836</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-12-25 08:32:46 -0800</bug_when>
    <thetext>This broke Windows build: https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/66094/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057861</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-12-25 14:44:31 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; This broke Windows build:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 66094/steps/compile-webkit/logs/stdio

I attempted a fix in &lt;http://trac.webkit.org/r177740&gt;. Not sure if the errors being seen after that are related.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243734</attachid>
            <date>2014-12-24 19:25:22 -0800</date>
            <delta_ts>2014-12-24 19:38:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139939.diff</filename>
            <type>text/plain</type>
            <size>302273</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDRkMWQzLi45YjQzYWVmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MzggQEAKKzIwMTQtMTItMjQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisg
ICAgICAgIENvbnZlcnQgbW9yZSBjcmVhdG9yIGZ1bmN0aW9ucyB0byByZXR1cm4gUmVmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTkzOT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0
IGEgc2xldyBvZiBmdW5jdGlvbnMgdG8gcmV0dXJuIFJlZjxUPiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHI8VD4KKyAgICAgICAgd2hlcmUgdGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIG5ldmVyIGJl
IG51bGwuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVzOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50Ojppc29sYXRlZFdvcmxkKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5hbHlzZXJOb2RlOjpj
cmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OmNyZWF0
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnZvbHZlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWxheU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5Tm9kZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNzQ29tcHJlc3Nvck5vZGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlBUklBR3JpZDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RC
b3g6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJv
eC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5U1ZHUm9vdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTVkdSb290Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y3Jl
YXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNyZWF0ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVNwaW5CdXR0b25QYXJ0OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b24uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDb2x1bW46OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvRE9NV3JhcHBlcldv
cmxkLmg6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpnZXRKU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Q0luc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXlQYWlyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlQYWlyOjpjcmVhdGUpOgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tl
eUhNQUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9LZXlSU0E6OmdlbmVyYXRlUGFpcik6CisgICAgICAgICogY3NzL0RPTVdpbmRvd0NTUy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dDU1M6OmNyZWF0ZSk6CisgICAgICAgICogY3Nz
L0RPTVdpbmRvd0NTUy5oOgorICAgICAgICAqIGNzcy9EYXNoYm9hcmRSZWdpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhc2hib2FyZFJlZ2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvRm9u
dExvYWRlci5oOgorICAgICAgICAqIGRvbS9ET01FcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6
RE9NRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RPTVN0cmluZ0xpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVN0cmluZ0xpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RhdGFU
cmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmg6CisgICAgICAgICogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uRGF0
YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9u
RGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlTW90aW9uRGF0YS5oOgorICAg
ICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkRhdGEuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpE
aWN0YXRpb25NYXJrZXJEZXRhaWxzOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQnJl
YWtCbG9ja3F1b3RlQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6QnJlYWtCbG9ja3F1b3Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUxpbmtD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bk1hcmtlclN1cHBsaWVyOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGlu
Z1N0eWxlOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmFwcGx5UGFyYWdyYXBoU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3JtYXRCbG9ja0NvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGluZUJyZWFr
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFu
ZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5jcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVjcmVhc2VTZWxlY3Rp
b25MaXN0TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW1vdmVGb3JtYXRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldE5v
ZGVBdHRyaWJ1dGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU2V0U2VsZWN0
aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0U2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxpZnlNYXJrdXBDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwbGl0RWxlbWVudENv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1VubGlua0Nv
bW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVubGlua0NvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmg6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25Db21tYW5kSU9TOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5o
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2I6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNsaWNlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJT
eW5jLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyU3luYzo6Y3JlYXRlKToKKyAgICAg
ICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvRE9N
VVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL0RPTVVSTC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwbHVnSW5JbWFnZUVsZW1lbnRJc29sYXRlZFdvcmxkKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzR3JhZGllbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGF0
dGVybi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQYXR0ZXJuOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9ET01QYXRoLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKiBo
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tM
aXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9EYXRhQ3VlLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21tYW5kTGlu
ZUFQSUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9z
dC5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgICogbG9h
ZGVyL0Zvcm1TdGF0ZS5oOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uaDoKKyAgICAgICAgKiBsb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpjcmVhdGUpOgorICAgICAg
ICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2FyY2hp
dmUvQXJjaGl2ZVJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RW51bUNhbGxiYWNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6T2JqZWN0Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvblJlY29yZC5oOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAqIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1h
dGhFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
OgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFRl
eHRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQmFyUHJvcC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFyUHJvcDo6
Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5oOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVNlY3VyaXR5UG9saWN5OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uv
RE9NU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd0V4
dGVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9uOjpjcmVhdGUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpj
cmVhdGVCdWZmZXJGcm9tUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0
ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNy
ZWF0ZUJ5TWl4aW5nVG9Nb25vKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZTo6bnVsbEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzdGFudExpZ2h0U291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5k
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVDb21wb3NpdGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4Ojpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdl
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZz
ZXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVu
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJhd0RhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpjcmVhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCaWRpQ29udGV4dDo6Y3JlYXRlVW5jYWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qmlk
aUNvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5o
OgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1pbWVUeXBlOjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTU1pbWVUeXBlQXJyYXk6Om5hbWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lu
cy9ET01NaW1lVHlwZUFycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5
OjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBsdWdpbjo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01QbHVnaW46Om5h
bWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBsdWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpuYW1lZEl0ZW0pOgorICAgICAgICAqIHBsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRp
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q291bnRlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NvdW50ZXJO
b2RlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNv
ckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmluZ0lucHV0Q3Vyc29yOjpjcmVhdGUpOgorICAg
ICAgICAqIHJlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oOgorICAgICAgICAqIHN0b3JhZ2Uv
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlOjpjcmVhdGUpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRl
KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpjcmVhdGUp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZVN5bmNNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oOgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgICog
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
KToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAg
ICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkV29ya2VyVGhyZWFkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
VGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9TaGFy
ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvY2F0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJMb2NhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogeG1sL0RPTVBhcnNl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAqIHht
bC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZVhQYXRo
TlNSZXNvbHZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpmbHVzaFByb2dyZXNzRXZlbnQpOgorICAgICAgICAqIHhtbC9YTUxT
ZXJpYWxpemVyLmg6CisgICAgICAgIChXZWJDb3JlOjpYTUxTZXJpYWxpemVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhF
dmFsdWF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogeG1sL1hQYXRoUmVzdWx0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYUGF0aFJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVT
aGVldC5oOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpYU0xUUHJvY2Vzc29yOjpjcmVhdGUpOgorCiAyMDE0LTEyLTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgUmVuZGVyU3R5bGU6OmludmFsaWRD
b2xvcigpIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0Nvb3JkaW5hdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmgKaW5kZXggZmIxMzRhNS4uNWNiM2NmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaApAQCAtMzMsOSArMzMsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvb3JkaW5hdGVzIDogcHVibGljIFJlZkNv
dW50ZWQ8Q29vcmRpbmF0ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29y
ZGluYXRlcz4gY3JlYXRlKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91Ymxl
IHNwZWVkKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZXMobGF0aXR1ZGUsIGxvbmdp
dHVkZSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0
dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywg
cHJvdmlkZXNTcGVlZCwgc3BlZWQpKTsgfQorICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNy
ZWF0ZShkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRp
bmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhsYXRpdHVkZSwgbG9uZ2l0dWRlLCBwcm92
aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92aWRlc1Nw
ZWVkLCBzcGVlZCkpOyB9CiAKLSAgICBQYXNzUmVmUHRyPENvb3JkaW5hdGVzPiBpc29sYXRlZENv
cHkoKSBjb25zdAorICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKG1fbGF0aXR1ZGUsIG1fbG9u
Z2l0dWRlLCBtX2NhblByb3ZpZGVBbHRpdHVkZSwgbV9hbHRpdHVkZSwgbV9hY2N1cmFjeSwgbV9j
YW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgbV9hbHRpdHVkZUFjY3VyYWN5LCBtX2NhblByb3Zp
ZGVIZWFkaW5nLCBtX2hlYWRpbmcsIG1fY2FuUHJvdmlkZVNwZWVkLCBtX3NwZWVkKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggNGQyY2M0Ny4uMmI1Yzc1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbQpAQCAtMTQ1LDcgKzE0NSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhU
TUxQCiAKIERPTVdyYXBwZXJXb3JsZCYgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6Omlzb2xh
dGVkV29ybGQoKQogewotICAgIHN0YXRpYyBET01XcmFwcGVyV29ybGQmIGlzb2xhdGVkV29ybGQg
PSAqRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpLmxlYWtS
ZWYoKTsKKyAgICBzdGF0aWMgRE9NV3JhcHBlcldvcmxkJiBpc29sYXRlZFdvcmxkID0gRE9NV3Jh
cHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpLmxlYWtSZWYoKTsKICAg
ICByZXR1cm4gaXNvbGF0ZWRXb3JsZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQW5hbHlzZXJOb2RlLmgKaW5kZXggMjkwYzY3YS4uNjM1ZTYzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oCkBAIC0zMyw5ICsz
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5hbHlzZXJOb2RlIDogcHVibGlj
IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBbmFseXNlck5vZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCisgICAgc3RhdGljIFJlZjxBbmFseXNlck5vZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQq
IGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFuYWx5c2VyTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKSk7ICAgICAgCisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFuYWx5c2VyTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+QW5hbHlzZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCmluZGV4IGUyZmYxYzYuLjMxZGE5
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
Y3BwCkBAIC00MywxOSArNDMsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVm
UHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZlB0cjxB
dWRpb0J1ZmZlcj4gQXVkaW9CdWZmZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgaWYgKHNh
bXBsZVJhdGUgPCAyMjA1MCB8fCBzYW1wbGVSYXRlID4gOTYwMDAgfHwgbnVtYmVyT2ZDaGFubmVs
cyA+IEF1ZGlvQ29udGV4dDo6bWF4TnVtYmVyT2ZDaGFubmVscygpIHx8ICFudW1iZXJPZkZyYW1l
cykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBBdWRpb0J1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvQnVmZmVyKG51bWJlck9mQ2hhbm5l
bHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKSk7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9C
dWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQor
UmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEo
Y29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQg
c2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IGJ1cyA9IGNyZWF0ZUJ1c0Zyb21J
bk1lbW9yeUF1ZGlvRmlsZShkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlKTsK
ICAgICBpZiAoYnVzLmdldCgpKQotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVm
ZmVyKGJ1cy5nZXQoKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZl
cihidXMuZ2V0KCkpKTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCmluZGV4IDBjZTMyNjEuLmU3M2JjZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgKQEAg
LTQzLDEwICs0MywxMCBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBBdWRp
b0J1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEF1ZGlvQnVmZmVyPiB7CiBwdWJsaWM6ICAgCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJP
ZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAg
IHN0YXRpYyBSZWZQdHI8QXVkaW9CdWZmZXI+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5u
ZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgLy8g
UmV0dXJucyAwIGlmIGRhdGEgaXMgbm90IGEgdmFsaWQgYXVkaW8gZmlsZS4KLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEoY29uc3Qgdm9p
ZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0
ZSk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlRnJvbUF1ZGlvRmlsZURh
dGEoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxv
YXQgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBGb3JtYXQKICAgICBzaXplX3QgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCA0NWZkY2I3Li4x
M2JjYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC00OSw5ICs0OSw5IEBAIGNvbnN0IGRvdWJs
ZSBEZWZhdWx0R3JhaW5EdXJhdGlvbiA9IDAuMDIwOyAvLyAyMG1zCiAvLyB0byBtaW5pbWl6ZSBs
aW5lYXIgaW50ZXJwb2xhdGlvbiBhbGlhc2luZy4KIGNvbnN0IGRvdWJsZSBNYXhSYXRlID0gMTAy
NDsKIAotUGFzc1JlZlB0cjxBdWRpb0J1ZmZlclNvdXJjZU5vZGU+IEF1ZGlvQnVmZmVyU291cmNl
Tm9kZTo6Y3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKK1Jl
ZjxBdWRpb0J1ZmZlclNvdXJjZU5vZGU+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6Y3JlYXRlKEF1
ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQsIHNh
bXBsZVJhdGUpKTsKIH0KIAogQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmgKaW5kZXggZmMwZmFkNS4uMjA0OTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIEF1ZGlvQ29udGV4dDsKIAogY2xhc3MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIDog
cHVibGljIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8QXVkaW9CdWZmZXJTb3VyY2VOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0KiwgZmxv
YXQgc2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIFJlZjxBdWRpb0J1ZmZlclNvdXJjZU5vZGU+IGNy
ZWF0ZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIHZpcnR1YWwgfkF1
ZGlvQnVmZmVyU291cmNlTm9kZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggN2YzNmUyNi4uNzc4NjgzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMTEw
LDcgKzExMCw3IEBAIGJvb2wgQXVkaW9Db250ZXh0Ojppc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxv
YXQgc2FtcGxlUmF0ZSkKIGNvbnN0IHVuc2lnbmVkIE1heEhhcmR3YXJlQ29udGV4dHMgPSA0Owog
dW5zaWduZWQgQXVkaW9Db250ZXh0OjpzX2hhcmR3YXJlQ29udGV4dENvdW50ID0gMDsKICAgICAK
LVBhc3NSZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEF1ZGlvQ29udGV4dD4gQXVkaW9D
b250ZXh0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBVTlVTRURfUEFSQU0oZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaAppbmRleCAxMjNkMzkxLi42MjgxMzFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTc3LDEwICs3Nyw3
IEBAIGNsYXNzIFBlcmlvZGljV2F2ZTsKIGNsYXNzIEF1ZGlvQ29udGV4dCA6IHB1YmxpYyBBY3Rp
dmVET01PYmplY3QsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdWRpb0NvbnRleHQ+LCBw
dWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lciwgcHVibGljIEF1ZGlvUHJvZHVjZXIgewogcHVibGljOgogICAgIC8vIENyZWF0ZSBhbiBB
dWRpb0NvbnRleHQgZm9yIHJlbmRlcmluZyB0byB0aGUgYXVkaW8gaGFyZHdhcmUuCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QXVkaW9Db250ZXh0PiBjcmVhdGUoRG9jdW1lbnQmLCBFeGNlcHRpb25D
b2RlJik7Ci0KLSAgICAvLyBDcmVhdGUgYW4gQXVkaW9Db250ZXh0IGZvciBvZmZsaW5lIChub24t
cmVhbHRpbWUpIHJlbmRlcmluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+
IGNyZWF0ZU9mZmxpbmVDb250ZXh0KERvY3VtZW50KiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0NvbnRleHQ+IGNyZWF0ZShEb2N1bWVudCYsIEV4
Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZpcnR1YWwgfkF1ZGlvQ29udGV4dCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5oCmluZGV4IDA5ZmFk
NjAuLjM3OTMwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9MaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9MaXN0ZW5lci5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXVkaW9MaXN0ZW5lciA6IHB1YmxpYyBSZWZDb3VudGVkPEF1ZGlvTGlzdGVuZXI+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0xpc3RlbmVyPiBjcmVhdGUoKQorICAg
IHN0YXRpYyBSZWY8QXVkaW9MaXN0ZW5lcj4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQXVkaW9MaXN0ZW5lcigpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXVkaW9MaXN0ZW5lcik7CiAgICAgfQogCiAgICAgLy8gUG9zaXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggOWI0N2VhOC4uZDRl
NDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgK
QEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgRGVmYXVs
dFNtb290aGluZ0NvbnN0YW50OwogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgU25hcFRocmVzaG9s
ZDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvUGFyYW0+IGNyZWF0ZShBdWRpb0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGRlZmF1bHRWYWx1ZSwgZG91
YmxlIG1pblZhbHVlLCBkb3VibGUgbWF4VmFsdWUsIHVuc2lnbmVkIHVuaXRzID0gMCkKKyAgICBz
dGF0aWMgUmVmPEF1ZGlvUGFyYW0+IGNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgZG91YmxlIGRlZmF1bHRWYWx1ZSwgZG91YmxlIG1pblZhbHVlLCBkb3Vi
bGUgbWF4VmFsdWUsIHVuc2lnbmVkIHVuaXRzID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQXVkaW9QYXJhbShjb250ZXh0LCBuYW1lLCBkZWZhdWx0VmFsdWUsIG1pblZh
bHVlLCBtYXhWYWx1ZSwgdW5pdHMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9QYXJhbShjb250ZXh0LCBuYW1lLCBkZWZhdWx0VmFsdWUsIG1pblZhbHVlLCBtYXhWYWx1ZSwg
dW5pdHMpKTsKICAgICB9CiAKICAgICAvLyBBdWRpb1N1bW1pbmdKdW5jdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaAppbmRleCBk
ZGUyYWVjLi40ZmY0MTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZEZpbHRlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZEZpbHRlck5vZGUuaApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAgICAgICAg
IEFMTFBBU1MgPSA3CiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpcXVhZEZpbHRl
ck5vZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCisg
ICAgc3RhdGljIFJlZjxCaXF1YWRGaWx0ZXJOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250
ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBCaXF1YWRGaWx0ZXJOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUpKTsgICAgICAKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQmlxdWFkRmlsdGVyTm9kZShjb250ZXh0LCBzYW1wbGVSYXRl
KSk7CiAgICAgfQogCiAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmgKaW5kZXggNDQxN2EwMS4uZTBkMzQz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgUmV2ZXJiOwogICAgIAogY2xhc3MgQ29udm9sdmVy
Tm9kZSA6IHB1YmxpYyBBdWRpb05vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENvbnZvbHZlck5vZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCisgICAgc3RhdGljIFJlZjxDb252b2x2ZXJOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0
KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDb252b2x2ZXJOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUpKTsgICAgICAKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udm9sdmVyTm9kZShjb250ZXh0LCBzYW1wbGVSYXRl
KSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgfkNvbnZvbHZlck5vZGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5oCmluZGV4IGRhNjFlNjkuLjc2ODYx
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheU5vZGUuaApAQCAt
MjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmgiCiAjaW5j
bHVkZSAiRGVsYXlQcm9jZXNzb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBBdWRpb1BhcmFtOwogCiBjbGFz
cyBEZWxheU5vZGUgOiBwdWJsaWMgQXVkaW9CYXNpY1Byb2Nlc3Nvck5vZGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlbGF5Tm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgZG91YmxlIG1heERlbGF5VGltZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCisgICAgc3RhdGljIFJlZjxEZWxheU5vZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQqIGNv
bnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIGRvdWJsZSBtYXhEZWxheVRpbWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWxheU5vZGUoY29u
dGV4dCwgc2FtcGxlUmF0ZSwgbWF4RGVsYXlUaW1lLCBlYykpOyAgICAgIAorICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEZWxheU5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSwgbWF4RGVsYXlU
aW1lLCBlYykpOwogICAgIH0KIAogICAgIEF1ZGlvUGFyYW0qIGRlbGF5VGltZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuaAppbmRleCAxMjNjMGNhLi4xYjJkM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaApAQCAtMzUs
OSArMzUsOSBAQCBjbGFzcyBEeW5hbWljc0NvbXByZXNzb3I7CiAKIGNsYXNzIER5bmFtaWNzQ29t
cHJlc3Nvck5vZGUgOiBwdWJsaWMgQXVkaW9Ob2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEeW5hbWljc0NvbXByZXNzb3JOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250
ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHN0YXRpYyBSZWY8RHluYW1pY3NDb21wcmVzc29y
Tm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRHluYW1pY3NDb21wcmVzc29yTm9kZShj
b250ZXh0LCBzYW1wbGVSYXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IER5bmFt
aWNzQ29tcHJlc3Nvck5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkpOwogICAgIH0KIAogICAgIHZp
cnR1YWwgfkR5bmFtaWNzQ29tcHJlc3Nvck5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAppbmRleCBh
ZTM4YmY1Li44NzcwZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIFNRTEVycm9yOwogCiBjbGFzcyBDaGFuZ2VWZXJzaW9uV3JhcHBlciA6IHB1YmxpYyBTUUxU
cmFuc2FjdGlvbldyYXBwZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENoYW5n
ZVZlcnNpb25XcmFwcGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBT
dHJpbmcmIG5ld1ZlcnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDaGFuZ2VWZXJzaW9uV3Jh
cHBlcihvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKSk7IH0KKyAgICBzdGF0aWMgUmVmPENoYW5nZVZl
cnNpb25XcmFwcGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBTdHJp
bmcmIG5ld1ZlcnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2hhbmdlVmVyc2lvbldyYXBw
ZXIob2xkVmVyc2lvbiwgbmV3VmVyc2lvbikpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9y
bVByZWZsaWdodChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKTsKICAgICB2aXJ0dWFsIGJvb2wgcGVy
Zm9ybVBvc3RmbGlnaHQoU1FMVHJhbnNhY3Rpb25CYWNrZW5kKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAK
aW5kZXggZWFiYTFmNC4uY2Q5MzE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcApAQCAtMzQsOSArMzQs
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGF0YWJhc2VBdXRob3Jp
emVyPiBEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5m
b1RhYmxlTmFtZSkKK1JlZjxEYXRhYmFzZUF1dGhvcml6ZXI+IERhdGFiYXNlQXV0aG9yaXplcjo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJbmZvVGFibGVOYW1lKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRGF0YWJhc2VBdXRob3JpemVyKGRhdGFiYXNlSW5mb1RhYmxlTmFtZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlQXV0aG9yaXplcihkYXRhYmFzZUlu
Zm9UYWJsZU5hbWUpKTsKIH0KIAogRGF0YWJhc2VBdXRob3JpemVyOjpEYXRhYmFzZUF1dGhvcml6
ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUluZm9UYWJsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuaAppbmRl
eCA3MmRmM2YxLi5lZTQwODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVi
bGljOgogICAgICAgICBOb0FjY2Vzc01hc2sgPSAxIDw8IDIKICAgICB9OwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZUluZm9UYWJsZU5hbWUpOworICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VBdXRob3JpemVyPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUluZm9UYWJsZU5hbWUpOwogCiAgICAgaW50IGNy
ZWF0ZVRhYmxlKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKTsKICAgICBpbnQgY3JlYXRlVGVtcFRh
YmxlKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAppbmRleCA3YThhNmViLi43NTVhNzlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRocmVhZC5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTUwLDcgKzQ5LDcgQEAgY2xhc3MgU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvcjsKIAogY2xhc3MgRGF0YWJhc2VUaHJlYWQgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8RGF0YWJhc2VUaHJlYWQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEYXRhYmFzZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERh
dGFiYXNlVGhyZWFkKTsgfQorICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUaHJlYWQ+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VUaHJlYWQpOyB9CiAgICAgfkRhdGFiYXNl
VGhyZWFkKCk7CiAKICAgICBib29sIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiMDNkMWQ0Li44M2M2ODMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQ5OCw3ICs0OTgsNyBAQCBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6QnJpZGdlOgogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQu
aXNEb2N1bWVudCgpKTsKICAgICAgICAgQVNTRVJUKHBlZXIpOwogCi0gICAgICAgIHBlZXItPnNl
bmQoKkJsb2I6OmRlc2VyaWFsaXplKGNhcHR1cmVkVVJMLnVybCgpLCBjYXB0dXJlZFR5cGUuc3Ry
aW5nKCksIHNpemUpKTsKKyAgICAgICAgcGVlci0+c2VuZChCbG9iOjpkZXNlcmlhbGl6ZShjYXB0
dXJlZFVSTC51cmwoKSwgY2FwdHVyZWRUeXBlLnN0cmluZygpLCBzaXplKSk7CiAgICAgfSk7CiAK
ICAgICBSZWY8QnJpZGdlPiBwcm90ZWN0KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDA5N2IzYjMuLmEwMGIxNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMjY2
LDcgKzI2Niw3IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBy
b2xlKQogICAgIHJldHVybiBTcGFjZVNwbGl0U3RyaW5nKHJvbGVWYWx1ZSwgdHJ1ZSkuY29udGFp
bnMocm9sZSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNy
ZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorc3RhdGljIFJlZjxBY2Nl
c3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJl
cikKIHsKICAgICAvLyBGSVhNRTogSG93IGNvdWxkIHJlbmRlcmVyLT5ub2RlKCkgZXZlciBub3Qg
YmUgYW4gRWxlbWVudD8KICAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUoKTsKQEAgLTMz
MCw3ICszMzAsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVh
dGVGcm9tUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcgogICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGUocmVuZGVyZXIpOwogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tTm9kZShOb2RlKiBub2RlKQorc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tTm9kZShOb2RlKiBub2RlKQog
ewogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKG5vZGUpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwCmluZGV4IDlhZGI4MWYuLjY1YzBhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKQEAgLTQ5LDkg
KzQ5LDkgQEAgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjp+QWNjZXNzaWJpbGl0eUFSSUFHcmlkKCkK
IHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ+IEFjY2Vzc2liaWxpdHlB
UklBR3JpZDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0
eUFSSUFHcmlkPiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eUFSSUFHcmlk
KHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUFSSUFH
cmlkKHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRUYWJs
ZUNlbGxDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjaGlsZCwgSGFzaFNldDxBY2Nlc3NpYmls
aXR5T2JqZWN0Kj4mIGFwcGVuZGVkUm93cywgdW5zaWduZWQmIGNvbHVtbkNvdW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgK
aW5kZXggODJlZWU4OS4uZjE2Y2I5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNz
IEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcjsKIAogY2xhc3MgQWNjZXNzaWJpbGl0
eUFSSUFHcmlkIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlUYWJsZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUFSSUFHcmlkPiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ+IGNyZWF0ZShS
ZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWQoKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwuY3BwCmluZGV4IDEwNGM4YTYuLjdkM2M1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApAQCAt
NDQsOSArNDQsOSBAQCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjp+QWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2Vs
bD4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCitSZWY8QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbD4gQWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKHJlbmRlcmVyKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbChyZW5kZXJlcikpOwogfQog
CiBBY2Nlc3NpYmlsaXR5VGFibGUqIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVudFRh
YmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmgKaW5kZXggNTU4NmIwNy4uMTc3MDI0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAog
Y2xhc3MgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmls
aXR5VGFibGVDZWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbCgpOwogICAgIAogICAgIC8vIGZpbGxzIGlu
IHRoZSBzdGFydCBsb2NhdGlvbiBhbmQgcm93IHNwYW4gb2YgY2VsbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3Bw
CmluZGV4IGI3MjVhMTcuLjY5ZWU1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKQEAgLTQ0LDkgKzQ0
LDkgQEAgQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Ojp+QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IEFjY2Vzc2li
aWxpdHlBUklBR3JpZFJvdzo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNj
ZXNzaWJpbGl0eUFSSUFHcmlkUm93PiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNz
aWJpbGl0eUFSSUFHcmlkUm93KHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93Ojppc0FSSUFUcmVlR3JpZFJvdygpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaApp
bmRleCA0N2IxNmIxLi5iZjFhMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKQEAgLTM3LDcgKzM3LDcgQEAg
Y2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlOwogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUFSSUFH
cmlkUm93IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlUYWJsZVJvdyB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IGNy
ZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRS
b3coKTsKICAgICAKICAgICB2b2lkIGRpc2Nsb3NlZFJvd3MoQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlJbWFnZU1hcExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAppbmRleCA5YTlhZmI0Li45NmJjMTM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1h
cExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUltYWdlTWFwTGluay5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluazo6fkFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoKQogewogfSAgICAKIAotUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rPiBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpj
cmVhdGUoKQorUmVmPEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms+IEFjY2Vzc2liaWxpdHlJbWFn
ZU1hcExpbms6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmls
aXR5SW1hZ2VNYXBMaW5rKCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsoKSk7CiB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbms6OnBhcmVudE9iamVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oCmluZGV4
IDdlN2M5MTYuLjY5YTdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oCkBAIC0zNyw3ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsg
ZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms+IGNyZWF0ZSgpOworICAg
IHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaz4gY3JlYXRlKCk7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpOwogICAgIAogICAgIHZvaWQgc2V0SFRN
TEFyZWFFbGVtZW50KEhUTUxBcmVhRWxlbWVudCogZWxlbWVudCkgeyBtX2FyZWFFbGVtZW50ID0g
ZWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlMaXN0LmNwcAppbmRleCAzMjdkMmExLi5iMjcwM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcApAQCAtNDksOSArNDks
OSBAQCBBY2Nlc3NpYmlsaXR5TGlzdDo6fkFjY2Vzc2liaWxpdHlMaXN0KCkKIHsKIH0KIAotUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdD4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5
TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TGlzdChyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0KHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eUxpc3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAppbmRleCA5NzZl
MmJkLi5jMmU1YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmls
aXR5TGlzdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlMaXN0KCk7CiAgICAgCiAgICAgYm9vbCBpc1Vub3JkZXJlZExpc3QoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5j
cHAKaW5kZXggYTM2MGRkMy4uN2ZjNjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTQ5LDEwICs0OSwxMCBA
QCBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6QWNjZXNzaWJpbGl0eUxpc3RCb3goUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKIEFjY2Vzc2liaWxpdHlMaXN0Qm94Ojp+QWNjZXNzaWJpbGl0eUxpc3RCb3go
KQogewogfQotICAgIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gQWNjZXNzaWJp
bGl0eUxpc3RCb3g6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorCitSZWY8QWNjZXNz
aWJpbGl0eUxpc3RCb3g+IEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpjcmVhdGUoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlMaXN0
Qm94KHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxp
c3RCb3gocmVuZGVyZXIpKTsKIH0KICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNh
blNldFNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCmluZGV4IDE1Yzk4NDUu
LmFkMmRmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0Qm94LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdEJveCBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5TGlzdEJveD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eUxpc3RCb3g+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nl
c3NpYmlsaXR5TGlzdEJveCgpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTZWxlY3Rl
ZENoaWxkcmVuQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3Bw
CmluZGV4IGNhYTZkYjAuLjExODhlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwCkBAIC01NCw5
ICs1NCw5IEBAIEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjp+QWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24oKQogewogfSAgICAKICAgICAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24+IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpjcmVhdGUoKQorUmVmPEFjY2Vz
c2liaWxpdHlMaXN0Qm94T3B0aW9uPiBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y3JlYXRl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
KCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
KCkpOwogfQogICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6aXNFbmFibGVk
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAppbmRleCA0YmVhNzE5Li4zMWM0MzM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbi5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50Owog
ICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24gZmluYWwgOiBwdWJsaWMgQWNj
ZXNzaWJpbGl0eU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlM
aXN0Qm94T3B0aW9uKCk7CiAgICAgCiAgICAgdm9pZCBzZXRIVE1MRWxlbWVudChIVE1MRWxlbWVu
dCogZWxlbWVudCkgeyBtX29wdGlvbkVsZW1lbnQgPSBlbGVtZW50OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bHMuY3BwCmluZGV4IDg4N2JiOTkuLmE1OWQxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCkBA
IC01Myw3ICs1Myw3IEBAIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OkFjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2woUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmls
aXR5TWVkaWFDb250cm9sOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICBB
U1NFUlQocmVuZGVyZXItPm5vZGUoKSk7CiAKQEAgLTY5LDcgKzY5LDcgQEAgUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KgogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250
YWluZXI6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wocmVuZGVyZXIpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbChyZW5kZXJl
cikpOwogICAgIH0KIH0KIApAQCAtMjIyLDkgKzIyMiw5IEBAIEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzQ29udGFpbmVyOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcihSZW5k
ZXJPCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQor
UmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFp
bmVyOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKHJlbmRlcmVyKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWlu
ZXIocmVuZGVyZXIpKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29u
dGFpbmVyOjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdApAQCAtMjY2LDkgKzI2Niw5
IEBAIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGlu
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpjcmVhdGUoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFU
aW1lbGluZTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZShyZW5kZXJlcikpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lKHJlbmRlcmVyKSk7
CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZTo6dmFsdWVEZXNjcmlwdGlv
bigpIGNvbnN0CkBAIC0yOTYsOSArMjk2LDkgQEAgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3Bs
YXk6OkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5KFJlbmRlck9iamVjdCogcmVuZGUKIHsK
IH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFU
aW1lRGlzcGxheTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJp
bGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OmNyZWF0ZShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0
eU1lZGlhVGltZURpc3BsYXkocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
Y2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheShyZW5kZXJlcikpOwogfQogCiBib29sIEFjY2Vz
c2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmgKaW5kZXggYmM2YmQ1NC4uYTBjZTcxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlh
Q29udHJvbHMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9i
amVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2woKSB7IH0KIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5U2xp
ZGVyIHsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
TWVkaWFUaW1lbGluZSgpIHsgfQogCiAgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25z
dCBvdmVycmlkZTsKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIGNsYXNzIEFjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlNZWRp
YUNvbnRyb2wgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJp
bGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFRvb2xiYXJSb2xl
OyB9CkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiBjbGFzcyBBY2Nlc3NpYmlsaXR5TWVkaWFU
aW1lRGlzcGxheSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sIHsKIAog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0
ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNy
ZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TWVkaWFUaW1l
RGlzcGxheSgpIHsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBcHBsaWNhdGlvblRpbWVyUm9sZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwCmluZGV4IGE5ZGYxZDguLjE0N2FjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKQEAgLTM3LDkgKzM3LDkg
QEAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3QoUmVuZGVyTWVu
dUxpc3QqIHJlbmRlcmVyKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlz
dD4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUoUmVuZGVyTWVudUxpc3QqIHJlbmRlcmVy
KQorUmVmPEFjY2Vzc2liaWxpdHlNZW51TGlzdD4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVh
dGUoUmVuZGVyTWVudUxpc3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QWNjZXNzaWJpbGl0eU1lbnVMaXN0KHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eU1lbnVMaXN0OjpwcmVzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaAppbmRleCBiYzc1YzE3Li5jMDgxYTcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgUmVuZGVyTWVudUxpc3Q7CiAKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdCBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TWVudUxp
c3Q+IGNyZWF0ZShSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpOworICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0PiBjcmVhdGUoUmVuZGVyTWVudUxpc3QqIHJlbmRlcmVyKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBwcmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKaW5kZXggZTEzYzVm
Yi4uYjY4MTUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNz
IEhUTUxFbGVtZW50OwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24gZmluYWwg
OiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbik7IH0KKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24pOyB9CiAKICAgICB2b2lkIHNldEVs
ZW1lbnQoSFRNTEVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCmluZGV4IDJiMzUzMGUuLjZi
NGQyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSFRNTFNl
bGVjdEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwIGZpbmFsIDog
cHVibGljIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cD4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwKTsgfQorICAgIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNF
bmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDViMWY3NmIuLjVjZjlmMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC0xMTcsOSArMTE3LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aW5pdCgpCiAgICAgbV9yb2xlID0gZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUo
KTsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdD4gQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmNyZWF0ZShOb2RlKiBub2RlKQorUmVmPEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0PiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKE5vZGUqIG5vZGUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdChub2RlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qobm9kZSkpOwogfQog
CiB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRhY2goQWNjZXNzaWJpbGl0eURldGFj
aG1lbnRUeXBlIGRldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aAppbmRleCAxMzgzZGNhLi4zZTc1NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC02Miw3ICs2Miw3IEBA
IGVudW0gTW91c2VCdXR0b25MaXN0ZW5lclJlc3VsdEZpbHRlciB7CiAKIGNsYXNzIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0PiBjcmVhdGUoTm9k
ZSopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q+IGNyZWF0ZShOb2Rl
Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBpbml0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAKaW5k
ZXggYWFmMGM2Yy4uZjNhMTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcApAQCAt
MzgsOSArMzgsOSBAQCBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OkFjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvcihSZW5kZXJQcm9ncmVzcyogcgogewogfQogCi1QYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcj4gQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yOjpjcmVhdGUoUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxp
dHlQcm9ncmVzc0luZGljYXRvcj4gQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVh
dGUoUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKHJlbmRlcmVyKSk7CiB9
CiAgICAgCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCkBAIC00OSw5ICs0OSw5IEBAIEFjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
KFJlbmRlck1ldGVyKiByZW5kCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yPiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5k
ZXJNZXRlciogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJNZXRlciogcmVuZGVy
ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRp
Y2F0b3IocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuaAppbmRleCAwYzQ4MGY2Li5mNThmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yLmgKQEAgLTM1LDkgKzM1LDkgQEAgY2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiAgICAgCiBjbGFz
cyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBjcmVhdGUoUmVuZGVyUHJvZ3Jlc3MqKTsKKyAgICBz
dGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcj4gY3JlYXRlKFJlbmRlclBy
b2dyZXNzKik7CiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBjcmVhdGUoUmVuZGVyTWV0ZXIqKTsK
KyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcj4gY3JlYXRlKFJl
bmRlck1ldGVyKik7CiAjZW5kaWYKICAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggODRkOGNjYy4uN2NhZTdmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMzIsOSArMTMyLDkgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojppbml0KCkKICAgICBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aW5p
dCgpOwogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QocmVuZGVyZXIpKTsKIH0KIAogdm9pZCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBl
IGRldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKiBjYWNoZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5k
ZXggNmEzYzFlYi4uZTk1ODJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcgQEAg
Y2xhc3MgV2lkZ2V0OwogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCA6IHB1
YmxpYyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwor
ICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRlKFJlbmRlck9i
amVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBpbml0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3BwCmluZGV4IGUyYWQwMGYuLjJi
NjJkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNWR1Jvb3QuY3BwCkBAIC00Myw5ICs0Myw5IEBAIEFjY2Vzc2liaWxpdHlTVkdSb290
Ojp+QWNjZXNzaWJpbGl0eVNWR1Jvb3QoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlTVkdSb290PiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IEFjY2Vzc2liaWxpdHlTVkdSb290Ojpj
cmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEFjY2Vzc2liaWxpdHlTVkdSb290KHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eVNWR1Jvb3QocmVuZGVyZXIpKTsKIH0KICAgICAKIEFjY2Vzc2liaWxp
dHlPYmplY3QqIEFjY2Vzc2liaWxpdHlTVkdSb290OjpwYXJlbnRPYmplY3QoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9v
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5o
CmluZGV4IDBiODJmZWUuLjQ0ZWVkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U1ZHUm9vdCBmaW5hbCA6IHB1Ymxp
YyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0
YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAg
ICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpOwogICAgIAogICAgIHZvaWQgc2V0UGFy
ZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3LmNwcAppbmRleCBjOTAwMDk4Li4yZTU2NjgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcApA
QCAtNTQsOSArNTQsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpkZXRhY2goQWNj
ZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlIGRldGFjaG1lbnRUeXBlLAogICAgIG1fc2Nyb2xsVmll
dyA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+IEFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpjcmVhdGUoU2Nyb2xsVmlldyogdmlldykKK1JlZjxBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldz4gQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNyZWF0ZShTY3Jv
bGxWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcodmlldykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KHZpZXcpKTsKIH0KICAgICAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3OjpzY3JvbGxCYXIoQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IDkxNTE5YzguLmM2MmM3NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU2Nyb2xsVmlldzsKICAgICAKIGNsYXNzIEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3PiBjcmVh
dGUoU2Nyb2xsVmlldyopOyAgICAKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3PiBjcmVhdGUoU2Nyb2xsVmlldyopOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU2Nyb2xsQXJlYVJvbGU7IH0KICAg
ICBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxWaWV3OyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuY3BwCmluZGV4IGVlZGMyNjkuLjhmODFlODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcApA
QCAtNDIsOSArNDIsOSBAQCBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpBY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogICAgIEFTU0VSVChzY3JvbGxiYXIpOwogfQog
Ci1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI+IEFjY2Vzc2liaWxpdHlTY3JvbGxi
YXI6OmNyZWF0ZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKK1JlZjxBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyPiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjpjcmVhdGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKHNjcm9s
bGJhcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIo
c2Nyb2xsYmFyKSk7CiB9CiAgICAgCiBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6
OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmgKaW5kZXggNDM3MDQ0OS4uMmFmM2M5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgU2Nyb2xsYmFyOwogCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5U2Nyb2xsYmFyIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
PiBjcmVhdGUoU2Nyb2xsYmFyKik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyPiBjcmVhdGUoU2Nyb2xsYmFyKik7CiAKICAgICBTY3JvbGxiYXIqIHNjcm9sbGJhcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmll
bGRCdXR0b25zLmNwcAppbmRleCAzZDRlNzBjLi5jYWZhNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJjaEZp
ZWxkQnV0dG9ucy5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbj4gQWNjZXNz
aWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24+IEFjY2Vzc2li
aWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRD
YW5jZWxCdXR0b24ocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3Np
YmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24ocmVuZGVyZXIpKTsKIH0KIAogQWNjZXNzaWJp
bGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uOjpBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5j
ZWxCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQnV0dG9ucy5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25z
LmgKaW5kZXggOTZmNThiZS4uZWI2NGExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmgK
QEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmls
aXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24gZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24+IGNyZWF0ZShSZW5k
ZXJPYmplY3QqKTsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBhY2Nlc3NpYmlsaXR5RGVzY3Jp
cHRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eVRl
eHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKaW5kZXggNmI4
NzBhNi4uZDdiYTllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCkBAIC00NSw5ICs0NSw5IEBAIEFjY2Vzc2liaWxpdHlT
bGlkZXI6OkFjY2Vzc2liaWxpdHlTbGlkZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKIH0K
IAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBBY2Nlc3NpYmlsaXR5U2xpZGVyOjpj
cmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBB
Y2Nlc3NpYmlsaXR5U2xpZGVyOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlTbGlkZXIocmVuZGVyZXIpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U2xpZGVyKHJlbmRlcmVyKSk7CiB9
CiAKIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBBY2Nlc3NpYmlsaXR5U2xpZGVyOjpvcmllbnRh
dGlvbigpIGNvbnN0CkBAIC0xNDYsOSArMTQ2LDkgQEAgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1i
OjpBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlTbGlkZXJUaHVtYj4gQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjcmVhdGUoKQorUmVm
PEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYj4gQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjcmVh
dGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1i
KCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYigp
KTsKIH0KICAgICAKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjplbGVtZW50
UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNsaWRlci5oCmluZGV4IGIwZGQwMjAuLjFmMmU1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oCkBAIC0zOCw3ICsz
OCw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTbGlk
ZXIgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNsaWRlcj4gY3JlYXRlKFJlbmRlck9iamVjdCop
OworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNsaWRlcj4gY3JlYXRlKFJlbmRlck9iamVj
dCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTbGlkZXIoKSB7IH0KIAogcHJvdGVjdGVk
OgpAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U2xpZGVy
VGh1bWIgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYj4gY3JlYXRlKCk7
CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWI+IGNyZWF0ZSgpOwogICAg
IHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYigpIHsgfQogCiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTbGlk
ZXJUaHVtYlJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAKaW5kZXggM2NlOTQxOS4uMGM1MzM3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U3BpbkJ1dHRvbi5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uPiBBY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvbjo6Y3JlYXRlKCkKK1JlZjxBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbj4gQWNjZXNzaWJpbGl0
eVNwaW5CdXR0b246OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvbik7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0
eVNwaW5CdXR0b24pOwogfQogICAgIAogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OkFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uKCkKQEAgLTEwOSw5ICsxMDksOSBAQCBBY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvblBhcnQ6OkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydCgpCiB7CiB9CiAgICAgCi1QYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydD4gQWNjZXNzaWJpbGl0eVNwaW5CdXR0
b25QYXJ0OjpjcmVhdGUoKQorUmVmPEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydD4gQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b25QYXJ0OjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQpOwogfQogCiBMYXlvdXRSZWN0IEFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uUGFydDo6ZWxlbWVudFJlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oCmluZGV4
IGNlNmE5YmQuLmUwY2I2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24gZmluYWwg
OiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5BY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvbigpOwogICAgIAogICAgIHZvaWQgc2V0U3BpbkJ1dHRvbkVsZW1l
bnQoU3BpbkJ1dHRvbkVsZW1lbnQqIHNwaW5CdXR0b24pIHsgbV9zcGluQnV0dG9uRWxlbWVudCA9
IHNwaW5CdXR0b247IH0KQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgIAogY2xhc3MgQWNj
ZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlNb2Nr
T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U3Bp
bkJ1dHRvblBhcnQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNwaW5C
dXR0b25QYXJ0PiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRv
blBhcnQoKSB7IH0KICAgICAKICAgICBib29sIGlzSW5jcmVtZW50b3IoKSBjb25zdCB7IHJldHVy
biBtX2lzSW5jcmVtZW50b3I7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA2OTZkMDc2Li5iZTFjNDA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3Bw
CkBAIC02NSw5ICs2NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjppbml0KCkKICAgICBt
X2lzRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkgPSBjb21wdXRlSXNUYWJsZUV4cG9zYWJs
ZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCk7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRh
YmxlPiBBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQor
UmVmPEFjY2Vzc2liaWxpdHlUYWJsZT4gQWNjZXNzaWJpbGl0eVRhYmxlOjpjcmVhdGUoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxp
dHlUYWJsZShyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxp
dHlUYWJsZShyZW5kZXJlcikpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlUYWJsZTo6aGFzQVJJ
QVJvbGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlLmgKaW5kZXggY2Q1YmJlNy4uMWVmZDYyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC00MCw3ICs0MCw3
IEBAIGNsYXNzIFJlbmRlclRhYmxlU2VjdGlvbjsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlU
YWJsZSA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3Qq
KTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZT4gY3JlYXRlKFJlbmRlck9iamVj
dCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZSgpOwogCiAgICAgdmlydHVhbCB2
b2lkIGluaXQoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCmluZGV4IDY2MDJkMDcuLjdj
ZGFmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVDZWxsLmNwcApAQCAtNTEsOSArNTEsOSBAQCBBY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsOjp+QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRhYmxlQ2VsbD4gQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbD4gQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKHJlbmRlcmVyKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChyZW5kZXJlcikpOwog
fQogCiBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsLmgKaW5kZXggNjg3NThiNS4uODU5YTI1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxs
LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlOwogICAgIAogY2xh
c3MgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbCgpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2VsbCgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCmluZGV4IGI1MWViNzUuLjAyYzRl
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgQWNjZXNzaWJpbGl0eVRh
YmxlQ29sdW1uOjp+QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uKCkKIHsKIH0gICAgCiAKLVBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uPiBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46
OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uPiBBY2Nlc3NpYmlsaXR5VGFi
bGVDb2x1bW46OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmls
aXR5VGFibGVDb2x1bW4oKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uKCkpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6c2V0
UGFyZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCmluZGV4IDY3
YzQ0YjguLjBkYWM0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBS
ZW5kZXJUYWJsZVNlY3Rpb247CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbiBmaW5h
bCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uPiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbj4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+
QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uKCk7CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogaGVhZGVyT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHAKaW5k
ZXggM2QwMzA3Zi4uZTMwMTE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNw
cApAQCAtNDIsOSArNDIsOSBAQCBBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6On5B
Y2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIoKQogewogfQogCi1QYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcj4gQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyOjpjcmVhdGUoKQorUmVmPEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
cj4gQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOjpjcmVhdGUoKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5l
cigpKTsKIH0KICAgICAKIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFp
bmVyOjplbGVtZW50UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaApp
bmRleCAyNjZkMTRjLi5lNGNlNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgK
QEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBY2Nlc3NpYmls
aXR5VGFibGVIZWFkZXJDb250YWluZXIgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tP
YmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJs
ZUhlYWRlckNvbnRhaW5lcj4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5
VGFibGVIZWFkZXJDb250YWluZXI+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlUYWJsZUhlYWRlckNvbnRhaW5lcigpOwogICAgIAogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVGFibGVIZWFkZXJDb250
YWluZXJSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKaW5kZXggNjY1Mjk1ZS4uODZiOGY2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93
LmNwcApAQCAtNTEsOSArNTEsOSBAQCBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6On5BY2Nlc3NpYmls
aXR5VGFibGVSb3coKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4g
QWNjZXNzaWJpbGl0eVRhYmxlUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1Jl
ZjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6Y3JlYXRlKFJl
bmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3Np
YmlsaXR5VGFibGVSb3cocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nl
c3NpYmlsaXR5VGFibGVSb3cocmVuZGVyZXIpKTsKIH0KIAogQWNjZXNzaWJpbGl0eVJvbGUgQWNj
ZXNzaWJpbGl0eVRhYmxlUm93OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaApp
bmRleCBmMDg5MWJlLi5hYTFmZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3Mg
QWNjZXNzaWJpbGl0eVRhYmxlOwogCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGVSb3cgOiBwdWJs
aWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlUm93PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAg
c3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsK
ICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVSb3coKTsKIAogICAgIC8vIHJldHJpZXZl
cyB0aGUgInJvdyIgaGVhZGVyIChhIHRoIHRhZyBpbiB0aGUgcmlnaHRtb3N0IGNvbHVtbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCmluZGV4IGI5NWZkYzguLjJhMjI4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaApAQCAtMzcs
NyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoQ2FjaGVk
U2NyaXB0KiBjYWNoZWRTY3JpcHQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYWNoZWRTY3JpcHRT
b3VyY2VQcm92aWRlcihjYWNoZWRTY3JpcHQpKTsgfQorICAgIHN0YXRpYyBSZWY8Q2FjaGVkU2Ny
aXB0U291cmNlUHJvdmlkZXI+IGNyZWF0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihjYWNoZWRTY3Jp
cHQpKTsgfQogCiAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3Js
ZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKaW5kZXgg
YjNmMzY5YS4uZjg4ZTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
RE9NV3JhcHBlcldvcmxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3Jh
cHBlcldvcmxkLmgKQEAgLTM1LDkgKzM1LDkgQEAgdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBKU0M6
OldlYWs8SlNDOjpKU09iamVjdD4+IERPTU9iamVjdFdyYXBwZXJNYXA7CiAKIGNsYXNzIERPTVdy
YXBwZXJXb3JsZCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVdyYXBwZXJXb3JsZD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gY3JlYXRlKEpTQzo6Vk0m
IHZtLCBib29sIGlzTm9ybWFsID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxET01XcmFwcGVyV29y
bGQ+IGNyZWF0ZShKU0M6OlZNJiB2bSwgYm9vbCBpc05vcm1hbCA9IGZhbHNlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01XcmFwcGVyV29ybGQodm0sIGlzTm9ybWFsKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERPTVdyYXBwZXJXb3JsZCh2bSwgaXNOb3Jt
YWwpKTsKICAgICB9CiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdyYXBwZXJXb3JsZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAppbmRleCBlNmM4MzczLi5kY2E1NjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTIxMjcsNiArMjEyNywx
MiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdG9KUyhtX2V4ZWMsIGpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KG1fZ2xvYmFsT2JqZWN0KSwgbmF0aXZlT2JqKTsKICAgICB9CiAKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBUPgorICAgIEpTVmFsdWUgZ2V0SlNWYWx1ZShUJiBuYXRpdmVPYmopCisg
ICAgeworICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZSgmbmF0aXZlT2JqKTsKKyAgICB9CisKICAg
ICBKU1ZhbHVlIHJlYWRUZXJtaW5hbCgpCiAgICAgewogICAgICAgICBTZXJpYWxpemF0aW9uVGFn
IHRhZyA9IHJlYWRUYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDFkYWI5YTAuLjU5YmQ3OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jlc29sdmVy
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUN1c3RvbVhQYXRo
TlNSZXNvbHZlcj4gY3JlYXRlKGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJlc29sdmVy
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGN1c3RvbVJl
c29sdmVyKSk7IH0KKyAgICAgICAgc3RhdGljIFJlZjxET01DdXN0b21YUGF0aE5TUmVzb2x2ZXI+
IGNyZWF0ZShpZCA8RE9NWFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcikgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIoY3VzdG9tUmVzb2x2ZXIpKTsg
fQogICAgICAgICB2aXJ0dWFsIH5ET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIoKTsKIAogICAgICAg
ICB2aXJ0dWFsIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCA4NTk1ZDE5Li5kM2Y1ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQxMyw5ICszNDEzLDkgQEAg
c3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVi
bGljOlxuIik7CiAKICAgICAjIFRoZSBzdGF0aWMgY3JlYXRlKCkgbWV0aG9kLgotICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8JGNsYXNzTmFtZT4gY3JlYXRl
KEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KVxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUmVmPCRjbGFzc05h
bWU+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdClcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7Ci0g
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAkY2xh
c3NOYW1lKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTtcbiIpOworICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3ICRjbGFzc05hbWUoY2FsbGJhY2ss
IGdsb2JhbE9iamVjdCkpO1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5c
biIpOwogCiAgICAgIyBTY3JpcHRFeGVjdXRpb25Db250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9j
X2luc3RhbmNlLmgKaW5kZXggODU5NjQwNS4uZGI5ZDEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L2NfaW5zdGFuY2UuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBDQ2xhc3M7CiAKIGNsYXNzIENJ
bnN0YW5jZSA6IHB1YmxpYyBJbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q0luc3RhbmNlPiBjcmVhdGUoTlBPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxSb290T2Jq
ZWN0PiByb290T2JqZWN0KQorICAgIHN0YXRpYyBSZWY8Q0luc3RhbmNlPiBjcmVhdGUoTlBPYmpl
Y3QqIG9iamVjdCwgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDSW5zdGFuY2Uob2JqZWN0LCByb290T2JqZWN0KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENJbnN0YW5jZShvYmplY3QsIHJvb3RPYmpl
Y3QpKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCBzZXRHbG9iYWxFeGNlcHRpb24oU3RyaW5n
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5oCmluZGV4IDliYzc2ZDMuLmZiMjdj
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuaApAQCAtMzcsOSArMzcsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0tleVBhaXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxDcnlwdG9LZXlQYWlyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
Q3J5cHRvS2V5UGFpcj4gY3JlYXRlKFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwdWJsaWNLZXksIFBh
c3NSZWZQdHI8Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQorICAgIHN0YXRpYyBSZWY8Q3J5cHRvS2V5
UGFpcj4gY3JlYXRlKFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwdWJsaWNLZXksIFBhc3NSZWZQdHI8
Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDcnlwdG9LZXlQYWlyKHB1YmxpY0tleSwgcHJpdmF0ZUtleSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDcnlwdG9LZXlQYWlyKHB1YmxpY0tleSwgcHJpdmF0ZUtleSkpOwogICAg
IH0KICAgICB+Q3J5cHRvS2V5UGFpcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5oCmluZGV4IDBiN2JiNjEuLjE4YjAxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5QUVTIGZpbmFsIDogcHVibGljIENyeXB0b0tleSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRvS2V5QUVTPiBjcmVhdGUoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKKyAgICBzdGF0aWMgUmVm
PENyeXB0b0tleUFFUz4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGht
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2UgdXNhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tl
eUFFUyhhbGdvcml0aG0sIGtleSwgZXh0cmFjdGFibGUsIHVzYWdlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENyeXB0b0tleUFFUyhhbGdvcml0aG0sIGtleSwgZXh0cmFjdGFibGUs
IHVzYWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkNyeXB0b0tleUFFUygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmgKaW5kZXggYjc4M2M2Ni4uY2E1MTMx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaApAQCAtMzUs
OSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0tleUhNQUMgZmlu
YWwgOiBwdWJsaWMgQ3J5cHRvS2V5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
cnlwdG9LZXlITUFDPiBjcmVhdGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Ug
dXNhZ2UpCisgICAgc3RhdGljIFJlZjxDcnlwdG9LZXlITUFDPiBjcmVhdGUoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBrZXksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENyeXB0b0tleUhNQUMoa2V5LCBoYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvS2V5SE1BQyhrZXksIGhhc2gsIGV4
dHJhY3RhYmxlLCB1c2FnZSkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5DcnlwdG9LZXlITUFDKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKaW5kZXggMWZjNDIz
MS4uMWFhNTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRv
S2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgK
QEAgLTQ5LDkgKzQ5LDkgQEAgY2xhc3MgUHJvbWlzZVdyYXBwZXI7CiAKIGNsYXNzIENyeXB0b0tl
eVJTQSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9LZXkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENyeXB0b0tleVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRl
bnRpZmllciwgQ3J5cHRvS2V5VHlwZSB0eXBlLCBQbGF0Zm9ybVJTQUtleSBwbGF0Zm9ybUtleSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCisgICAgc3RhdGljIFJlZjxD
cnlwdG9LZXlSU0E+IGNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIs
IENyeXB0b0tleVR5cGUgdHlwZSwgUGxhdGZvcm1SU0FLZXkgcGxhdGZvcm1LZXksIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDcnlwdG9LZXlSU0EoaWRlbnRpZmllciwgdHlwZSwgcGxhdGZvcm1LZXksIGV4
dHJhY3RhYmxlLCB1c2FnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9L
ZXlSU0EoaWRlbnRpZmllciwgdHlwZSwgcGxhdGZvcm1LZXksIGV4dHJhY3RhYmxlLCB1c2FnZSkp
OwogICAgIH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IGNyZWF0ZShDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9L
ZXlSU0EoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5
UlNBTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNw
cAppbmRleCAwZmExNzRjLi5iNTZhYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9LZXlSU0FNYWMuY3BwCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBDcnlwdG9LZXlS
U0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgdW5z
aWduZWQgbW8KICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgXnsKICAgICAgICAgICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+IHB1YmxpY0tleSA9IENyeXB0
b0tleVJTQTo6Y3JlYXRlKGFsZ29yaXRobSwgQ3J5cHRvS2V5VHlwZTo6UHVibGljLCBjY1B1Ymxp
Y0tleSwgdHJ1ZSwgdXNhZ2UpOwogICAgICAgICAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4gcHJp
dmF0ZUtleSA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKGFsZ29yaXRobSwgQ3J5cHRvS2V5VHlwZTo6
UHJpdmF0ZSwgY2NQcml2YXRlS2V5LCBleHRyYWN0YWJsZSwgdXNhZ2UpOwotICAgICAgICAgICAg
KCpsb2NhbENhbGxiYWNrKSgqQ3J5cHRvS2V5UGFpcjo6Y3JlYXRlKHB1YmxpY0tleS5yZWxlYXNl
KCksIHByaXZhdGVLZXkucmVsZWFzZSgpKSk7CisgICAgICAgICAgICAoKmxvY2FsQ2FsbGJhY2sp
KENyeXB0b0tleVBhaXI6OmNyZWF0ZShwdWJsaWNLZXkucmVsZWFzZSgpLCBwcml2YXRlS2V5LnJl
bGVhc2UoKSkpOwogICAgICAgICAgICAgZGVsZXRlIGxvY2FsQ2FsbGJhY2s7CiAgICAgICAgIH0p
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmNwcAppbmRleCA1YmM4M2MyLi41
ODc4MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmNwcApAQCAtMzYsOSArMzYsOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NV2luZG93Q1NTPiBET01X
aW5kb3dDU1M6OmNyZWF0ZSgpCitSZWY8RE9NV2luZG93Q1NTPiBET01XaW5kb3dDU1M6OmNyZWF0
ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01XaW5kb3dDU1MoKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93Q1NTKTsKIH0KIAogc3RhdGljIFN0cmluZyB2YWx1
ZVdpdGhvdXRJbXBvcnRhbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5k
b3dDU1MuaAppbmRleCA3OWQ1ZDk3Li4xMDVlY2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NV2luZG93Q1NTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NT
Uy5oCkBAIC0zMSwxNCArMzEsMTQgQEAKICNkZWZpbmUgRE9NV2luZG93Q1NTX2gKIAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBET01XaW5kb3dDU1MgOiBwdWJsaWMgUmVmQ291bnRlZDxET01XaW5k
b3dDU1M+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxE
T01XaW5kb3dDU1M+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RE9N
V2luZG93Q1NTPiBjcmVhdGUoKTsKIAogICAgIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0cyhj
b25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2Fy
ZFJlZ2lvbi5oCmluZGV4IDViNWYwYmQuLjJhMzFiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EYXNoYm9hcmRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGFzaGJv
YXJkUmVnaW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEYXNoYm9hcmRSZWdpb24gOiBwdWJsaWMgUmVjdEJhc2UsIHB1YmxpYyBSZWZDb3VudGVkPERh
c2hib2FyZFJlZ2lvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhc2hib2Fy
ZFJlZ2lvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhc2hib2FyZFJlZ2lvbik7
IH0KKyAgICBzdGF0aWMgUmVmPERhc2hib2FyZFJlZ2lvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEYXNoYm9hcmRSZWdpb24pOyB9CiAgICAgYm9vbCBlcXVhbHMoY29uc3QgRGFz
aGJvYXJkUmVnaW9uJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2xhYmVs
ID09IG90aGVyLm1fbGFiZWwgJiYgbV9nZW9tZXRyeVR5cGUgPT0gb3RoZXIubV9nZW9tZXRyeVR5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udExvYWRlci5oCmluZGV4IGI2ZDZkOTEuLjM3ZTdhNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRMb2FkZXIuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogCiBjbGFzcyBGb250TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8Rm9u
dExvYWRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udExvYWRlcj4gY3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPEZvbnRMb2FkZXI+IGNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWY8Rm9udExvYWRlcj4obmV3
IEZvbnRMb2FkZXIoZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPEZvbnRMb2Fk
ZXI+KCpuZXcgRm9udExvYWRlcihkb2N1bWVudCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Gb250
TG9hZGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgKaW5kZXggZTlmM2QwYi4uZTZjODUxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUVycm9yLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgRE9NRXJyb3JfaAog
I2RlZmluZSBET01FcnJvcl9oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTM0LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01FcnJvciA6
IHB1YmxpYyBSZWZDb3VudGVkPERPTUVycm9yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RE9NRXJyb3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgc3RhdGljIFJl
ZjxET01FcnJvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRE9NRXJyb3IobmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBET01FcnJvcihuYW1lKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkRPTUVycm9yKCkg
eyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5oCmluZGV4IGQzNjU3OTkuLjViNDUxMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyAgICAgICAgdGhhbiBjcmVhdGluZyB0aGUgbGlzdCBzdGF0aWNhbGx5
IGFzIGlzIGN1cnJlbnRseSB0aGUgb25seSBvcHRpb24uCiBjbGFzcyBET01TdHJpbmdMaXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8RE9NU3RyaW5nTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxET01TdHJp
bmdMaXN0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01T
dHJpbmdMaXN0KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01TdHJpbmdMaXN0
KTsKICAgICB9CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZ3Mu
aXNFbXB0eSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmluZGV4IDM4NGM4NWYu
Ljg1ZmNlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBAIC03Miw5ICs3Miw5
IEBAIERhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBw
b2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeSBwb2xpY3kpCitSZWY8RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgcG9saWN5ID09IERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUgPyBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2
YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIHBvbGljeSA9PSBEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlID8gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpIDog
UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpKTsKIH0KIAogRGF0YVRyYW5zZmVy
Ojp+RGF0YVRyYW5zZmVyKCkKQEAgLTIyOSwxNCArMjI5LDE0IEBAIHZvaWQgRGF0YVRyYW5zZmVy
OjpzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCwgaW50KQogCiAjZWxzZQogCi1QYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitSZWY8
RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3k6OldyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpLCBEcmFnQW5k
RHJvcCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2ZlcihEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpLCBEcmFnQW5kRHJvcCkpOwogfQogCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRGF0YVRy
YW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9s
aWN5LCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitSZWY8RGF0YVRyYW5zZmVyPiBEYXRhVHJh
bnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xp
Y3ksIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERhdGFUcmFuc2Zlcihwb2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRy
YWdEYXRhKSwgRHJhZ0FuZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5zRmlsZXMoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgRHJhZ0FuZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5z
RmlsZXMoKSkpOwogfQogCiBib29sIERhdGFUcmFuc2Zlcjo6Y2FuU2V0RHJhZ0ltYWdlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCBjYTgzYjlmLi44NGEzMDExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIGNsYXNzIERhdGFUcmFuc2ZlciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFU
cmFuc2Zlcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVyPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5KTsK
KyAgICAgICAgc3RhdGljIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZShE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kpOwogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIH5EYXRh
VHJhbnNmZXIoKTsKIApAQCAtODIsOCArODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQoKSB7IHJldHVybiAqbV9wYXN0ZWJvYXJkOyB9CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5LCBjb25zdCBEcmFnRGF0YSYpOworICAgICAgICBzdGF0aWMgUmVmPERhdGFUcmFuc2Zl
cj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICAgICAgc3RhdGljIFJlZjxEYXRhVHJhbnNm
ZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSwgY29uc3Qg
RHJhZ0RhdGEmKTsKIAogICAgICAgICBib29sIGRyb3BFZmZlY3RJc1VuaW5pdGlhbGl6ZWQoKSBj
b25zdCB7IHJldHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6ZWQiOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcAppbmRleCA0NDFjODBkLi44M2FjMjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwCkBAIC0yOCwxMSArMjgsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERldmljZU1vdGlvbkRhdGE6
OkFjY2VsZXJhdGlvbj4gRGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUoYm9v
bCBjYW5Qcm92aWRlWCwgZG91YmxlIHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBj
YW5Qcm92aWRlWSwgZG91YmxlIHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Q
cm92aWRlWiwgZG91YmxlIHopCitSZWY8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBE
ZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZShib29sIGNhblByb3ZpZGVYLCBk
b3VibGUgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuUHJvdmlkZVksIGRvdWJsZSB5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlWiwgZG91YmxlIHopCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24oY2FuUHJvdmlk
ZVgsIHgsIGNhblByb3ZpZGVZLCB5LCBjYW5Qcm92aWRlWiwgeikpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbihjYW5Qcm92aWRlWCwgeCwg
Y2FuUHJvdmlkZVksIHksIGNhblByb3ZpZGVaLCB6KSk7CiB9CiAKIERldmljZU1vdGlvbkRhdGE6
OkFjY2VsZXJhdGlvbjo6QWNjZWxlcmF0aW9uKGJvb2wgY2FuUHJvdmlkZVgsIGRvdWJsZSB4LCBi
b29sIGNhblByb3ZpZGVZLCBkb3VibGUgeSwgYm9vbCBjYW5Qcm92aWRlWiwgZG91YmxlIHopCkBA
IC00NiwxMSArNDYsMTEgQEAgRGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uOjpBY2NlbGVy
YXRpb24oYm9vbCBjYW5Qcm92aWRlWCwgZG91YmxlIHgsIGJvb2wgY2EKIHsKIH0KIAotUGFzc1Jl
ZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IERldmljZU1vdGlvbkRhdGE6OlJv
dGF0aW9uUmF0ZTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBn
YW1tYSkKK1JlZjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IERldmljZU1vdGlvbkRh
dGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxw
aGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGUo
Y2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVH
YW1tYSwgZ2FtbWEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VNb3Rpb25EYXRh
OjpSb3RhdGlvblJhdGUoY2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJl
dGEsIGNhblByb3ZpZGVHYW1tYSwgZ2FtbWEpKTsKIH0KIAogRGV2aWNlTW90aW9uRGF0YTo6Um90
YXRpb25SYXRlOjpSb3RhdGlvblJhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBo
YSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1h
LCBkb3VibGUgZ2FtbWEpCkBAIC02MywxNSArNjMsMTUgQEAgRGV2aWNlTW90aW9uRGF0YTo6Um90
YXRpb25SYXRlOjpSb3RhdGlvblJhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBo
YSwKIHsKIH0KIAotUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBEZXZpY2VNb3Rpb25EYXRh
OjpjcmVhdGUoKQorUmVmPERldmljZU1vdGlvbkRhdGE+IERldmljZU1vdGlvbkRhdGE6OmNyZWF0
ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25EYXRhKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VNb3Rpb25EYXRhKTsKIH0KIAotUGFzc1JlZlB0cjxE
ZXZpY2VNb3Rpb25EYXRhPiBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoUGFzc1JlZlB0cjxBY2Nl
bGVyYXRpb24+IGFjY2VsZXJhdGlvbiwgUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+IGFjY2VsZXJh
dGlvbkluY2x1ZGluZ0dyYXZpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFJvdGF0aW9uUmF0ZT4gcm90YXRpb25SYXRl
LCBib29sIGNhblByb3ZpZGVJbnRlcnZhbCwgZG91YmxlIGludGVydmFsKQorUmVmPERldmljZU1v
dGlvbkRhdGE+IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShQYXNzUmVmUHRyPEFjY2VsZXJhdGlv
bj4gYWNjZWxlcmF0aW9uLCBQYXNzUmVmUHRyPEFjY2VsZXJhdGlvbj4gYWNjZWxlcmF0aW9uSW5j
bHVkaW5nR3Jhdml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFzc1JlZlB0cjxSb3RhdGlvblJhdGU+IHJvdGF0aW9uUmF0ZSwgYm9vbCBjYW5Qcm92
aWRlSW50ZXJ2YWwsIGRvdWJsZSBpbnRlcnZhbCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERldmljZU1vdGlvbkRhdGEoYWNjZWxlcmF0aW9uLCBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2
aXR5LCByb3RhdGlvblJhdGUsIGNhblByb3ZpZGVJbnRlcnZhbCwgaW50ZXJ2YWwpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VNb3Rpb25EYXRhKGFjY2VsZXJhdGlvbiwgYWNjZWxl
cmF0aW9uSW5jbHVkaW5nR3Jhdml0eSwgcm90YXRpb25SYXRlLCBjYW5Qcm92aWRlSW50ZXJ2YWws
IGludGVydmFsKSk7CiB9CiAKIERldmljZU1vdGlvbkRhdGE6OkRldmljZU1vdGlvbkRhdGEoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmgKaW5kZXggZjE0MWEzNS4uZmRlZDc0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRGF0YS5oCkBAIC0zNiw3ICszNiw3IEBAIGNs
YXNzIERldmljZU1vdGlvbkRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXZpY2VNb3Rpb25EYXRh
PiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgQWNjZWxlcmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiB7CiAgICAgcHVibGljOgotICAgICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+IGNyZWF0ZShib29s
IGNhblByb3ZpZGVYLCBkb3VibGUgeCwgYm9vbCBjYW5Qcm92aWRlWSwgZG91YmxlIHksIGJvb2wg
Y2FuUHJvdmlkZVosIGRvdWJsZSB6KTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxBY2NlbGVyYXRpb24+IGNyZWF0ZShib29sIGNhblByb3ZpZGVYLCBkb3VibGUgeCwgYm9vbCBj
YW5Qcm92aWRlWSwgZG91YmxlIHksIGJvb2wgY2FuUHJvdmlkZVosIGRvdWJsZSB6KTsKIAogICAg
ICAgICBib29sIGNhblByb3ZpZGVYKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Qcm92aWRlWDsgfQog
ICAgICAgICBib29sIGNhblByb3ZpZGVZKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Qcm92aWRlWTsg
fQpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBSb3RhdGlvblJhdGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFJvdGF0aW9u
UmF0ZT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2Fu
UHJvdmlkZUJldGEsICBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBn
YW1tYSk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8Um90YXRpb25SYXRlPiBj
cmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRl
QmV0YSwgIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKTsK
IAogICAgICAgICBib29sIGNhblByb3ZpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJv
dmlkZUFscGhhOyB9CiAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUJldGEoKSBjb25zdCB7IHJldHVy
biBtX2NhblByb3ZpZGVCZXRhOyB9CkBAIC04Miw5ICs4Miw5IEBAIHB1YmxpYzoKICAgICAgICAg
Ym9vbCBtX2NhblByb3ZpZGVHYW1tYTsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFBhc3NSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKCk7Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9u
PiBhY2NlbGVyYXRpb24sIFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb25JbmNs
dWRpbmdHcmF2aXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQYXNzUmVmUHRyPFJvdGF0aW9uUmF0ZT4gcm90YXRpb25SYXRlLCBib29sIGNhblByb3Zp
ZGVJbnRlcnZhbCwgZG91YmxlIGludGVydmFsKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmPERldmljZU1vdGlvbkRhdGE+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8RGV2aWNlTW90
aW9uRGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb24sIFBh
c3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Um90YXRpb25S
YXRlPiByb3RhdGlvblJhdGUsIGJvb2wgY2FuUHJvdmlkZUludGVydmFsLCBkb3VibGUgaW50ZXJ2
YWwpOwogCiAgICAgY29uc3QgQWNjZWxlcmF0aW9uKiBhY2NlbGVyYXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX2FjY2VsZXJhdGlvbi5nZXQoKTsgfQogICAgIGNvbnN0IEFjY2VsZXJhdGlvbiogYWNj
ZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0aW9u
SW5jbHVkaW5nR3Jhdml0eS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25EYXRhLmNwcAppbmRleCBkNmE1ZjJjLi41NDY1Y2E5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcApAQCAtMjgsMjEgKzI4LDIxIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+
IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKCkKK1JlZjxEZXZpY2VPcmllbnRhdGlvbkRh
dGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERldmljZU9yaWVudGF0aW9uRGF0YSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGV2aWNlT3JpZW50YXRpb25EYXRhKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmVjb25jaWxlIHRoZSBpT1MgYW5kIE9wZW5Tb3VyY2UgZGlmZmVyZW5jZXMu
Ci1QYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3JpZW50YXRpb25EYXRh
OjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92
aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEs
IGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGJv
b2wgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK1Jl
ZjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKGJv
b2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRv
dWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hLCBib29sIGNhblBy
b3ZpZGVDb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBib29sIGNhblByb3Zp
ZGVDb21wYXNzQWNjdXJhY3ksIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEZXZpY2VPcmllbnRhdGlvbkRhdGEoY2FuUHJvdmlkZUFscGhhLCBhbHBo
YSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVHYW1tYSwgZ2FtbWEsIGNhblByb3Zp
ZGVDb21wYXNzSGVhZGluZywgY29tcGFzc0hlYWRpbmcsIGNhblByb3ZpZGVDb21wYXNzQWNjdXJh
Y3ksIGNvbXBhc3NBY2N1cmFjeSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU9y
aWVudGF0aW9uRGF0YShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0
YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSwgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBjb21w
YXNzSGVhZGluZywgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgY29tcGFzc0FjY3VyYWN5KSk7
CiB9CiAjZWxzZQotUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVu
dGF0aW9uRGF0YTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJv
b2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91
YmxlIGdhbW1hLCBib29sIGNhblByb3ZpZGVBYnNvbHV0ZSwgYm9vbCBhYnNvbHV0ZSkKK1JlZjxE
ZXZpY2VPcmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKGJvb2wg
Y2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJs
ZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hLCBib29sIGNhblByb3Zp
ZGVBYnNvbHV0ZSwgYm9vbCBhYnNvbHV0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERl
dmljZU9yaWVudGF0aW9uRGF0YShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0
YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSwgY2FuUHJvdmlkZUFic29sdXRlLCBhYnNv
bHV0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU9yaWVudGF0aW9uRGF0YShj
YW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdh
bW1hLCBnYW1tYSwgY2FuUHJvdmlkZUFic29sdXRlLCBhYnNvbHV0ZSkpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuaAppbmRleCA0OGE3YWFj
Li5jZDlmZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5o
CkBAIC0yNiwxOCArMjYsMTggQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25EYXRhX2gKICNk
ZWZpbmUgRGV2aWNlT3JpZW50YXRpb25EYXRhX2gKIAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhIDogcHVi
bGljIFJlZkNvdW50ZWQ8RGV2aWNlT3JpZW50YXRpb25EYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPERldmljZU9yaWVudGF0aW9uRGF0YT4gY3JlYXRlKCk7CiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RGF0YT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2Fu
UHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdh
bW1hLCBib29sIGNhblByb3ZpZGVDb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NIZWFkaW5n
LCBib29sIGNhblByb3ZpZGVDb21wYXNzQWNjdXJhY3ksIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBj
cmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRl
QmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEsIGJv
b2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGJvb2wg
Y2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSk7CiAjZWxz
ZQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RGF0YT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2Fu
UHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdh
bW1hLCBib29sIGNhblByb3ZpZGVBYnNvbHV0ZSA9IGZhbHNlLCBib29sIGFic29sdXRlID0gZmFs
c2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25EYXRh
PiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92
aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEs
IGJvb2wgY2FuUHJvdmlkZUFic29sdXRlID0gZmFsc2UsIGJvb2wgYWJzb2x1dGUgPSBmYWxzZSk7
CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhbHBoYSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlci5jcHAKaW5kZXggY2VjNTliZC4uMDVmMDgwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIERvY3VtZW50TWFya2VyRGV0YWls
czo6fkRvY3VtZW50TWFya2VyRGV0YWlscygpCiAKIGNsYXNzIERvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb24gOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJik7CisgICAgc3RhdGljIFJlZjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJik7CiAKICAgICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Rlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTMsOSArNTMsOSBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOwogfTsKIAotUGFzc1JlZlB0cjxEb2N1bWVu
dE1hcmtlckRlc2NyaXB0aW9uPiBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK1JlZjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBE
b2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
bikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24o
ZGVzY3JpcHRpb24pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudE1hcmtlckRl
c2NyaXB0aW9uKGRlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSBEb2N1bWVudE1hcmtlckRlc2Ny
aXB0aW9uKiB0b0RvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oRG9jdW1lbnRNYXJrZXJEZXRhaWxz
KiBkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5jcHAKaW5kZXggNmQ3M2NhZS4uOWJjZWJhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBAIC01
Miw5ICs1Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0b2NvcnJlY3Rpb25B
bHRlcm5hdGl2ZURldGFpbHMgOiBwdWJsaWMgQWx0ZXJuYXRpdmVUZXh0RGV0YWlscyB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFp
bHM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKQorICAgIHN0YXRpYyBS
ZWY8QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHM+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBB
dXRvY29ycmVjdGlvbkFsdGVybmF0aXZlRGV0YWlscyhyZXBsYWNlbWVudFN0cmluZykpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdXRvY29ycmVjdGlvbkFsdGVybmF0aXZlRGV0YWls
cyhyZXBsYWNlbWVudFN0cmluZykpOwogICAgIH0KICAgICAKICAgICBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBsYWNlbWVudFN0cmluZzsgfQpA
QCAtNjgsOSArNjgsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaWN0YXRpb25BbHRlcm5hdGl2ZURl
dGFpbHMgOiBwdWJsaWMgQWx0ZXJuYXRpdmVUZXh0RGV0YWlscyB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RGljdGF0aW9uQWx0ZXJuYXRpdmVEZXRhaWxzPiBjcmVhdGUodWludDY0
X3QgZGljdGF0aW9uQ29udGV4dCkKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkFsdGVybmF0aXZl
RGV0YWlscz4gY3JlYXRlKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3RhdGlvbkFsdGVybmF0aXZlRGV0YWlscyhkaWN0YXRp
b25Db250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkFsdGVy
bmF0aXZlRGV0YWlscyhkaWN0YXRpb25Db250ZXh0KSk7CiAgICAgfQogCiAgICAgdWludDY0X3Qg
ZGljdGF0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGljdGF0aW9uQ29udGV4dDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
aAppbmRleCBiMTA2YWM1Li4xMjMyMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaApAQCAtNjIsOSArNjIsOSBAQCBzdHJ1Y3Qg
QWx0ZXJuYXRpdmVUZXh0SW5mbyB7CiAKIGNsYXNzIERpY3RhdGlvbk1hcmtlckRldGFpbHMgOiBw
dWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxEaWN0YXRpb25NYXJrZXJEZXRhaWxzPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvcmlnaW5h
bFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCisgICAgc3RhdGljIFJlZjxEaWN0YXRp
b25NYXJrZXJEZXRhaWxzPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQsIHVpbnQ2
NF90IGRpY3RhdGlvbkNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERpY3RhdGlvbk1hcmtlckRldGFpbHMob3JpZ2luYWxUZXh0LCBkaWN0YXRpb25Db250ZXh0KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbk1hcmtlckRldGFpbHMob3Jp
Z2luYWxUZXh0LCBkaWN0YXRpb25Db250ZXh0KSk7CiAgICAgfQogICAgIGNvbnN0IFN0cmluZyYg
b3JpZ2luYWxUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbFRleHQ7IH0KICAgICB1aW50
NjRfdCBkaWN0YXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kaWN0YXRpb25Db250ZXh0
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggMTg1
NGZkMi4uZDY0YjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFwcGVu
ZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJl
ZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5k
ZXggMTBmNjE1NC4uZTk5ZTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuaApAQCAtNDgsMjEgKzQ4LDIxIEBAIHB1YmxpYzoKICAgICBlbnVtIEVBZGRTdHls
ZWRFbGVtZW50IHsgQWRkU3R5bGVkRWxlbWVudCwgRG9Ob3RBZGRTdHlsZWRFbGVtZW50IH07CiAg
ICAgdHlwZWRlZiBib29sICgqSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbikoY29uc3Qg
RWxlbWVudCopOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1hbmQ+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRB
Y3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0eUxldmVs
IGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQorICAgIHN0YXRpYyBSZWY8QXBwbHlTdHlsZUNvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUs
IEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVQcm9wZXJ0
eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGFjdGlvbiwgbGV2
ZWwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9j
dW1lbnQsIHN0eWxlLCBhY3Rpb24sIGxldmVsKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBF
ZGl0aW5nU3R5bGUqIHN0eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9u
JiBlbmQsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVQ
cm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQorICAgIHN0YXRpYyBSZWY8QXBw
bHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdT
dHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwg
RWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3BlcnR5
TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgc3RhcnQsIGVuZCwg
YWN0aW9uLCBsZXZlbCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBseVN0eWxl
Q29tbWFuZChkb2N1bWVudCwgc3R5bGUsIHN0YXJ0LCBlbmQsIGFjdGlvbiwgbGV2ZWwpKTsKICAg
ICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSA9IGZhbHNlLCBFZGl0QWN0
aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQorICAgIHN0YXRpYyBSZWY8
QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJv
b2wgcmVtb3ZlT25seSA9IGZhbHNlLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFu
Z2VBdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcHBseVN0
eWxlQ29tbWFuZChlbGVtZW50LCByZW1vdmVPbmx5LCBhY3Rpb24pKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZWxlbWVudCwgcmVtb3ZlT25seSwgYWN0
aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGx5U3R5bGVDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJc0lu
bGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rp
b24sIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpCisgICAg
c3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlv
biBpc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVk
aXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGlzSW5saW5lRWxlbWVudFRv
UmVtb3ZlRnVuY3Rpb24sIGFjdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
cHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGlzSW5saW5lRWxlbWVudFRvUmVtb3Zl
RnVuY3Rpb24sIGFjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgKaW5kZXggNDM4ZTE1YS4uN2NlZDk1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5k
LmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCcmVha0Js
b2NrcXVvdGVDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCcmVha0Jsb2NrcXVvdGVDb21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8QnJlYWtCbG9ja3F1b3RlQ29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQnJlYWtCbG9ja3F1b3RlQ29tbWFuZChkb2N1bWVudCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBCcmVha0Jsb2NrcXVvdGVDb21tYW5kKGRvY3VtZW50KSk7CiAgICAgfQog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAppbmRleCAzNzJiNTU3Li42ZTAzM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNzYsMTAgKzc2LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUGFzc1JlZlB0
cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LAorUmVmPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IEVkaXRDb21t
YW5kQ29tcG9zaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsCiAgICAgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRWRpdENvbW1hbmRDb21wb3NpdGlvbihkb2N1bWVudCwgc3RhcnRpbmdTZWxl
Y3Rpb24sIGVuZGluZ1NlbGVjdGlvbiwgZWRpdEFjdGlvbikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEVkaXRDb21tYW5kQ29tcG9zaXRpb24oZG9jdW1lbnQsIHN0YXJ0aW5nU2VsZWN0aW9u
LCBlbmRpbmdTZWxlY3Rpb24sIGVkaXRBY3Rpb24pKTsKIH0KIAogRWRpdENvbW1hbmRDb21wb3Np
dGlvbjo6RWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCA1ZmY4ODYyLi5jMmI0ODlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBA
IC00MCw3ICs0MCw3IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIEVkaXRDb21tYW5kQ29tcG9zaXRp
b24gOiBwdWJsaWMgVW5kb1N0ZXAgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVk
aXRDb21tYW5kQ29tcG9zaXRpb24+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgRWRpdEFjdGlvbik7CisgICAgc3RhdGlj
IFJlZjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEVkaXRBY3Rpb24pOwogCiAg
ICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVh
cHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVh
dGVMaW5rQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFu
ZC5oCmluZGV4IDkyYjNkYzcuLjg4Y2VjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Ny
ZWF0ZUxpbmtDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDcmVhdGVMaW5rQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3JlYXRlTGlua0NvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbGlua1VSTCkKKyAgICBzdGF0aWMg
UmVmPENyZWF0ZUxpbmtDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIGxpbmtVUkwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyZWF0
ZUxpbmtDb21tYW5kKGRvY3VtZW50LCBsaW5rVVJMKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENyZWF0ZUxpbmtDb21tYW5kKGRvY3VtZW50LCBsaW5rVVJMKSk7CiAgICAgfQogCiAg
ICAgYm9vbCBpc0NyZWF0ZUxpbmtDb21tYW5kKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApp
bmRleCA4ZDFmNjczLi4yNDkxZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBUZXh0
OwogCiBjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRD
b21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggMTk2NjdkMC4uZTViZjUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTM0LDEzICszNCwx
MyBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQg
OiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9
IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9v
bCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2Us
IGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVy
Z2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBz
YW5pdGl6ZU1hcmt1cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOwog
ICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVh
dGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0
aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+
IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRp
emVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAppbmRleCA4ODg2NmU4Li5jMTczZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
RGljdGF0aW9uTWFya2VyU3VwcGxpZXIgOiBwdWJsaWMgVGV4dEluc2VydGlvbk1hcmtlclN1cHBs
aWVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaWN0YXRpb25NYXJrZXJTdXBw
bGllcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0
aXZlcykKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbk1hcmtlclN1cHBsaWVyPiBjcmVhdGUoY29u
c3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRpdmVzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaWN0YXRpb25NYXJrZXJTdXBwbGllcihhbHRlcm5h
dGl2ZXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXIoYWx0ZXJuYXRpdmVzKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZE1hcmtl
cnNUb1RleHROb2RlKFRleHQqIHRleHROb2RlLCB1bnNpZ25lZCBvZmZzZXRPZkluc2VydGlvbiwg
Y29uc3QgU3RyaW5nJiB0ZXh0VG9CZUluc2VydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuaAppbmRleCBkNGY2ZDQ1Li4yMmZlYjE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgaW5zZXJ0VGV4dChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcywgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwogICAgIHZpcnR1YWwgYm9vbCBpc0RpY3RhdGlvbkNvbW1hbmQoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiBwcml2YXRlOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpY3Rh
dGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRpdmVzKQorICAg
IHN0YXRpYyBSZWY8RGljdGF0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBh
bHRlcm5hdGl2ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3RhdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHRleHQsIGFsdGVybmF0aXZlcykpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEaWN0YXRpb25Db21tYW5kKGRvY3VtZW50LCB0ZXh0LCBhbHRlcm5hdGl2
ZXMpKTsKICAgICB9CiAKICAgICBEaWN0YXRpb25Db21tYW5kKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggOGVlNzU1MC4uOTU0
MWNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCkBAIC03MCwyOSArNzAs
MjkgQEAgcHVibGljOgogICAgIGVudW0gU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUgeyBFeHRy
YWN0TWF0Y2hpbmdTdHlsZSwgRG9Ob3RFeHRyYWN0TWF0Y2hpbmdTdHlsZSB9OwogICAgIHN0YXRp
YyBmbG9hdCBOb0ZvbnREZWx0YTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVkaXRpbmdTdHls
ZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEVkaXRpbmdTdHlsZT4gY3JlYXRlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBFZGl0aW5nU3R5bGUpOwogICAgIH0KIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gY3JlYXRlKE5vZGUqIG5vZGUsIFByb3BlcnRpZXNUb0lu
Y2x1ZGUgcHJvcGVydGllc1RvSW5jbHVkZSA9IE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0
aWVzKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxlPiBjcmVhdGUoTm9kZSogbm9kZSwgUHJv
cGVydGllc1RvSW5jbHVkZSBwcm9wZXJ0aWVzVG9JbmNsdWRlID0gT25seUVkaXRpbmdJbmhlcml0
YWJsZVByb3BlcnRpZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVkaXRp
bmdTdHlsZShub2RlLCBwcm9wZXJ0aWVzVG9JbmNsdWRlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEVkaXRpbmdTdHlsZShub2RlLCBwcm9wZXJ0aWVzVG9JbmNsdWRlKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBjcmVhdGUoY29uc3QgUG9z
aXRpb24mIHBvc2l0aW9uLCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRpZXNUb0luY2x1ZGUg
PSBPbmx5RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllcykKKyAgICBzdGF0aWMgUmVmPEVkaXRp
bmdTdHlsZT4gY3JlYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgUHJvcGVydGllc1RvSW5j
bHVkZSBwcm9wZXJ0aWVzVG9JbmNsdWRlID0gT25seUVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRp
ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVkaXRpbmdTdHlsZShwb3Np
dGlvbiwgcHJvcGVydGllc1RvSW5jbHVkZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBFZGl0aW5nU3R5bGUocG9zaXRpb24sIHByb3BlcnRpZXNUb0luY2x1ZGUpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IGNyZWF0ZShjb25zdCBTdHlsZVBy
b3BlcnRpZXMqIHN0eWxlKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxlPiBjcmVhdGUoY29u
c3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRWRpdGluZ1N0eWxlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEVkaXRpbmdTdHlsZShzdHlsZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVk
aXRpbmdTdHlsZT4gY3JlYXRlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPEVkaXRpbmdTdHlsZT4gY3JlYXRlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKHByb3BlcnR5SUQsIHZhbHVlKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZShwcm9wZXJ0eUlELCB2YWx1ZSkpOwog
ICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIH5FZGl0aW5nU3R5bGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAppbmRleCA1ZDczNDE3Li43ZDg0MDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC04OTUsNyArODk1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGx5U3R5bGUoU3R5
bGVQcm9wZXJ0aWVzKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246OlJhbmdlU2VsZWN0aW9uOgogICAgICAg
ICBpZiAoc3R5bGUpCi0gICAgICAgICAgICBhcHBseUNvbW1hbmQoQXBwbHlTdHlsZUNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSkuZ2V0KCksIGVk
aXRpbmdBY3Rpb24pKTsKKyAgICAgICAgICAgIGFwcGx5Q29tbWFuZChBcHBseVN0eWxlQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6Y3JlYXRlKHN0eWxlKS5wdHIoKSwg
ZWRpdGluZ0FjdGlvbikpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC05MTQsNyArOTE0
LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiBz
dHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW8KICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246
OkNhcmV0U2VsZWN0aW9uOgogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6UmFuZ2VTZWxlY3Rp
b246CiAgICAgICAgIGlmIChzdHlsZSkKLSAgICAgICAgICAgIGFwcGx5Q29tbWFuZChBcHBseVN0
eWxlQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6Y3JlYXRlKHN0eWxl
KS5nZXQoKSwgZWRpdGluZ0FjdGlvbiwgQXBwbHlTdHlsZUNvbW1hbmQ6OkZvcmNlQmxvY2tQcm9w
ZXJ0aWVzKSk7CisgICAgICAgICAgICBhcHBseUNvbW1hbmQoQXBwbHlTdHlsZUNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSkucHRyKCksIGVkaXRp
bmdBY3Rpb24sIEFwcGx5U3R5bGVDb21tYW5kOjpGb3JjZUJsb2NrUHJvcGVydGllcykpOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0Zvcm1hdEJsb2NrQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9j
a0NvbW1hbmQuaAppbmRleCBiNDVkZWQzLi44YzAxYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgVmlzaWJs
ZVBvc2l0aW9uOwogCiBjbGFzcyBGb3JtYXRCbG9ja0NvbW1hbmQgOiBwdWJsaWMgQXBwbHlCbG9j
a0VsZW1lbnRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb3JtYXRC
bG9ja0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUpCisgICAgc3RhdGljIFJlZjxGb3JtYXRCbG9ja0NvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1hdEJsb2NrQ29tbWFuZChkb2N1bWVudCwg
dGFnTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGb3JtYXRCbG9ja0NvbW1h
bmQoZG9jdW1lbnQsIHRhZ05hbWUpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIHBy
ZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCmluZGV4IGRlOTJhNzAuLjkyYTQy
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgK
QEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5kZW50T3V0ZGVu
dENvbW1hbmQgOiBwdWJsaWMgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kIHsKIHB1YmxpYzoKICAg
ICBlbnVtIEVJbmRlbnRUeXBlIHsgSW5kZW50LCBPdXRkZW50IH07Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5kZW50T3V0ZGVudENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEVJ
bmRlbnRUeXBlIHR5cGUsIGludCBtYXJnaW5JblBpeGVscyA9IDApCisgICAgc3RhdGljIFJlZjxJ
bmRlbnRPdXRkZW50Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRUluZGVudFR5
cGUgdHlwZSwgaW50IG1hcmdpbkluUGl4ZWxzID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5kZW50T3V0ZGVudENvbW1hbmQoZG9jdW1lbnQsIHR5cGUsIG1hcmdpbklu
UGl4ZWxzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluZGVudE91dGRlbnRDb21t
YW5kKGRvY3VtZW50LCB0eXBlLCBtYXJnaW5JblBpeGVscykpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
aW5kZXggZjI4NjRmNS4uMzEwYmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDkgKzM0LDkgQEAgY2xhc3MgVGV4
dDsKIAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0
Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCmluZGV4IDcwMGE5NjguLjVmOGFjNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCkBAIC0zMiw5
ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zZXJ0TGluZUJyZWFrQ29t
bWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SW5zZXJ0TGluZUJyZWFrQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKKyAgICBzdGF0aWMgUmVmPEluc2VydExpbmVCcmVha0NvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc2Vy
dExpbmVCcmVha0NvbW1hbmQoZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZChkb2N1bWVudCkpOwogICAgIH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApp
bmRleCAxYjAxZGM1Li5kNGI3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0zMiwxMCArMzIsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVF
ZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NS
ZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICBzdGF0aWMgUmVmPEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCiAgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kLmgKaW5kZXggYjI5N2QwYS4uMTI4MWYwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
LmgKQEAgLTM0LDkgKzM0LDkgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9
IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5k
ZXggMzlmMWY3NS4uZjEwZDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaApAQCAtNDgsMTUgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICAgICAgUmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwKKyAgICBzdGF0aWMgUmVmPEluc2VydFRl
eHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCiAgICAgICAgIFJlYmFsYW5jZVR5cGUg
cmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNl
cnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgc3RhdGljIFJlZjxJbnNl
cnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBw
bGllcj4gbWFya2VyU3VwcGxpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgKaW5kZXgg
NWE1ZGQ3Mi4uNjM4ODI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NZXJn
ZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kIDogcHVi
bGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudDEsIFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudDIpCisgICAgc3RhdGljIFJlZjxN
ZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudDEsIFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudDIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kKGVsZW1lbnQx
LCBlbGVtZW50MikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZChlbGVtZW50MSwgZWxlbWVudDIpKTsKICAgICB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwu
aAppbmRleCAzNjdhZjY0Li5lZDY5NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgKQEAgLTU3LDkgKzU3LDkgQEAgcHJpdmF0ZToK
ICAgICBlbnVtIFR5cGUgeyBJbmhlcml0ZWRMaXN0VHlwZSwgT3JkZXJlZExpc3QsIFVub3JkZXJl
ZExpc3QgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlPiBpbmNyZWFzZVNlbGVjdGlvbkxp
c3RMZXZlbChEb2N1bWVudCosIFR5cGUpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5jcmVh
c2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBU
eXBlIHR5cGUpCisgICAgc3RhdGljIFJlZjxJbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFR5cGUgdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kKGRv
Y3VtZW50LCB0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluY3JlYXNlU2Vs
ZWN0aW9uTGlzdExldmVsQ29tbWFuZChkb2N1bWVudCwgdHlwZSkpOwogICAgIH0KICAgICAKICAg
ICBJbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQoRG9jdW1lbnQmLCBUeXBlKTsKQEAg
LTc3LDkgKzc3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlY3JlYXNlU2VsZWN0aW9u
TGlzdExldmVsKERvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIHN0YXRpYyBSZWY8RGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQoZG9jdW1lbnQpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5k
KGRvY3VtZW50KSk7CiAgICAgfQogCiAgICAgZXhwbGljaXQgRGVjcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxDb21tYW5kKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVT
ZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggMTQ5NDNiNS4uYWMwOTk5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMzQsOSArMzQsOSBAQCBj
bGFzcyBEb2N1bWVudEZyYWdtZW50OwogCiBjbGFzcyBNb3ZlU2VsZWN0aW9uQ29tbWFuZCA6IHB1
YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TW92ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIGJvb2wgc21hcnRJbnNlcnQg
PSBmYWxzZSwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8TW92ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIGJvb2wgc21hcnRJbnNlcnQgPSBmYWxzZSwg
Ym9vbCBzbWFydERlbGV0ZSA9IGZhbHNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNb3ZlU2VsZWN0aW9uQ29tbWFuZChmcmFnbWVudCwgcG9zaXRpb24sIHNtYXJ0SW5zZXJ0
LCBzbWFydERlbGV0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb3ZlU2VsZWN0
aW9uQ29tbWFuZChmcmFnbWVudCwgcG9zaXRpb24sIHNtYXJ0SW5zZXJ0LCBzbWFydERlbGV0ZSkp
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZUNTU1Byb3BlcnR5Q29tbWFuZC5oCmluZGV4IDAwNDU3ZmQuLmUzMjMwMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaApAQCAtMzUs
OSArMzUsOSBAQCBjbGFzcyBTdHlsZWRFbGVtZW50OwogCiBjbGFzcyBSZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgUGFzc1JlZlB0cjxTdHlsZWRFbGVtZW50PiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kPiBjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGVsZW1lbnQs
IENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZChkb2N1bWVudCwgZWxlbWVudCwgcHJvcGVydHkp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
KGRvY3VtZW50LCBlbGVtZW50LCBwcm9wZXJ0eSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmgKaW5kZXggZjAxNGFkZi4u
Y2U4NjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5k
LmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdmVG
b3JtYXRDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdmVGb3JtYXRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlRm9ybWF0Q29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVt
b3ZlRm9ybWF0Q29tbWFuZChkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdmVGb3JtYXRDb21tYW5kKGRvY3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oCmluZGV4IGI0YjEyYzEuLjE4
MWU5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKQEAg
LTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdmVOb2RlQ29t
bWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdmVOb2RlQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZW1vdmVOb2RlQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAppbmRleCBkYjUy
MTlkLi40YjkxOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCkBAIC0zMiw5ICszMiw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVm
PFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgKaW5kZXgg
ZmFhMmRhNC4uMTUxM2FkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaApAQCAtNDAsOSArNDAsOSBAQCBjbGFzcyBIVE1MRWxl
bWVudDsKIC8vIE1vcmUgYWNjdXJhdGVseSwgdGhpcyBpcyBSZXBsYWNlRWxlbWVudFdpdGhTcGFu
UHJlc2VydmluZ0NoaWxkcmVuQW5kQXR0cmlidXRlc0NvbW1hbmQKIGNsYXNzIFJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCisgICAgc3RhdGljIFJlZjxSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kKGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQoZWxlbWVudCkpOwogICAgIH0KIAogICAgIEhUTUxFbGVtZW50KiBz
cGFuRWxlbWVudCgpIHsgcmV0dXJuIG1fc3BhbkVsZW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBmNzFiMTFj
Li41NjM2ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5z
aWduZWQgQ29tbWFuZE9wdGlvbnM7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlv
biBhY3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUpCisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBh
Y3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywg
YWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXROb2RlQXR0cmli
dXRlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29t
bWFuZC5oCmluZGV4IDc1ZjdlODAuLjNjNjk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXROb2RlQXR0cmlidXRlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
KyAgICBzdGF0aWMgUmVmPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kKGVsZW1lbnQsIGF0dHJpYnV0ZSwgdmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQoZWxlbWVu
dCwgYXR0cmlidXRlLCB2YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0U2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZjlkN2Y0Yi4uNThmMzA1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTMz
LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXRTZWxlY3Rpb25Db21t
YW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTZXRTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
KQorICAgIHN0YXRpYyBSZWY8U2V0U2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2V0U2VsZWN0
aW9uQ29tbWFuZChzZWxlY3Rpb24sIG9wdGlvbnMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU2V0U2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIG9wdGlvbnMpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NpbXBsaWZ5TWFy
a3VwQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1h
bmQuaAppbmRleCBkMDlkZTI1Li45MWY4MDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTaW1wbGlmeU1hcmt1cENvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRl
RWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNpbXBsaWZ5TWFy
a3VwQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgTm9kZSogZmlyc3ROb2RlLCBO
b2RlKiBub2RlQWZ0ZXJMYXN0KQorICAgIHN0YXRpYyBSZWY8U2ltcGxpZnlNYXJrdXBDb21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBOb2RlKiBmaXJzdE5vZGUsIE5vZGUqIG5vZGVB
ZnRlckxhc3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNpbXBsaWZ5TWFy
a3VwQ29tbWFuZChkb2N1bWVudCwgZmlyc3ROb2RlLCBub2RlQWZ0ZXJMYXN0KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNpbXBsaWZ5TWFya3VwQ29tbWFuZChkb2N1bWVudCwgZmly
c3ROb2RlLCBub2RlQWZ0ZXJMYXN0KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDdjZTI5NjguLmRlNzNjYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTU3LDE2ICs1NywxNiBAQCBTcGVs
bENoZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8gc3RhdGljCi1QYXNz
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRD
aGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFRleHRDaGVja2luZ1Byb2Nlc3NU
eXBlIHByb2Nlc3NUeXBlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSkKK1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gU3Bl
bGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0ZXh0Q2hlY2tpbmdP
cHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxS
YW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpCiB7
CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJhZ3JhcGhSYW5nZSk7
CiAKICAgICBTdHJpbmcgdGV4dCA9IGNoZWNraW5nUmFuZ2UtPnRleHQoKTsKICAgICBpZiAoIXRl
eHQubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0
PigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U3BlbGxDaGVja1JlcXVlc3QoY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRl
eHRDaGVja2luZ09wdGlvbnMsIHByb2Nlc3NUeXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlbGxDaGVja1JlcXVlc3QoY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQs
IHRleHRDaGVja2luZ09wdGlvbnMsIHByb2Nlc3NUeXBlKSk7CiB9CiAKIGNvbnN0IFRleHRDaGVj
a2luZ1JlcXVlc3REYXRhJiBTcGVsbENoZWNrUmVxdWVzdDo6ZGF0YSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAppbmRleCA2MzUzZjcwLi43YjliOWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgU3Bl
bGxDaGVja2VyOwogCiBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdCA6IHB1YmxpYyBUZXh0Q2hlY2tp
bmdSZXF1ZXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlw
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFy
YWdyYXBoUmFuZ2UpOworICAgIHN0YXRpYyBSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IGNyZWF0
ZShUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUsIFBhc3NSZWZQ
dHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdl
KTsKICAgICB2aXJ0dWFsIH5TcGVsbENoZWNrUmVxdWVzdCgpOwogCiAgICAgUGFzc1JlZlB0cjxS
YW5nZT4gY2hlY2tpbmdSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdSYW5nZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggYTM2MzllNS4uNmZlNzEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCkBAIC00Myw5ICs0Myw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFRoaXMgaW5mb3JtYXRpb24gaXMgbmVlZGVkIGJ5IHNw
ZWxsIGNoZWNraW5nIHNlcnZpY2UgdG8gdXBkYXRlIHVzZXIgc3BlY2lmaWMgZGF0YS4KIGNsYXNz
IFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRD
b21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbGluZ0NvcnJlY3Rp
b25SZWNvcmRVbmRvQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBjb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKKyAgICBzdGF0aWMgUmVm
PFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVsbGluZ0NvcnJlY3Rpb25S
ZWNvcmRVbmRvQ29tbWFuZChkb2N1bWVudCwgY29ycmVjdGVkLCBjb3JyZWN0aW9uKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21t
YW5kKGRvY3VtZW50LCBjb3JyZWN0ZWQsIGNvcnJlY3Rpb24pKTsKICAgICB9CiBwcml2YXRlOgog
ICAgIFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmgK
aW5kZXggNTE4NzFiNS4uMDQ1MWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kIDogcHVibGljIENv
bXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVs
bGluZ0NvcnJlY3Rpb25Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0Jl
Q29ycmVjdGVkLCBjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pCisgICAgc3RhdGljIFJlZjxTcGVs
bGluZ0NvcnJlY3Rpb25Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0Jl
Q29ycmVjdGVkLCBjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQocmFuZ2VUb0JlQ29ycmVj
dGVkLCBjb3JyZWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWxsaW5n
Q29ycmVjdGlvbkNvbW1hbmQocmFuZ2VUb0JlQ29ycmVjdGVkLCBjb3JyZWN0aW9uKSk7CiAgICAg
fQogcHJpdmF0ZToKICAgICBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKFBhc3NSZWZQdHI8UmFu
Z2U+IHJhbmdlVG9CZUNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgKaW5kZXggMGVhZjA2ZC4u
NzZiMzAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5k
LmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTcGxpdEVs
ZW1lbnRDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTcGxpdEVsZW1lbnRDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxF
bGVtZW50PiBlbGVtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHNwbGl0UG9pbnRDaGlsZCkKKyAgICBz
dGF0aWMgUmVmPFNwbGl0RWxlbWVudENvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gc3BsaXRQb2ludENoaWxkKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdEVsZW1lbnRDb21tYW5kKGVsZW1lbnQsIHNwbGl0
UG9pbnRDaGlsZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGxpdEVsZW1lbnRD
b21tYW5kKGVsZW1lbnQsIHNwbGl0UG9pbnRDaGlsZCkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA1ZTA2
MmE5Li43MWEwMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4
dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2Rl
Q29tbWFuZC5oCkBAIC0zNCw5ICszNCw5IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIFNwbGl0VGV4
dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTcGxpdFRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgaW50IG9mZnNldCkKKyAgICBzdGF0aWMgUmVmPFNwbGl0VGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdFRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BsaXRUZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1h
bmQuaAppbmRleCA3MDNhOTA5Li5iMDE0ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQu
aApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwbGl0VGV4
dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1h
bmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwbGl0VGV4dE5vZGVDb250YWlu
aW5nRWxlbWVudENvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIGludCBvZmZz
ZXQpCisgICAgc3RhdGljIFJlZjxTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCBpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21t
YW5kKG5vZGUsIG9mZnNldCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGxpdFRl
eHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kKG5vZGUsIG9mZnNldCkpOwogICAgIH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmgKaW5kZXggYTk2MmFm
Zi4uZWFiODI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmgKQEAgLTg1
LDE0ICs4NSwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxUeXBpbmdDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFVHlwaW5n
Q29tbWFuZCBjb21tYW5kLCBjb25zdCBTdHJpbmcmIHRleHQgPSAiIiwgT3B0aW9ucyBvcHRpb25z
ID0gMCwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkp
CisgICAgc3RhdGljIFJlZjxUeXBpbmdDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBFVHlwaW5nQ29tbWFuZCBjb21tYW5kLCBjb25zdCBTdHJpbmcmIHRleHQgPSAiIiwgT3B0aW9u
cyBvcHRpb25zID0gMCwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFR5cGluZ0NvbW1h
bmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIGdyYW51bGFyaXR5LCBUZXh0Q29t
cG9zaXRpb25Ob25lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0NvbW1h
bmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIGdyYW51bGFyaXR5LCBUZXh0Q29t
cG9zaXRpb25Ob25lKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VHlwaW5nQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRVR5cGluZ0NvbW1hbmQgY29tbWFuZCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBPcHRpb25zIG9wdGlvbnMsIFRleHRDb21wb3NpdGlvblR5cGUg
Y29tcG9zaXRpb25UeXBlKQorICAgIHN0YXRpYyBSZWY8VHlwaW5nQ29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgRVR5cGluZ0NvbW1hbmQgY29tbWFuZCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBPcHRpb25zIG9wdGlvbnMsIFRleHRDb21wb3NpdGlvblR5cGUgY29tcG9zaXRpb25UeXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUeXBpbmdDb21tYW5kKGRvY3Vt
ZW50LCBjb21tYW5kLCB0ZXh0LCBvcHRpb25zLCBDaGFyYWN0ZXJHcmFudWxhcml0eSwgY29tcG9z
aXRpb25UeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0NvbW1hbmQo
ZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIENoYXJhY3RlckdyYW51bGFyaXR5LCBj
b21wb3NpdGlvblR5cGUpKTsKICAgICB9CiAKICAgICBUeXBpbmdDb21tYW5kKERvY3VtZW50Jiwg
RVR5cGluZ0NvbW1hbmQsIGNvbnN0IFN0cmluZyYgdGV4dCwgT3B0aW9ucywgVGV4dEdyYW51bGFy
aXR5LCBUZXh0Q29tcG9zaXRpb25UeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVW5saW5rQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21t
YW5kLmgKaW5kZXggMWRiYjllYS4uNmMyNGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Vbmxp
bmtDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBVbmxpbmtDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVbmxpbmtDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIHN0YXRpYyBSZWY8VW5saW5rQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVW5saW5rQ29tbWFu
ZChkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVbmxpbmtDb21tYW5k
KGRvY3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmgKaW5kZXggMWE5NWQ2
MC4uNDgxZjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVu
dHNJbkR1bW15U3BhbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBD
b250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oCkBAIC0zNCw5ICszNCw5IEBAIGNsYXNzIEhUTUxF
bGVtZW50OwogCiBjbGFzcyBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQgOiBwdWJsaWMg
U2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdyYXBD
b250ZW50c0luRHVtbXlTcGFuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCkKKyAgICBzdGF0aWMgUmVmPFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKGVsZW1lbnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5k
KGVsZW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKaW5kZXggZWRkZjA1Mi4uNTYxMTk4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaApA
QCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpY3RhdGlvbkNv
bW1hbmRJT1MgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERpY3RhdGlvbkNvbW1hbmRJT1M+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NPd25QdHI8VmVjdG9yPFZlY3RvcjxTdHJpbmc+ID4gPiBkaWN0YXRpb25QaHJh
c2UsIFJldGFpblB0cjxpZD4gbWV0YWRhdGEpCisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25Db21t
YW5kSU9TPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzT3duUHRyPFZlY3RvcjxWZWN0
b3I8U3RyaW5nPiA+ID4gZGljdGF0aW9uUGhyYXNlLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaWN0YXRpb25Db21tYW5kSU9TKGRv
Y3VtZW50LCBkaWN0YXRpb25QaHJhc2UsIG1ldGFkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERpY3RhdGlvbkNvbW1hbmRJT1MoZG9jdW1lbnQsIGRpY3RhdGlvblBocmFzZSwg
bWV0YWRhdGEpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+RGljdGF0aW9uQ29tbWFuZElP
UygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmggYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2IuaAppbmRleCBkZmZjYWQ2Li40OTU4M2VmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkJsb2JQYXJ0LmgiCiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ0LDI1ICs0MywyNSBAQCBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBCbG9iIDogcHVibGljIFNjcmlwdFdyYXBw
YWJsZSwgcHVibGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKCkKKyAgICBzdGF0aWMg
UmVmPEJsb2I+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
b2IpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVhdGUoVmVjdG9yPGNoYXI+IGRhdGEsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpCisgICAgc3RhdGljIFJlZjxCbG9iPiBjcmVhdGUoVmVjdG9yPGNo
YXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEJsb2IoV1RGOjptb3ZlKGRhdGEpLCBjb250ZW50VHlwZSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKFdURjo6bW92ZShkYXRhKSwgY29udGVudFR5
cGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVhdGUoVmVjdG9y
PEJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCisgICAgc3Rh
dGljIFJlZjxCbG9iPiBjcmVhdGUoVmVjdG9yPEJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
b2IoV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEJsb2IoV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gZGVzZXJpYWxpemUoY29uc3QgVVJM
JiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgbG9uZyBsb25nIHNpemUpCisgICAgc3RhdGlj
IFJlZjxCbG9iPiBkZXNlcmlhbGl6ZShjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0
eXBlLCBsb25nIGxvbmcgc2l6ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChCbG9iOjppc05vcm1h
bGl6ZWRDb250ZW50VHlwZSh0eXBlKSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxv
YihkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBzcmNVUkwsIHR5cGUsIHNpemUpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYihkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBz
cmNVUkwsIHR5cGUsIHNpemUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5CbG9iKCk7CkBAIC04
NCw5ICs4Myw5IEBAIHB1YmxpYzoKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1YWwg
VVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBQYXNzUmVmUHRy
PEJsb2I+IHNsaWNlKGxvbmcgbG9uZyBzdGFydCA9IDAsIGxvbmcgbG9uZyBlbmQgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
ID0gU3RyaW5nKCkpIGNvbnN0CisgICAgUmVmPEJsb2I+IHNsaWNlKGxvbmcgbG9uZyBzdGFydCA9
IDAsIGxvbmcgbG9uZyBlbmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgp
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0gU3RyaW5nKCkpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IobV9pbnRlcm5hbFVSTCwgc3RhcnQsIGVuZCwg
Y29udGVudFR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYihtX2ludGVy
bmFsVVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSkpOwogICAgIH0KIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGUuaAppbmRleCBiZDE2YTQ3Li4zNWM0ZGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGUuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBGaWxlX2gKIAogI2luY2x1ZGUgIkJsb2Iu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTM3LDIyICszNywyMiBAQCBjbGFzcyBVUkw7CiAKIGNsYXNzIEZpbGUgZmluYWwgOiBw
dWJsaWMgQmxvYiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHBhdGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0
aCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKHBhdGgpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlPiBkZXNlcmlhbGl6ZShjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
bmFtZSkKKyAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKGRlc2VyaWFsaXph
dGlvbkNvbnRydWN0b3IsIHBhdGgsIHNyY1VSTCwgdHlwZSwgbmFtZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIHBhdGgsIHNy
Y1VSTCwgdHlwZSwgbmFtZSkpOwogICAgIH0KIAogICAgIC8vIENyZWF0ZSBhIGZpbGUgd2l0aCBh
IG5hbWUgZXhwb3NlZCB0byB0aGUgYXV0aG9yICh2aWEgRmlsZS5uYW1lIGFuZCBhc3NvY2lhdGVk
IERPTSBwcm9wZXJ0aWVzKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgb25lIHByb3ZpZGVkIGluIHRo
ZSBwYXRoLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGU+IGNyZWF0ZVdpdGhOYW1lKGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUpCisgICAgc3RhdGljIFJl
ZjxGaWxlPiBjcmVhdGVXaXRoTmFtZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYg
bmFtZU92ZXJyaWRlKQogICAgIHsKICAgICAgICAgaWYgKG5hbWVPdmVycmlkZS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCkpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCwgbmFtZU92ZXJyaWRlKSk7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKHBhdGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRmlsZShwYXRoLCBuYW1lT3ZlcnJpZGUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNGaWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlTGlzdC5oCmluZGV4IGJiZTZkZWIuLmFmNDhkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVMaXN0LmgKQEAgLTM3LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZpbGVMaXN0IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8
RmlsZUxpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3Jl
YXRlKCkKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlTGlzdCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZpbGVMaXN0KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlTGlzdD4g
Y3JlYXRlKFZlY3RvcjxSZWZQdHI8RmlsZT4+JiYgZmlsZXMpCisgICAgc3RhdGljIFJlZjxGaWxl
TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWZQdHI8RmlsZT4+JiYgZmlsZXMpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVMaXN0KFdURjo6bW92ZShmaWxlcykpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZUxpc3QoV1RGOjptb3ZlKGZpbGVzKSkpOwogICAg
IH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZXMuc2l6ZSgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCAwNmYzMDViLi43MzE4
MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAgLTQ1LDExICs0NSwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBhdXRvIHByb2dyZXNzTm90
aWZpY2F0aW9uSW50ZXJ2YWwgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwKTsKIAotUGFz
c1JlZlB0cjxGaWxlUmVhZGVyPiBGaWxlUmVhZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkKK1JlZjxGaWxlUmVhZGVyPiBGaWxlUmVhZGVyOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBSZWZQdHI8RmlsZVJlYWRlcj4gZmls
ZVJlYWRlcihhZG9wdFJlZihuZXcgRmlsZVJlYWRlcihjb250ZXh0KSkpOworICAgIFJlZjxGaWxl
UmVhZGVyPiBmaWxlUmVhZGVyID0gYWRvcHRSZWYoKm5ldyBGaWxlUmVhZGVyKGNvbnRleHQpKTsK
ICAgICBmaWxlUmVhZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gZmlsZVJlYWRl
ci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZpbGVSZWFkZXI7CiB9CiAKIEZpbGVSZWFkZXI6OkZp
bGVSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmgKaW5kZXggYzMwZTRjMC4uZjAwMmY3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29k
ZTsKIAogY2xhc3MgRmlsZVJlYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVSZWFk
ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSwgcHVibGljIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZpbGVSZWFkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7
CisgICAgc3RhdGljIFJlZjxGaWxlUmVhZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpOwogCiAgICAgdmlydHVhbCB+RmlsZVJlYWRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXJTeW5jLmgKaW5kZXggY2QyNTM2MC4uMzAyODIxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaApAQCAtNDksOSArNDksOSBAQCB0eXBlZGVmIGludCBF
eGNlcHRpb25Db2RlOwogCiBjbGFzcyBGaWxlUmVhZGVyU3luYyA6IHB1YmxpYyBSZWZDb3VudGVk
PEZpbGVSZWFkZXJTeW5jPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZVJl
YWRlclN5bmM+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxGaWxlUmVhZGVyU3luYz4gY3JlYXRl
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZVJlYWRlclN5bmMoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVSZWFkZXJTeW5jKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5GaWxlUmVhZGVyU3luYygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0LmgKaW5kZXggYWUzYzk3ZC4uYTMzYzhhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgSGFz
aFNldDxSZWZQdHI8SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbUhhc2hTZXQ7CiAKIGNsYXNzIEJh
Y2tGb3J3YXJkTGlzdCA6IHB1YmxpYyBCYWNrRm9yd2FyZENsaWVudCB7CiBwdWJsaWM6IAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBCYWNrRm9yd2FyZExpc3QocGFnZSkpOyB9CisgICAgc3RhdGlj
IFJlZjxCYWNrRm9yd2FyZExpc3Q+IGNyZWF0ZShQYWdlKiBwYWdlKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IEJhY2tGb3J3YXJkTGlzdChwYWdlKSk7IH0KICAgICB2aXJ0dWFsIH5CYWNrRm9yd2Fy
ZExpc3QoKTsKIAogICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBkZGI5OGM3Li4zODAwMTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC02MywxOCArNjMsMTggQEAgY2xhc3MgSGlzdG9y
eUl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIaXN0b3J5SXRlbT4gewogICAgIGZyaWVuZCBjbGFz
cyBQYWdlQ2FjaGU7CiAKIHB1YmxpYzogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SGlzdG9yeUl0
ZW0+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBIaXN0b3J5SXRlbSk7IH0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlKQorICAgIHN0YXRpYyBSZWY8SGlzdG9yeUl0ZW0+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlzdG9yeUl0ZW0pOyB9CisgICAgc3RhdGlj
IFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIaXN0b3J5
SXRlbSh1cmxTdHJpbmcsIHRpdGxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhp
c3RvcnlJdGVtKHVybFN0cmluZywgdGl0bGUpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBhbHRlcm5hdGVUaXRsZSkKKyAgICBzdGF0aWMgUmVm
PEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYWx0ZXJuYXRlVGl0bGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhpc3RvcnlJdGVtKHVybFN0cmluZywgdGl0bGUsIGFsdGVybmF0
ZVRpdGxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpc3RvcnlJdGVtKHVybFN0
cmluZywgdGl0bGUsIGFsdGVybmF0ZVRpdGxlKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0LCBjb25zdCBTdHJpbmcmIHBhcmVudCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKKyAgICBzdGF0
aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGFyZ2V0LCBjb25zdCBTdHJpbmcmIHBhcmVudCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGlzdG9yeUl0ZW0odXJsLCB0YXJnZXQsIHBh
cmVudCwgdGl0bGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlzdG9yeUl0ZW0o
dXJsLCB0YXJnZXQsIHBhcmVudCwgdGl0bGUpKTsKICAgICB9CiAgICAgCiAgICAgV0VCQ09SRV9F
WFBPUlQgfkhpc3RvcnlJdGVtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKaW5kZXggMzZmYzgzNS4u
ZDQ1OWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcApAQCAtMzgsMjAgKzM4LDIwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSAK
K1JlZjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RE9NVVJMKHVybCwgYmFzZSwgZWMpKTsgCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NVVJM
KHVybCwgYmFzZSwgZWMpKTsKIH0KIAotUGFzc1JlZlB0cjxET01VUkw+IERPTVVSTDo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBET01VUkwqIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVj
KSAKK1JlZjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBE
T01VUkwqIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChiYXNlKTsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVVSTCh1cmwsICpiYXNlLCBlYykpOyAKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBET01VUkwodXJsLCAqYmFzZSwgZWMpKTsKIH0KIAotUGFzc1JlZlB0
cjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2Rl
JiBlYykgCitSZWY8RE9NVVJMPiBET01VUkw6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01VUkwodXJsLCBl
YykpOyAKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01VUkwodXJsLCBlYykpOwogfQogCiBp
bmxpbmUgRE9NVVJMOjpET01VUkwoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgYmFz
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVVSTC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaAppbmRleCA0ZmY2MTcyLi5iYzMw
ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlICJVUkxVdGlscy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw5ICs0Myw5IEBAIGNsYXNzIFVS
TFJlZ2lzdHJhYmxlOwogY2xhc3MgRE9NVVJMIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NVVJMPiwg
cHVibGljIFVSTFV0aWxzPERPTVVSTD4gewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgYmFzZSwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVVSTD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBET01VUkwqIGJhc2UsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01VUkw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWY8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgYmFzZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBS
ZWY8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERPTVVSTCogYmFzZSwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWY8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFVSTCBocmVmKCkgY29uc3QgeyByZXR1
cm4gbV91cmw7IH0KICAgICB2b2lkIHNldEhyZWYoY29uc3QgU3RyaW5nJiB1cmwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggM2U1Mzlh
Zi4uN2MxNTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIAogc3RhdGljIERPTVdy
YXBwZXJXb3JsZCYgcGx1Z0luSW1hZ2VFbGVtZW50SXNvbGF0ZWRXb3JsZCgpCiB7Ci0gICAgc3Rh
dGljIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCA9ICpET01XcmFwcGVyV29ybGQ6OmNy
ZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSkubGVha1JlZigpOworICAgIHN0YXRpYyBET01X
cmFwcGVyV29ybGQmIGlzb2xhdGVkV29ybGQgPSBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKSkubGVha1JlZigpOwogICAgIHJldHVybiBpc29sYXRlZFdvcmxk
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFk
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaAppbmRl
eCA2YmZiMTZlLi5hYzA1YWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c0dyYWRpZW50LmgKQEAgLTM4LDEzICszOCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBDYW52YXNHcmFkaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc0dyYWRpZW50
PiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVu
dD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBGbG9hdFBvaW50JiBwMSkKKyAg
ICAgICAgc3RhdGljIFJlZjxDYW52YXNHcmFkaWVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQm
IHAwLCBjb25zdCBGbG9hdFBvaW50JiBwMSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDYW52YXNHcmFkaWVudChwMCwgcDEpKTsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENhbnZhc0dyYWRpZW50KHAwLCBwMSkpOwogICAgICAgICB9Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc0dyYWRpZW50PiBjcmVhdGUoY29uc3QgRmxvYXRQ
b2ludCYgcDAsIGZsb2F0IHIwLCBjb25zdCBGbG9hdFBvaW50JiBwMSwgZmxvYXQgcjEpCisgICAg
ICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGllbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBw
MCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBmbG9hdCByMSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNHcmFkaWVudChwMCwgcjAsIHAx
LCByMSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FudmFzR3JhZGllbnQo
cDAsIHIwLCBwMSwgcjEpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgR3JhZGllbnQm
IGdyYWRpZW50KCkgeyByZXR1cm4gbV9ncmFkaWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcAppbmRleCA2Y2JjYzgxLi43N2NkZWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcApAQCAtMzMsOSArMzMs
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4g
Q2FudmFzUGF0dGVybjo6Y3JlYXRlKFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlLCBib29sIHJlcGVh
dFgsIGJvb2wgcmVwZWF0WSwgYm9vbCBvcmlnaW5DbGVhbikKK1JlZjxDYW52YXNQYXR0ZXJuPiBD
YW52YXNQYXR0ZXJuOjpjcmVhdGUoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UsIGJvb2wgcmVwZWF0
WCwgYm9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNsZWFuKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ2FudmFzUGF0dGVybihpbWFnZSwgcmVwZWF0WCwgcmVwZWF0WSwgb3JpZ2luQ2xlYW4p
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYW52YXNQYXR0ZXJuKGltYWdlLCByZXBlYXRY
LCByZXBlYXRZLCBvcmlnaW5DbGVhbikpOwogfQogCiBDYW52YXNQYXR0ZXJuOjpDYW52YXNQYXR0
ZXJuKFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlLCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwg
Ym9vbCBvcmlnaW5DbGVhbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1BhdHRlcm4uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRl
cm4uaAppbmRleCA4NTNjZTI2Li5jMmE0YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUGF0dGVybi5oCkBAIC00MCw3ICs0MCw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlv
bkNvZGU7CiAKIGNsYXNzIENhbnZhc1BhdHRlcm4gOiBwdWJsaWMgUmVmQ291bnRlZDxDYW52YXNQ
YXR0ZXJuPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4g
Y3JlYXRlKFBhc3NSZWZQdHI8SW1hZ2U+LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgYm9v
bCBvcmlnaW5DbGVhbik7CisgICAgc3RhdGljIFJlZjxDYW52YXNQYXR0ZXJuPiBjcmVhdGUoUGFz
c1JlZlB0cjxJbWFnZT4sIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNs
ZWFuKTsKICAgICB+Q2FudmFzUGF0dGVybigpOwogCiAgICAgc3RhdGljIHZvaWQgcGFyc2VSZXBl
dGl0aW9uVHlwZShjb25zdCBTdHJpbmcmLCBib29sJiByZXBlYXRYLCBib29sJiByZXBlYXRZLCBF
eGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9E
T01QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9ET01QYXRoLmgKaW5kZXggNmFm
OGUzNi4uZWI0YmQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRE9N
UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaApAQCAtMzEs
NyArMzEsNiBAQAogI2luY2x1ZGUgIkNhbnZhc1BhdGhNZXRob2RzLmgiCiAjaW5jbHVkZSAiU1ZH
TWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzksMTEgKzM4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERP
TVBhdGggZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01QYXRoPiwgcHVibGljIENhbnZhc1Bh
dGhNZXRob2RzIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RE9NUGF0aCk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoY29uc3Qg
UGF0aCYgcGF0aCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBhdGgocGF0aCkpOyB9Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RE9NUGF0aD4gY3JlYXRlKGNvbnN0IERPTVBhdGgqIHBhdGgpIHsg
cmV0dXJuIGNyZWF0ZShwYXRoLT5wYXRoKCkpOyB9CisgICAgc3RhdGljIFJlZjxET01QYXRoPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBhdGgpOyB9CisgICAgc3RhdGljIFJl
ZjxET01QYXRoPiBjcmVhdGUoY29uc3QgUGF0aCYgcGF0aCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBET01QYXRoKHBhdGgpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NUGF0aD4gY3JlYXRlKGNvbnN0
IERPTVBhdGgqIHBhdGgpIHsgcmV0dXJuIGNyZWF0ZShwYXRoLT5wYXRoKCkpOyB9CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoRGF0YSkK
KyAgICBzdGF0aWMgUmVmPERPTVBhdGg+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGhEYXRhKQog
ICAgIHsKICAgICAgICAgUGF0aCBwYXRoOwogICAgICAgICBidWlsZFBhdGhGcm9tU3RyaW5nKHBh
dGhEYXRhLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rl
dGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmNwcAppbmRleCAzN2ZhNDNjLi5iNDk2YTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC0z
OSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxEZXRhaWxz
TWFya2VyQ29udHJvbD4gRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8RGV0YWlsc01hcmtlckNvbnRyb2w+IERldGFpbHNNYXJrZXJDb250cm9sOjpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV0
YWlsc01hcmtlckNvbnRyb2woZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
ZXRhaWxzTWFya2VyQ29udHJvbChkb2N1bWVudCkpOwogfQogCiBEZXRhaWxzTWFya2VyQ29udHJv
bDo6RGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKaW5kZXggODFjZjFj
ZC4uNDdhYjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxz
TWFya2VyQ29udHJvbC5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRGV0YWlsc01hcmtlckNvbnRyb2wgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNNYXJrZXJDb250cm9sPiBj
cmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPERldGFpbHNNYXJrZXJDb250cm9sPiBj
cmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBEZXRhaWxzTWFya2VyQ29udHJvbChE
b2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA5NWNl
MGYwLi4wZWJkYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAt
NDcsOSArNDcsOSBAQCBwdWJsaWM6CiAKIGNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBwdWJsaWMg
VHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBz
dGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBh
c3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2
YXRlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2soKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oCmluZGV4IDk1NmIwNGEuLjczZmMwNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgKQEAgLTM2LDkgKzM2
LDkgQEAgY2xhc3MgQXVkaW9UcmFjazsKIAogY2xhc3MgQXVkaW9UcmFja0xpc3QgZmluYWwgOiBw
dWJsaWMgVHJhY2tMaXN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVk
aW9UcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBvd25lciwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tMaXN0PiBjcmVh
dGUoSFRNTE1lZGlhRWxlbWVudCogb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvVHJhY2tMaXN0KG93
bmVyLCBjb250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tM
aXN0KG93bmVyLCBjb250ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tMaXN0
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svRGF0YUN1ZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgKaW5kZXggYjQ5MGY2My4uZWY1MmU3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgKQEAgLTQ1LDMwICs0NSwzMCBAQCBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEYXRhQ3VlIGZpbmFsIDogcHVi
bGljIFRleHRUcmFja0N1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YUN1
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBBcnJheUJ1ZmZlciogZGF0YSwgRXhjZXB0
aW9uQ29kZSYgZWMpCisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIEFycmF5QnVmZmVyKiBkYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBk
YXRhLCBlbXB0eVN0cmluZygpLCBlYykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
YXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGRhdGEsIGVtcHR5U3RyaW5nKCksIGVjKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YUN1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgc3RhdGlj
IFJlZjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBkYXRhLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBkYXRhLCBsZW5n
dGgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhQ3VlPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIEFycmF5QnVmZmVyKiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIHN0YXRpYyBSZWY8RGF0YUN1ZT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgZW5kLCBBcnJheUJ1ZmZlciogZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0
YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBkYXRhLCB0eXBlLCBlYykpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGRhdGEsIHR5cGUs
IGVjKSk7CiAgICAgfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0YUN1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBT
dHJpbmcmIHR5cGUpCisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBs
YXRmb3JtVmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVlLCB0
eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFDdWUoY29udGV4dCwgc3Rh
cnQsIGVuZCwgcGxhdGZvcm1WYWx1ZSwgdHlwZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERhdGFDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgSlNDOjpKU1ZhbHVl
IHZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgY29uc3QgU3RyaW5n
JiB0eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhQ3VlKGNvbnRl
eHQsIHN0YXJ0LCBlbmQsIHZhbHVlLCB0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERhdGFDdWUoY29udGV4dCwgc3RhcnQsIGVuZCwgdmFsdWUsIHR5cGUpKTsKICAgICB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5l
QVBJSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0
LmNwcAppbmRleCAyNTQ3OTBjLi5iMTNkOWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcApAQCAtNjAsOSArNjAsOSBAQCB1c2luZyBuYW1l
c3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Q29t
bWFuZExpbmVBUElIb3N0PiBDb21tYW5kTGluZUFQSUhvc3Q6OmNyZWF0ZSgpCitSZWY8Q29tbWFu
ZExpbmVBUElIb3N0PiBDb21tYW5kTGluZUFQSUhvc3Q6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDb21tYW5kTGluZUFQSUhvc3QpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IENvbW1hbmRMaW5lQVBJSG9zdCk7CiB9CiAKIENvbW1hbmRMaW5lQVBJSG9zdDo6Q29tbWFu
ZExpbmVBUElIb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21t
YW5kTGluZUFQSUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQ
SUhvc3QuaAppbmRleCBjNDk0ZTM2Li5iMDNmMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBFdmVu
dExpc3RlbmVySW5mbzsKIAogY2xhc3MgQ29tbWFuZExpbmVBUElIb3N0IDogcHVibGljIFJlZkNv
dW50ZWQ8Q29tbWFuZExpbmVBUElIb3N0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q29tbWFuZExpbmVBUElIb3N0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPENvbW1hbmRM
aW5lQVBJSG9zdD4gY3JlYXRlKCk7CiAgICAgfkNvbW1hbmRMaW5lQVBJSG9zdCgpOwogCiAgICAg
dm9pZCBpbml0KEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDM3NjAwNWQuLjE4OGU5YmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC03OCw5ICs3OCw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEb2N1bWVudExvYWRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPERvY3VtZW50TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKQorICAgICAgICBzdGF0
aWMgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkYXRhKSk7CisgICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkYXRh
KSk7CiAgICAgICAgIH0KICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RG9jdW1lbnRM
b2FkZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmNwcAppbmRleCA2OTk0ODRlLi4z
NTEwYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmNwcApAQCAtNDIsOSArNDIsOSBA
QCBpbmxpbmUgRm9ybVN0YXRlOjpGb3JtU3RhdGUoUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IGZvcm0sIFN0cmluZ1BhaXJWZWN0b3ImCiAgICAgbV90ZXh0RmllbGRWYWx1ZXMuc3dhcCh0ZXh0
RmllbGRWYWx1ZXNUb0Fkb3B0KTsKIH0KIAotUGFzc1JlZlB0cjxGb3JtU3RhdGU+IEZvcm1TdGF0
ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtLCBTdHJpbmdQYWlyVmVj
dG9yJiB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBQYXNzUmVmUHRyPERvY3VtZW50PiBzb3VyY2VE
b2N1bWVudCwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIGZvcm1TdWJtaXNzaW9uVHJpZ2dlcikKK1Jl
ZjxGb3JtU3RhdGU+IEZvcm1TdGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50
PiBmb3JtLCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBQYXNzUmVm
UHRyPERvY3VtZW50PiBzb3VyY2VEb2N1bWVudCwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIGZvcm1T
dWJtaXNzaW9uVHJpZ2dlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1TdGF0ZShm
b3JtLCB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBzb3VyY2VEb2N1bWVudCwgZm9ybVN1Ym1pc3Np
b25UcmlnZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9ybVN0YXRlKGZvcm0sIHRl
eHRGaWVsZFZhbHVlc1RvQWRvcHQsIHNvdXJjZURvY3VtZW50LCBmb3JtU3VibWlzc2lvblRyaWdn
ZXIpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5oCmluZGV4IDNkMThhMjYuLmQx
NzkzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRm9ybVN0YXRlIDogcHVibGljIFJlZkNvdW50
ZWQ8Rm9ybVN0YXRlPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+IGNyZWF0ZShQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4sIFN0cmluZ1BhaXJW
ZWN0b3ImIHRleHRGaWVsZFZhbHVlc1RvQWRvcHQsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+LCBGb3Jt
U3VibWlzc2lvblRyaWdnZXIpOworICAgICAgICBzdGF0aWMgUmVmPEZvcm1TdGF0ZT4gY3JlYXRl
KFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiwgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxk
VmFsdWVzVG9BZG9wdCwgUGFzc1JlZlB0cjxEb2N1bWVudD4sIEZvcm1TdWJtaXNzaW9uVHJpZ2dl
cik7CiAKICAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9m
b3JtLmdldCgpOyB9CiAgICAgICAgIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZh
bHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEZpZWxkVmFsdWVzOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA5Yjg3Mzg2Li5mMzhiMWQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCBz
dGF0aWMgVGV4dEVuY29kaW5nIGVuY29kaW5nRnJvbUFjY2VwdENoYXJzZXQoY29uc3QgU3RyaW5n
JiBhY2NlcHRDaGFyc2V0LCBEb2N1bQogICAgIHJldHVybiBkb2N1bWVudC5pbnB1dEVuY29kaW5n
KCk7CiB9CiAKLVBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJtaXNzaW9uOjpjcmVh
dGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIEZvcm1TdWJt
aXNzaW9uVHJpZ2dlciB0cmlnZ2VyKQorUmVmPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lv
bjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQXR0cmlidXRlcyYgYXR0cmli
dXRlcywgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBG
b3JtU3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKICAgICBBU1NFUlQoZm9ybSk7CiAKQEAg
LTIzNiw3ICsyMzYsNyBAQCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBGb3JtU3VibWlzc2lv
bjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQQogICAgIGZvcm1EYXRhLT5z
ZXRDb250YWluc1Bhc3N3b3JkRGF0YShjb250YWluc1Bhc3N3b3JkRGF0YSk7CiAgICAgU3RyaW5n
IHRhcmdldE9yQmFzZVRhcmdldCA9IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0KCkuaXNFbXB0eSgp
ID8gZG9jdW1lbnQuYmFzZVRhcmdldCgpIDogY29waWVkQXR0cmlidXRlcy50YXJnZXQoKTsKICAg
ICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBGb3JtU3RhdGU6OmNyZWF0ZShmb3JtLCBm
b3JtVmFsdWVzLCAmZG9jdW1lbnQsIHRyaWdnZXIpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Rm9ybVN1Ym1pc3Npb24oY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0YXJn
ZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9ybURh
dGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRm9ybVN1Ym1pc3Npb24oY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSwg
YWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJl
bGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50
KSk7CiB9CiAKIFVSTCBGb3JtU3VibWlzc2lvbjo6cmVxdWVzdFVSTCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCmluZGV4IDgzMTVmMDIuLjE4MjEwYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCkBAIC04OSw3ICs4OSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgU3RyaW5nIG1fYWNjZXB0Q2hhcnNldDsKICAgICB9OwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IGNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqLCBjb25z
dCBBdHRyaWJ1dGVzJiwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIExvY2tIaXN0b3J5LCBGb3Jt
U3VibWlzc2lvblRyaWdnZXIpOworICAgIHN0YXRpYyBSZWY8Rm9ybVN1Ym1pc3Npb24+IGNyZWF0
ZShIVE1MRm9ybUVsZW1lbnQqLCBjb25zdCBBdHRyaWJ1dGVzJiwgUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQsIExvY2tIaXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOwogCiAgICAgdm9pZCBw
b3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmgKaW5kZXggMmE5MjU0OC4uMTcx
MTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rlci5oCkBA
IC00Myw5ICs0Myw5IEBAIHB1YmxpYzoKICAgICAgICAgRW5jb2RpbmdGcm9tUGFyZW50RnJhbWUK
ICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFRleHRFbmNvZGluZyYgZGVmYXVsdEVu
Y29kaW5nID0gVGV4dEVuY29kaW5nKCksIGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IgPSBmYWxz
ZSkKKyAgICBzdGF0aWMgUmVmPFRleHRSZXNvdXJjZURlY29kZXI+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBUZXh0RW5jb2RpbmcmIGRlZmF1bHRFbmNvZGluZyA9IFRleHRF
bmNvZGluZygpLCBib29sIHVzZXNFbmNvZGluZ0RldGVjdG9yID0gZmFsc2UpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRSZXNvdXJjZURlY29kZXIobWltZVR5cGUsIGRl
ZmF1bHRFbmNvZGluZywgdXNlc0VuY29kaW5nRGV0ZWN0b3IpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGV4dFJlc291cmNlRGVjb2RlcihtaW1lVHlwZSwgZGVmYXVsdEVuY29kaW5n
LCB1c2VzRW5jb2RpbmdEZXRlY3RvcikpOwogICAgIH0KICAgICBXRUJDT1JFX0VYUE9SVCB+VGV4
dFJlc291cmNlRGVjb2RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCmluZGV4IDcxNWM1YWEuLjBlOTYzNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3Jh
cHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50
V3JhcHBlci5oCkBAIC0zMywxNiArMzMsMTYgQEAKIAogI2luY2x1ZGUgIlRocmVhZGFibGVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNs
aWVudFdyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkYWJsZUxvYWRl
ckNsaWVudFdyYXBwZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFRocmVhZGFibGVMb2FkZXJDbGllbnQqIGNs
aWVudCkKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiBjcmVh
dGUoVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIo
Y2xpZW50KSk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhckNsaWVudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAppbmRleCBhMjVkOTc4Li4yYTk1
ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVy
LmgKQEAgLTU0LDkgKzU0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2VyVGhyZWFkYWJsZUxvYWRl
cj4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgVGhyZWFkYWJs
ZUxvYWRlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRp
b25zKQorICAgICAgICBzdGF0aWMgUmVmPFdvcmtlclRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShX
b3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIFRocmVhZGFibGVMb2FkZXJDbGll
bnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIHRhc2tNb2RlLCByZXF1ZXN0LCBvcHRpb25z
KSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIHRhc2tNb2RlLCByZXF1ZXN0LCBvcHRpb25z
KSk7CiAgICAgICAgIH0KIAogICAgICAgICB+V29ya2VyVGhyZWFkYWJsZUxvYWRlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgKaW5k
ZXggZmRjOWFjYS4uOTE5N2Q5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZS5oCkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgVmVjdG9y
PHN0ZDo6cGFpcjxVUkwsIFVSTD4+IEZhbGxiYWNrVVJMVmVjdG9yOwogCiBjbGFzcyBBcHBsaWNh
dGlvbkNhY2hlIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGljYXRpb25DYWNoZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGU+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBcHBsaWNhdGlvbkNhY2hlKTsgfQorICAgIHN0YXRpYyBSZWY8QXBw
bGljYXRpb25DYWNoZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsaWNhdGlv
bkNhY2hlKTsgfQogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRlbGV0ZUNh
Y2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgZGVsZXRlQWxsQ2FjaGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgKaW5kZXggZDhkM2YxYS4u
YzA2M2EwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaApAQCAtNDAsMTAgKzQwLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgRmFsbGJhY2sgPSAxIDw8IDQKICAgICB9OwogICAgICAgICAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IGNyZWF0ZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIHVuc2lnbmVkIHR5cGUsIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCBjb25z
dCBTdHJpbmcmIHBhdGggPSBTdHJpbmcoKSkKKyAgICBzdGF0aWMgUmVmPEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZT4gY3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgdW5zaWduZWQgdHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGNvbnN0IFN0cmluZyYgcGF0aCA9IFN0cmluZygp
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCF1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSh1cmws
IHJlc3BvbnNlLCB0eXBlLCBidWZmZXIsIHBhdGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXBwbGljYXRpb25DYWNoZVJlc291cmNlKHVybCwgcmVzcG9uc2UsIHR5cGUsIGJ1ZmZl
ciwgcGF0aCkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01B
cHBsaWNhdGlvbkNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBw
bGljYXRpb25DYWNoZS5oCmluZGV4IGNiMjc1NDUuLmNkZGY3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaApAQCAtMzIs
NyArMzIsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KQEAgLTQ0LDcgKzQz
LDcgQEAgY2xhc3MgVVJMOwogCiBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlIGZpbmFsIDogcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9NQXBwbGljYXRpb25DYWNo
ZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgRE9NV2luZG93UHJv
cGVydHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUFwcGxpY2F0aW9uQ2Fj
aGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01BcHBsaWNh
dGlvbkNhY2hlKGZyYW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTUFwcGxpY2F0aW9uQ2FjaGU+
IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NQXBwbGljYXRp
b25DYWNoZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+RE9NQXBwbGljYXRpb25DYWNoZSgpIHsg
QVNTRVJUKCFtX2ZyYW1lKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcmFtZUZv
clBhZ2VDYWNoZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmVSZXNvdXJjZS5jcHAKaW5kZXggNGIwNWZkYy4uZTAyMDVhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2UuY3BwCkBAIC00
MiwxOSArNDIsMTkgQEAgaW5saW5lIEFyY2hpdmVSZXNvdXJjZTo6QXJjaGl2ZVJlc291cmNlKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwKIHsKIH0KIAotUGFzc1JlZlB0
cjxBcmNoaXZlUmVzb3VyY2U+IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IEFy
Y2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKIHsKICAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgdW5z
aWduZWQgZGF0YVNpemUgPSBkYXRhLT5zaXplKCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQXJjaGl2ZVJlc291cmNlKGRhdGEsIHVybCwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgZnJh
bWVOYW1lLAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcmNoaXZlUmVzb3VyY2UoZGF0
YSwgdXJsLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCBmcmFtZU5hbWUsCiAgICAgICAgICAgICBS
ZXNvdXJjZVJlc3BvbnNlKHVybCwgbWltZVR5cGUsIGRhdGFTaXplLCB0ZXh0RW5jb2RpbmcpKSk7
CiAgICAgfQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJjaGl2ZVJlc291cmNlKGRhdGEsIHVy
bCwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgZnJhbWVOYW1lLCByZXNwb25zZSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFyY2hpdmVSZXNvdXJjZShkYXRhLCB1cmwsIG1pbWVUeXBlLCB0
ZXh0RW5jb2RpbmcsIGZyYW1lTmFtZSwgcmVzcG9uc2UpKTsKIH0KIAotUGFzc1JlZlB0cjxBcmNo
aXZlUmVzb3VyY2U+IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBkYXRhLCBjb25zdCBVUkwmIHVybCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCitSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIHJldHVybiBjcmVhdGUoZGF0YSwgdXJsLCByZXNw
b25zZS5taW1lVHlwZSgpLCByZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCksIFN0cmluZygpLCBy
ZXNwb25zZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9B
cmNoaXZlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVS
ZXNvdXJjZS5oCmluZGV4IDdmMWMzMmUuLjI1YmQ1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5oCkBAIC0zNSw4ICszNSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJjaGl2ZVJlc291cmNlIDogcHVibGljIFN1YnN0aXR1
dGVSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291
cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBVUkwmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
QXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBV
UkwmLAorICAgIHN0YXRpYyBSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBVUkwmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFVSTCYsCiAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwKICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgPSBSZXNvdXJjZVJlc3Bv
bnNlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNl
LmgKaW5kZXggNGM5ZWExYi4uZGY4NzcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZUJhc2UuaApAQCAtNzksOSArNzksOSBAQCBjbGFzcyBFbnVtQ2FsbGJh
Y2sgOiBwdWJsaWMgQ2FsbGJhY2tCYXNlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIHZvaWQgKCpD
YWxsYmFja0Z1bmN0aW9uKShFbnVtVHlwZSwgdm9pZCopOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RW51bUNhbGxiYWNrPiBjcmVhdGUodm9pZCogY29udGV4dCwgQ2FsbGJhY2tGdW5jdGlvbiBj
YWxsYmFjaykKKyAgICBzdGF0aWMgUmVmPEVudW1DYWxsYmFjaz4gY3JlYXRlKHZvaWQqIGNvbnRl
eHQsIENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEVudW1DYWxsYmFjayhjb250ZXh0LCBjYWxsYmFjaykpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFbnVtQ2FsbGJhY2soY29udGV4dCwgY2FsbGJhY2spKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIH5FbnVtQ2FsbGJhY2soKQpAQCAtMTE4LDkgKzExOCw5IEBAIGNsYXNz
IE9iamVjdENhbGxiYWNrIDogcHVibGljIENhbGxiYWNrQmFzZSB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiB2b2lkICgqQ2FsbGJhY2tGdW5jdGlvbikoT2JqZWN0VHlwZSwgdm9pZCopOwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8T2JqZWN0Q2FsbGJhY2s+IGNyZWF0ZSh2b2lkKiBjb250ZXh0LCBD
YWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQorICAgIHN0YXRpYyBSZWY8T2JqZWN0Q2FsbGJhY2s+
IGNyZWF0ZSh2b2lkKiBjb250ZXh0LCBDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RDYWxsYmFjayhjb250ZXh0LCBjYWxs
YmFjaykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RDYWxsYmFjayhjb250
ZXh0LCBjYWxsYmFjaykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfk9iamVjdENhbGxiYWNrKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuaAppbmRleCBkNDA4NTkzLi5lNWVi
MTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5oCkBAIC03NCw5ICs3
NCw5IEBAIHByaXZhdGU6CiBjbGFzcyBJY29uUmVjb3JkIDogcHVibGljIFJlZkNvdW50ZWQ8SWNv
blJlY29yZD4gewogICAgIGZyaWVuZCBjbGFzcyBQYWdlVVJMUmVjb3JkOwogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEljb25SZWNvcmQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCkK
KyAgICBzdGF0aWMgUmVmPEljb25SZWNvcmQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvblJlY29yZCh1cmwpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSWNvblJlY29yZCh1cmwpKTsKICAgICB9CiAgICAgfklj
b25SZWNvcmQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRleCBkOGRmNGE4Li41OWQ1MzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVs
ZW1lbnQuY3BwCkBAIC01MCw5ICs1MCw5IEBAIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6
Ok1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYKIHsKIH0K
IAotUGFzc1JlZlB0cjxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ+IE1hdGhN
TElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRo
TUxJbmxpbmVDb250YWluZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiB2b2lkIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKaW5kZXggNzA5ZmU0OC4u
MjkzNjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNv
bnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKIGNsYXNzIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgOiBwdWJsaWMgTWF0aE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5k
ZXggMzUwNDJmZC4uYmRhMTBjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmNwcApAQCAtMzgsOSArMzgsOSBAQCBpbmxpbmUgTWF0aE1MTWF0aEVsZW1lbnQ6
Ok1hdGhNTE1hdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQog
ewogfQogCi1QYXNzUmVmUHRyPE1hdGhNTE1hdGhFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxNYXRoTUxNYXRoRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNYXRoTUxNYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTE1hdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKaW5kZXggOWFmMjU1NS4uNGE0MTAzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxNYXRoRWxlbWVudCA6IHB1Ymxp
YyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNYXRoTUxNYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxNYXRoRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgTWF0aE1MTWF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5jcHAKaW5kZXggYzc1NWQ3MS4uMDZkYWZiNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgTWF0aE1MTWVu
Y2xvc2VFbGVtZW50OjpNYXRoTUxNZW5jbG9zZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW0KIHsKIH0KIAotUGFzc1JlZlB0cjxNYXRoTUxNZW5jbG9zZUVsZW1lbnQ+
IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxNYXRoTUxNZW5jbG9zZUVsZW1lbnQ+IE1hdGhN
TE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhNTE1lbmNs
b3NlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1hdGhNTE1lbmNsb3NlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IDIyYTMzY2QuLmMyN2E0MzkgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxNZW5jbG9zZUVsZW1lbnQg
ZmluYWw6IHB1YmxpYyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxNZW5jbG9zZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWF0aE1M
TWVuY2xvc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmKTsKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbm90YXRpb25WYWx1ZXMoKSBjb25z
dCB7IHJldHVybiBtX25vdGF0aW9uVmFsdWVzOyB9CiAgICAgYm9vbCBpc1JhZGljYWwoKSBjb25z
dCB7IHJldHVybiBtX2lzUmFkaWNhbFZhbHVlOyB9CiAgICAgU3RyaW5nIGxvbmdEaXZMZWZ0UGFk
ZGluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNl
bGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1l
bnQuY3BwCmluZGV4IDZkNTI5NjEuLjA4N2RmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgTWF0aE1MU2VsZWN0
RWxlbWVudDo6TWF0aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYKIHsKIH0KIAotUGFzc1JlZlB0cjxNYXRoTUxTZWxlY3RFbGVtZW50PiBNYXRo
TUxTZWxlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxTZWxlY3RFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MU2VsZWN0
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxT
ZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVu
dC5oCmluZGV4IDM1NDAwZmViLi4yMmE2Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxTZWxlY3RFbGVtZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNYXRoTUxTZWxlY3RFbGVtZW50IGZpbmFsIDogcHVibGljIE1hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hdGhN
TFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWF0aE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgc3RhdGljIGJvb2wgaXNN
YXRoTUxFbmNvZGluZyhjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgYm9v
bCBpc1NWR0VuY29kaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGlzSFRNTEVuY29kaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKaW5kZXggNDU2YzgxNC4uOTYwNmRk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCkBAIC00
NSw5ICs0NSw5IEBAIGlubGluZSBNYXRoTUxUZXh0RWxlbWVudDo6TWF0aE1MVGV4dEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgc2V0SGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQdHI8TWF0aE1MVGV4dEVsZW1lbnQ+
IE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTFRleHRFbGVtZW50PiBNYXRoTUxUZXh0RWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhNTFRleHRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MVGV4dEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBNYXRoTUxUZXh0RWxlbWVudDo6ZGlk
QXR0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmgKaW5kZXggYzY4NDJlOS4uNjliMDU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFRleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IAogY2xhc3MgTWF0aE1MVGV4dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWF0aE1MRWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
QmFyUHJvcC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmgKaW5kZXggZWRmYTU2Zi4u
MDNkNzFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1
ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBCYXJQcm9wIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8QmFyUHJvcD4sIHB1YmxpYyBET01XaQogcHVibGljOgogICAgIGVudW0gVHlwZSB7IExv
Y2F0aW9uYmFyLCBNZW51YmFyLCBQZXJzb25hbGJhciwgU2Nyb2xsYmFycywgU3RhdHVzYmFyLCBU
b29sYmFyIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCYXJQcm9wPiBjcmVhdGUoRnJhbWUq
IGZyYW1lLCBUeXBlIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYXJQcm9wKGZyYW1lLCB0
eXBlKSk7IH0KKyAgICBzdGF0aWMgUmVmPEJhclByb3A+IGNyZWF0ZShGcmFtZSogZnJhbWUsIFR5
cGUgdHlwZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBCYXJQcm9wKGZyYW1lLCB0eXBlKSk7IH0K
IAogICAgIFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3J5cHRvLmgKaW5kZXggOTRlYWI1Ni4uYWYwZmMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DcnlwdG8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oCkBA
IC00OSw3ICs0OSw3IEBAIGNsYXNzIFN1YnRsZUNyeXB0bzsKIAogY2xhc3MgQ3J5cHRvIDogcHVi
bGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG8+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG8+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG8oZG9jdW1lbnQpKTsgfQor
ICAgIHN0YXRpYyBSZWY8Q3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IENyeXB0byhkb2N1bWVudCkpOyB9CiAgICAgdmlydHVhbCB+Q3J5cHRv
KCk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VjdXJpdHlQb2xpY3kuaAppbmRleCA0MmFlNTE4Li5kZjY5MTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIEZyYW1l
OwogCiBjbGFzcyBET01TZWN1cml0eVBvbGljeSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVNlY3Vy
aXR5UG9saWN5PiwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TZWN1cml0eVBvbGljeT4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgc3RhdGljIFJlZjxET01TZWN1cml0eVBvbGlj
eT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNlY3VyaXR5UG9saWN5KGNvbnRleHQpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NU2VjdXJpdHlQb2xpY3koY29udGV4dCkpOwogICAg
IH0KICAgICB+RE9NU2VjdXJpdHlQb2xpY3koKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01TZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9u
LmgKaW5kZXggZGU0ODU2OS4uMmZhMWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01TZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5o
CkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERPTVNl
bGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVNlbGVjdGlvbj4sIHB1YmxpYyBET01XaW5k
b3dQcm9wZXJ0eSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01T
ZWxlY3Rpb24+IGNyZWF0ZShjb25zdCBUcmVlU2NvcGUqIHRyZWVTY29wZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IERPTVNlbGVjdGlvbih0cmVlU2NvcGUpKTsgfQorICAgICAgICBzdGF0aWMgUmVm
PERPTVNlbGVjdGlvbj4gY3JlYXRlKGNvbnN0IFRyZWVTY29wZSogdHJlZVNjb3BlKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IERPTVNlbGVjdGlvbih0cmVlU2NvcGUpKTsgfQogCiAgICAgICAgIHZv
aWQgY2xlYXJUcmVlU2NvcGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNDgyOTFj
Yy4uZWFkNDU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC05OSw3ICs5OSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLCBwdWJsaWMgRnJhbWVEZXN0cnVjdGlvbk9ic2Vy
dmVyCiAgICAgICAgICwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERPTVdpbmRvdz4gewogICAgIHB1
YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NV2luZG93PiBjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7
IH0KKyAgICAgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0KICAgICAg
ICAgdmlydHVhbCB+RE9NV2luZG93KCk7CiAKICAgICAgICAgLy8gSW4gc29tZSByYXJlIGNhc2Vz
LCB3ZSdsbCByZS11c2VkIGEgRE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVudC4gRm9yIGV4YW1w
bGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAppbmRleCA0OTI5MGJj
Li5hOTc4ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVu
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAg
LTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgRE9NV2luZG93RXh0ZW5zaW9uX2gKIAogI2luY2x1ZGUg
IkRPTVdpbmRvd1Byb3BlcnR5LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtMzks
OSArMzgsOSBAQCBjbGFzcyBGcmFtZTsKIAogY2xhc3MgRE9NV2luZG93RXh0ZW5zaW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8RE9NV2luZG93RXh0ZW5zaW9uPiwgcHVibGljIERPTVdpbmRvd1Byb3Bl
cnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01XaW5kb3dFeHRlbnNpb24+
IGNyZWF0ZShGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCisgICAgc3RhdGlj
IFJlZjxET01XaW5kb3dFeHRlbnNpb24+IGNyZWF0ZShGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJX
b3JsZCYgd29ybGQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVdpbmRv
d0V4dGVuc2lvbihmcmFtZSwgd29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RE9NV2luZG93RXh0ZW5zaW9uKGZyYW1lLCB3b3JsZCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwg
dm9pZCBkaXNjb25uZWN0RnJhbWVGb3JQYWdlQ2FjaGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCAwOWNhYjhkLi5kOTY2NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yMjIsMTkgKzIyMiwxOSBAQCBGcmFtZVZpZXc6OkZyYW1lVmlldyhGcmFt
ZSYgZnJhbWUpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxGcmFtZVZpZXc+IEZyYW1lVmlldzo6
Y3JlYXRlKEZyYW1lJiBmcmFtZSkKK1JlZjxGcmFtZVZpZXc+IEZyYW1lVmlldzo6Y3JlYXRlKEZy
YW1lJiBmcmFtZSkKIHsKLSAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3ID0gYWRvcHRSZWYobmV3
IEZyYW1lVmlldyhmcmFtZSkpOworICAgIFJlZjxGcmFtZVZpZXc+IHZpZXcgPSBhZG9wdFJlZigq
bmV3IEZyYW1lVmlldyhmcmFtZSkpOwogICAgIHZpZXctPnNob3coKTsKLSAgICByZXR1cm4gdmll
dy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKLVBhc3NSZWZQdHI8RnJhbWVWaWV3
PiBGcmFtZVZpZXc6OmNyZWF0ZShGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIGluaXRpYWxT
aXplKQorUmVmPEZyYW1lVmlldz4gRnJhbWVWaWV3OjpjcmVhdGUoRnJhbWUmIGZyYW1lLCBjb25z
dCBJbnRTaXplJiBpbml0aWFsU2l6ZSkKIHsKLSAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3ID0g
YWRvcHRSZWYobmV3IEZyYW1lVmlldyhmcmFtZSkpOworICAgIFJlZjxGcmFtZVZpZXc+IHZpZXcg
PSBhZG9wdFJlZigqbmV3IEZyYW1lVmlldyhmcmFtZSkpOwogICAgIHZpZXctPldpZGdldDo6c2V0
RnJhbWVSZWN0KEludFJlY3Qodmlldy0+bG9jYXRpb24oKSwgaW5pdGlhbFNpemUpKTsKICAgICB2
aWV3LT5zaG93KCk7Ci0gICAgcmV0dXJuIHZpZXcucmVsZWFzZSgpOworICAgIHJldHVybiB2aWV3
OwogfQogCiBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5k
ZXggMzY2MWU3MC4uNWZhOTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC03MCw4ICs3
MCw4IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyVmlldzsKICAgICBmcmllbmQg
Y2xhc3MgSW50ZXJuYWxzOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
RnJhbWVWaWV3PiBjcmVhdGUoRnJhbWUmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZVZp
ZXc+IGNyZWF0ZShGcmFtZSYsIGNvbnN0IEludFNpemUmIGluaXRpYWxTaXplKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYW1lVmlldz4gY3JlYXRlKEZyYW1lJik7CisgICAgc3Rh
dGljIFJlZjxGcmFtZVZpZXc+IGNyZWF0ZShGcmFtZSYsIGNvbnN0IEludFNpemUmIGluaXRpYWxT
aXplKTsKIAogICAgIHZpcnR1YWwgfkZyYW1lVmlldygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDFjMTQzYWEuLmJl
ZDM3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIFJlbmRlclN0eWxlOwogLy8gb24g
YSBzaW5nbGUgUmVuZGVyRWxlbWVudCwgc3VjaCBhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRy
YW5zaXRpb25pbmcgYXQgb25jZS4KIGNsYXNzIENvbXBvc2l0ZUFuaW1hdGlvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPENvbXBvc2l0ZUFuaW1hdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbXBvc2l0ZUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlKiBhbmltYXRpb25Db250cm9sbGVyKQorICAgIHN0YXRpYyBSZWY8Q29tcG9zaXRlQW5pbWF0
aW9uPiBjcmVhdGUoQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqIGFuaW1hdGlvbkNvbnRyb2xs
ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbXBvc2l0ZUFuaW1hdGlv
bihhbmltYXRpb25Db250cm9sbGVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENv
bXBvc2l0ZUFuaW1hdGlvbihhbmltYXRpb25Db250cm9sbGVyKSk7CiAgICAgfTsKIAogICAgIH5D
b21wb3NpdGVBbmltYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBjODBjMzI0Li43MTI1
YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFNjcm9sbGlu
Z1N0YXRlVHJlZTsKIC8vIGFsbG93aW5nIGFzeW5jaHJvbm91cyBzY3JvbGxpbmcgKGluIGFub3Ro
ZXIgdGhyZWFkIG9yIHByb2Nlc3MpLgogY2xhc3MgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciA6
IHB1YmxpYyBTY3JvbGxpbmdDb29yZGluYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlKFBhZ2UqKTsKKyAgICBzdGF0
aWMgUmVmPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShQYWdlKik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcigpOwogCiAgICAg
U2Nyb2xsaW5nVHJlZSogc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5n
VHJlZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA0M2RlMjI0Li41YzFi
ZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNTgsNyArNTgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGNsYXNzIFNoYXJlZEN1cnNvciA6
IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEN1cnNvcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQ3Vyc29yPiBjcmVhdGUoSENVUlNPUiBuYXRpdmVDdXJz
b3IpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7IH0K
KyAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1
cnNvcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7
IH0KICAgICAgICAgflNoYXJlZEN1cnNvcigpOwogICAgICAgICBIQ1VSU09SIG5hdGl2ZUN1cnNv
cigpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlQ3Vyc29yOyB9CiAgICAgcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAppbmRleCBmNmNlYTUzLi5lYWRhNDliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCkBAIC0zNyw5ICszNyw5IEBA
IEZpbGVDaG9vc2VyOjpGaWxlQ2hvb3NlcihGaWxlQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25z
dCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzCiB7CiB9CiAKLVBhc3NSZWZQdHI8RmlsZUNob29zZXI+
IEZpbGVDaG9vc2VyOjpjcmVhdGUoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgRmls
ZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCitSZWY8RmlsZUNob29zZXI+IEZpbGVDaG9vc2Vy
OjpjcmVhdGUoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgRmlsZUNob29zZXJTZXR0
aW5ncyYgc2V0dGluZ3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlQ2hvb3Nlcihj
bGllbnQsIHNldHRpbmdzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZUNob29zZXIo
Y2xpZW50LCBzZXR0aW5ncykpOwogfQogCiBGaWxlQ2hvb3Nlcjo6fkZpbGVDaG9vc2VyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCmluZGV4IGNkNjhkNjIuLmIwNTEzNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJs
aWM6CiAKIGNsYXNzIEZpbGVDaG9vc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZUNob29zZXI+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gY3JlYXRlKEZp
bGVDaG9vc2VyQ2xpZW50KiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOworICAgIHN0YXRp
YyBSZWY8RmlsZUNob29zZXI+IGNyZWF0ZShGaWxlQ2hvb3NlckNsaWVudCosIGNvbnN0IEZpbGVD
aG9vc2VyU2V0dGluZ3MmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+RmlsZUNob29zZXIoKTsKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL0FuaW1hdGlvbi5oCmluZGV4IGJjMjM5OTYuLmIyZGMxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKQEAgLTM4LDggKzM4LDggQEAgY2xh
c3MgQW5pbWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8QW5pbWF0aW9uPiB7CiBwdWJsaWM6CiAg
ICAgfkFuaW1hdGlvbigpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKTsgfQotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IEFuaW1hdGlvbiYgb3RoZXIpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBBbmltYXRpb24ob3RoZXIpKTsgfQorICAgIHN0YXRpYyBSZWY8QW5pbWF0
aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEFuaW1hdGlvbik7IH0KKyAgICBz
dGF0aWMgUmVmPEFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IEFuaW1hdGlvbiYgb3RoZXIpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uKG90aGVyKSk7IH0KIAogICAgIGJvb2wgaXNEZWxh
eVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9u
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCA5ZGFjMDllLi5jZmY3Y2Q1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC00NiwxMyArNDYsMTMg
QEAgdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKIGNvbnN0IHVuc2lnbmVkIE1heEJ1c0No
YW5uZWxzID0gMzI7CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGUodW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSkKK1Jl
ZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlKQogewogICAgIEFTU0VSVChudW1iZXJPZkNo
YW5uZWxzIDw9IE1heEJ1c0NoYW5uZWxzKTsKICAgICBpZiAobnVtYmVyT2ZDaGFubmVscyA+IE1h
eEJ1c0NoYW5uZWxzKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMsIGxl
bmd0aCwgYWxsb2NhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0J1cyhudW1i
ZXJPZkNoYW5uZWxzLCBsZW5ndGgsIGFsbG9jYXRlKSk7CiB9CiAKIEF1ZGlvQnVzOjpBdWRpb0J1
cyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRl
KQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgQXVkaW9CdXM6OnRvcG9sb2d5TWF0Y2hlcyhjb25z
dCBBdWRpb0J1cyYgYnVzKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1QYXNzUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnVmZmVyRnJvbVJhbmdlKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVuc2lnbmVkIGVuZEZyYW1lKQor
UmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnVmZmVyRnJvbVJhbmdlKGNvbnN0IEF1
ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVuc2lnbmVkIGVuZEZy
YW1lKQogewogICAgIHNpemVfdCBudW1iZXJPZlNvdXJjZUZyYW1lcyA9IHNvdXJjZUJ1ZmZlci0+
bGVuZ3RoKCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscyA9IHNvdXJjZUJ1ZmZlci0+
bnVtYmVyT2ZDaGFubmVscygpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NSZWZQdHI8QXVkaW9C
dXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UoY29uc3QgQXVkaW9CdXMqIHNvdXJj
ZUJ1ZmZlCiAgICAgYm9vbCBpc1JhbmdlU2FmZSA9IHN0YXJ0RnJhbWUgPCBlbmRGcmFtZSAmJiBl
bmRGcmFtZSA8PSBudW1iZXJPZlNvdXJjZUZyYW1lczsKICAgICBBU1NFUlQoaXNSYW5nZVNhZmUp
OwogICAgIGlmICghaXNSYW5nZVNhZmUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCByYW5nZUxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRG
cmFtZTsKIApAQCAtNTIxLDEyICs1MjEsMTIgQEAgdm9pZCBBdWRpb0J1czo6Y29weVdpdGhTYW1w
bGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGYKICAg
ICB9CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCeVNhbXBsZVJh
dGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMsIGJvb2wgbWl4VG9Nb25vLCBk
b3VibGUgbmV3U2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ5
U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cywgYm9vbCBtaXhU
b01vbm8sIGRvdWJsZSBuZXdTYW1wbGVSYXRlKQogewogICAgIC8vIHNvdXJjZUJ1cydzIHNhbXBs
ZS1yYXRlIG11c3QgYmUga25vd24uCiAgICAgQVNTRVJUKHNvdXJjZUJ1cyAmJiBzb3VyY2VCdXMt
PnNhbXBsZVJhdGUoKSk7CiAgICAgaWYgKCFzb3VyY2VCdXMgfHwgIXNvdXJjZUJ1cy0+c2FtcGxl
UmF0ZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBkb3VibGUgc291cmNlU2FtcGxlUmF0ZSA9IHNvdXJjZUJ1cy0+c2FtcGxlUmF0ZSgpOwogICAg
IGRvdWJsZSBkZXN0aW5hdGlvblNhbXBsZVJhdGUgPSBuZXdTYW1wbGVSYXRlOwpAQCAtNTg0LDcg
KzU4NCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCeVNhbXBsZVJh
dGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyCiAgICAgcmV0dXJuIGRlc3RpbmF0aW9u
QnVzOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdU
b01vbm8oY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cykKK1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9C
dXM6OmNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMpCiB7CiAg
ICAgaWYgKHNvdXJjZUJ1cy0+aXNTaWxlbnQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZSgxLCBz
b3VyY2VCdXMtPmxlbmd0aCgpKTsKQEAgLTYxMyw3ICs2MTMsNyBAQCBQYXNzUmVmUHRyPEF1ZGlv
QnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMqIHNvdXJj
ZUJ1cykKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBBdWRpb0J1czo6aXNTaWxlbnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5kZXggMjA3ZDk2Yi4u
OGQ2ODM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCkBAIC02
Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0ZXMgd2hldGhlciBv
ciBub3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3JlYXRlZCB3aXRoIG1h
bmFnZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFzcyB0cnVlIGhlcmUs
IGluIHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnktbWFuYWdlIHRoZWly
IG93biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRoZW4gc2V0Q2hhbm5l
bE1lbW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2ggY2hhbm5lbCBiZWZv
cmUgdGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRp
b0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJv
b2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGUo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9
IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNoYW5uZWwgdG8gdXNlIGFuIGV4dGVy
bmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KICAgICB2b2lkIHNldENoYW5uZWxNZW1vcnkodW5zaWdu
ZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCk7CkBAIC0xMDQs
MTcgKzEwNCwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IGJ1ZmZlciBmcm9t
IGEgcmFuZ2UgaW4gdGhlIHNvdXJjZSBidWZmZXIuCiAgICAgLy8gMCBtYXkgYmUgcmV0dXJuZWQg
aWYgdGhlIHJhbmdlIGRvZXMgbm90IGZpdCBpbiB0aGUgc291cmNlQnVmZmVyCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1ZmZlckZyb21SYW5nZShjb25zdCBBdWRpb0J1
cyogc291cmNlQnVmZmVyLCB1bnNpZ25lZCBzdGFydEZyYW1lLCB1bnNpZ25lZCBlbmRGcmFtZSk7
CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVmZmVyRnJvbVJhbmdlKGNvbnN0
IEF1ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVuc2lnbmVkIGVu
ZEZyYW1lKTsKIAogCiAgICAgLy8gQ3JlYXRlcyBhIG5ldyBBdWRpb0J1cyBieSBzYW1wbGUtcmF0
ZSBjb252ZXJ0aW5nIHNvdXJjZUJ1cyB0byB0aGUgbmV3U2FtcGxlUmF0ZS4KICAgICAvLyBzZXRT
YW1wbGVSYXRlKCkgbXVzdCBoYXZlIGJlZW4gcHJldmlvdXNseSBjYWxsZWQgb24gc291cmNlQnVz
LgogICAgIC8vIE5vdGU6IHNhbXBsZS1yYXRlIGNvbnZlcnNpb24gaXMgYWxyZWFkeSBoYW5kbGVk
IGluIHRoZSBmaWxlLXJlYWRpbmcgY29kZSBmb3IgdGhlIG1hYyBwb3J0LCBzbyB3ZSBkb24ndCBu
ZWVkIHRoaXMuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ5U2FtcGxl
UmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cywgYm9vbCBtaXhUb01vbm8s
IGRvdWJsZSBuZXdTYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMsIGJvb2wg
bWl4VG9Nb25vLCBkb3VibGUgbmV3U2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3
IEF1ZGlvQnVzIGJ5IG1peGluZyBhbGwgdGhlIGNoYW5uZWxzIGRvd24gdG8gbW9uby4KICAgICAv
LyBJZiBzb3VyY2VCdXMgaXMgYWxyZWFkeSBtb25vLCB0aGVuIHRoZSByZXR1cm5lZCBBdWRpb0J1
cyB3aWxsIHNpbXBseSBiZSBhIGNvcHkuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9CdXM+
IGNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMpOworICAgIHN0
YXRpYyBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2VCdXMpOwogCiAgICAgLy8gU2NhbGVzIGFsbCBzYW1wbGVzIGJ5IHRoZSBzYW1lIGFt
b3VudC4KICAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwCmluZGV4IDU5
MjkyMjguLjZkMmRmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmNwcApAQCAtMjksOSArMjksOSBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykKLVBhc3NSZWZQdHI8QXVkaW9IYXJk
d2FyZUxpc3RlbmVyPiBBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVu
dCkKK1JlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Y3Jl
YXRlKENsaWVudCYgY2xpZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9IYXJk
d2FyZUxpc3RlbmVyKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lcihjbGllbnQpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCmluZGV4IGIyNjdl
MjAuLjcyZjBkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEF1ZGlv
SGFyZHdhcmVMaXN0ZW5lcl9oCiAjZGVmaW5lIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcl9oCiAKLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw3ICs0Nyw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZCgpID0gMDsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
QXVkaW9IYXJkd2FyZUxpc3RlbmVyPiBjcmVhdGUoQ2xpZW50Jik7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IGNyZWF0ZShDbGllbnQmKTsKICAg
ICB2aXJ0dWFsIH5BdWRpb0hhcmR3YXJlTGlzdGVuZXIoKSB7IH0KICAgICAKICAgICBBdWRpb0hh
cmR3YXJlQWN0aXZpdHlUeXBlIGhhcmR3YXJlQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2Fj
dGl2aXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCmluZGV4IDdlOTBlYTkuLmMyNjk1
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hh
cmR3YXJlTGlzdGVuZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCkBAIC0xMDksMTQgKzEwOSwxNCBAQCBz
dGF0aWMgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIG91dHB1dERldmljZVByb3Bl
cnR5RGVzY3JpcHRvcigpCiAgICAgcmV0dXJuIG91dHB1dERldmljZVByb3BlcnR5OwogfTsKIAot
UGFzc1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6
Y3JlYXRlKENsaWVudCYgY2xpZW50KQorUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVkaW9I
YXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIEF1
ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6Y3JlYXRlKGNsaWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OmNyZWF0
ZShDbGllbnQmIGNsaWVudCkKK1JlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IEF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKGNsaWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhjbGllbnQpKTsKIH0KIAog
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMoQ2xpZW50
JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgKaW5kZXggNDkzNTAzMC4uNjA1N2QzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdh
cmVMaXN0ZW5lck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyA6IHB1YmxpYyBBdWRpb0hh
cmR3YXJlTGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBXVEY6OlBhc3NSZWZQdHI8QXVk
aW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBjcmVhdGUoQ2xpZW50Jik7CisgICAgc3RhdGljIFdURjo6
UmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYz4gY3JlYXRlKENsaWVudCYpOwogCiBwcml2YXRl
OgogICAgIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhDbGllbnQmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDk5
MTI1OTIuLjI1Njk3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAKIGNs
YXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiBjcmVhdGUoKQorICAg
IHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvVHJhY2tQcml2YXRlKCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZSk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRD
bGllbnQoQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVu
dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgK
aW5kZXggODI0NmY0Ny4uMTY5NWNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCBjbGFzcyBCaXRtYXBJ
bWFnZSBmaW5hbCA6IHB1YmxpYyBJbWFnZSB7CiAgICAgZnJpZW5kIGNsYXNzIEdyYWRpZW50SW1h
Z2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRp
dmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQorICAgIHN0YXRpYyBSZWY8Qml0
bWFwSW1hZ2U+IGNyZWF0ZShQYXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2UsIEltYWdlT2Jz
ZXJ2ZXIqIG9ic2VydmVyID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Qml0bWFwSW1hZ2UobmF0aXZlSW1hZ2UsIG9ic2VydmVyKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEJpdG1hcEltYWdlKG5hdGl2ZUltYWdlLCBvYnNlcnZlcikpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKEltYWdlT2JzZXJ2ZXIqIG9i
c2VydmVyID0gMCkKKyAgICBzdGF0aWMgUmVmPEJpdG1hcEltYWdlPiBjcmVhdGUoSW1hZ2VPYnNl
cnZlciogb2JzZXJ2ZXIgPSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBC
aXRtYXBJbWFnZShvYnNlcnZlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXRt
YXBJbWFnZShvYnNlcnZlcikpOwogICAgIH0KICNpZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShIQklUTUFQKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5oCmluZGV4IGFhMTE2NjkuLmE5ZDU4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzgs
OSArMzgsOSBAQCBjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZTsKIAogY2xhc3MgQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UgZmluYWwgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoSW1hZ2Uq
IGZyb21JbWFnZSwgSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIGNvbnN0IEZsb2F0
U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQorICAgIHN0YXRpYyBS
ZWY8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShJbWFnZSogZnJvbUltYWdlLCBJbWFn
ZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgY29uc3QgRmxvYXRTaXplJiBjcm9zc2ZhZGVT
aXplLCBjb25zdCBGbG9hdFNpemUmIHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFnZSwgdG9JbWFnZSwgcGVyY2Vu
dGFnZSwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRhZ2Us
IGNyb3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGFpbmVyU2l6ZShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaAppbmRl
eCBmZjYwNzdlLi5iNDA0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBAIC00OSw5ICs0OSw5IEBAIHByaXZh
dGU6CiAKIGNsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3MgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250
RmVhdHVyZVNldHRpbmdzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEZl
YXR1cmVTZXR0aW5ncz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEZvbnRGZWF0dXJlU2V0dGlu
Z3M+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGZWF0
dXJlU2V0dGluZ3MoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZvbnRGZWF0dXJl
U2V0dGluZ3MpOwogICAgIH0KICAgICB2b2lkIGFwcGVuZChjb25zdCBGb250RmVhdHVyZSYgZmVh
dHVyZSkgeyBtX2xpc3QuYXBwZW5kKGZlYXR1cmUpOyB9CiAgICAgc2l6ZV90IHNpemUoKSBjb25z
dCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5jcHAKaW5kZXggM2RkZTkyYy4uMGRmN2U1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtNTYsOCArNTYsOCBAQCBJbWFnZTo6fklt
YWdlKCkKIEltYWdlKiBJbWFnZTo6bnVsbEltYWdlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIHN0YXRpYyBJbWFnZSogbnVsbEltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0
ZSgpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gbnVsbEltYWdlOworICAgIHN0YXRpYyBJbWFnZSYg
bnVsbEltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4g
Jm51bGxJbWFnZTsKIH0KIAogYm9vbCBJbWFnZTo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgK
aW5kZXggMWE2ZmY5Mi4uOTFjZTE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgQ0FSaW5nQnVmZmVy
OwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyA6IHB1YmxpYyBSZWZDb3VudGVk
PEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiwgcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDPiBjcmVhdGUoQVZQbGF5ZXJJdGVtKik7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKEFWUGxheWVySXRlbSopOwogICAgIHZpcnR1YWwgfkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CiAKICAgICB2b2lkIHNldFBsYXllckl0ZW0oQVZQ
bGF5ZXJJdGVtICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tCmluZGV4IDE1YmUyMmUuLjU4MWY2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTg0LDExICs4NCwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBkb3VibGUga1JpbmdCdWZmZXJEdXJhdGlvbiA9IDE7
CiAKLVBhc3NSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdGVtICppdGVtKQorUmVmUHRyPEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFW
UGxheWVySXRlbSAqaXRlbSkKIHsKICAgICBpZiAoIWNhbkxvYWRNVEF1ZGlvUHJvY2Vzc2luZ1Rh
cENyZWF0ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0pKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9CiAKIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhBVlBsYXllckl0
ZW0gKml0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaAppbmRleCA4OGU4ZjUwLi5iNWU3ODU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rp
c3RhbnRMaWdodFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgKQEAgLTI5LDkgKzI5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEaXN0YW50TGlnaHRTb3VyY2UgOiBwdWJsaWMgTGlnaHRTb3Vy
Y2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3RhbnRMaWdodFNvdXJjZT4g
Y3JlYXRlKGZsb2F0IGF6aW11dGgsIGZsb2F0IGVsZXZhdGlvbikKKyAgICBzdGF0aWMgUmVmPERp
c3RhbnRMaWdodFNvdXJjZT4gY3JlYXRlKGZsb2F0IGF6aW11dGgsIGZsb2F0IGVsZXZhdGlvbikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlzdGFudExpZ2h0U291cmNlKGF6
aW11dGgsIGVsZXZhdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaXN0YW50
TGlnaHRTb3VyY2UoYXppbXV0aCwgZWxldmF0aW9uKSk7CiAgICAgfQogCiAgICAgZmxvYXQgYXpp
bXV0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXppbXV0aDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKaW5kZXggYmFiOWJiOC4u
NjJmMmZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuY3BwCkBAIC00MSw5ICs0MSw5IEBAIEZFQmxlbmQ6OkZFQmxlbmQoRmls
dGVyKiBmaWx0ZXIsIEJsZW5kTW9kZSBtb2RlKQogewogfQogCi1QYXNzUmVmUHRyPEZFQmxlbmQ+
IEZFQmxlbmQ6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgQmxlbmRNb2RlIG1vZGUpCitSZWY8RkVC
bGVuZD4gRkVCbGVuZDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBCbGVuZE1vZGUgbW9kZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQmxlbmQoZmlsdGVyLCBtb2RlKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRkVCbGVuZChmaWx0ZXIsIG1vZGUpKTsKIH0KIAogQmxlbmRNb2Rl
IEZFQmxlbmQ6OmJsZW5kTW9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IGU3NDgzNWEuLjMyMzQ5YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVCbGVu
ZCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZFQmxlbmQ+IGNyZWF0ZShGaWx0ZXIqLCBCbGVuZE1vZGUpOworICAgIHN0YXRpYyBSZWY8RkVC
bGVuZD4gY3JlYXRlKEZpbHRlciosIEJsZW5kTW9kZSk7CiAKICAgICBCbGVuZE1vZGUgYmxlbmRN
b2RlKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguY3BwCmluZGV4IDgzMGY2NTkuLmQ3NWZhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApA
QCAtMzksOSArMzksOSBAQCBGRUNvbG9yTWF0cml4OjpGRUNvbG9yTWF0cml4KEZpbHRlciogZmls
dGVyLCBDb2xvck1hdHJpeFR5cGUgdHlwZSwgY29uc3QgVmVjdG9yPAogewogfQogCi1QYXNzUmVm
UHRyPEZFQ29sb3JNYXRyaXg+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwg
Q29sb3JNYXRyaXhUeXBlIHR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlcykKK1JlZjxG
RUNvbG9yTWF0cml4PiBGRUNvbG9yTWF0cml4OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIENvbG9y
TWF0cml4VHlwZSB0eXBlLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGRUNvbG9yTWF0cml4KGZpbHRlciwgdHlwZSwgdmFsdWVzKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVDb2xvck1hdHJpeChmaWx0ZXIsIHR5cGUsIHZhbHVl
cykpOwogfQogCiBDb2xvck1hdHJpeFR5cGUgRkVDb2xvck1hdHJpeDo6dHlwZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29s
b3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b2xvck1hdHJpeC5oCmluZGV4IGUzZTA4YTkuLjA1YjdmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCkBA
IC0zOSw3ICszOSw3IEBAIGVudW0gQ29sb3JNYXRyaXhUeXBlIHsKIAogY2xhc3MgRkVDb2xvck1h
dHJpeCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEZFQ29sb3JNYXRyaXg+IGNyZWF0ZShGaWx0ZXIqLCBDb2xvck1hdHJpeFR5cGUsIGNvbnN0
IFZlY3RvcjxmbG9hdD4mKTsKKyAgICBzdGF0aWMgUmVmPEZFQ29sb3JNYXRyaXg+IGNyZWF0ZShG
aWx0ZXIqLCBDb2xvck1hdHJpeFR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKIAogICAgIENv
bG9yTWF0cml4VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRUeXBlKENvbG9yTWF0cml4
VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAppbmRleCAxMjY0MTFkLi5iMTQy
YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKQEAgLTQ2LDEwICs0NiwxMCBA
QCBGRUNvbXBvbmVudFRyYW5zZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKEZpbHRlciogZmlsdGVy
LCBjb25zdCBDb21wb25lbnRUcmFuc2ZlcgogewogfQogCi1QYXNzUmVmUHRyPEZFQ29tcG9uZW50
VHJhbnNmZXI+IEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29u
c3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgCitSZWY8RkVDb21wb25lbnRU
cmFuc2Zlcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25z
dCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLAogICAgIGNvbnN0IENvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVu
YykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQ29tcG9uZW50VHJhbnNmZXIoZmlsdGVy
LCByZWRGdW5jLCBncmVlbkZ1bmMsIGJsdWVGdW5jLCBhbHBoYUZ1bmMpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGRUNvbXBvbmVudFRyYW5zZmVyKGZpbHRlciwgcmVkRnVuYywgZ3JlZW5G
dW5jLCBibHVlRnVuYywgYWxwaGFGdW5jKSk7CiB9CiAKIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24gRkVDb21wb25lbnRUcmFuc2Zlcjo6cmVkRnVuY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5z
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaAppbmRleCA3NzE2MjZlLi41YzQyOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50
VHJhbnNmZXIuaApAQCAtNjIsOCArNjIsOCBAQCBzdHJ1Y3QgQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbiB7CiAKIGNsYXNzIEZFQ29tcG9uZW50VHJhbnNmZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUNvbXBvbmVudFRyYW5zZmVyPiBj
cmVhdGUoRmlsdGVyKiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywg
Y29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYg
YWxwaGFGdW5jKTsKKyAgICBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNmZXI+IGNyZWF0ZShG
aWx0ZXIqLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYg
Ymx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFscGhhRnVuYyk7CiAK
ICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHJlZEZ1bmN0aW9uKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRSZWRGdW5jdGlvbihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb3NpdGUuY3BwCmluZGV4IGNmMWRkODMuLmYzZjk4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBA
IC00Myw5ICs0Myw5IEBAIEZFQ29tcG9zaXRlOjpGRUNvbXBvc2l0ZShGaWx0ZXIqIGZpbHRlciwg
Y29uc3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYgdHlwZSwgZmxvCiB7CiB9CiAKLVBhc3NSZWZQ
dHI8RkVDb21wb3NpdGU+IEZFQ29tcG9zaXRlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0
IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmIHR5cGUsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQg
azMsIGZsb2F0IGs0KQorUmVmPEZFQ29tcG9zaXRlPiBGRUNvbXBvc2l0ZTo6Y3JlYXRlKEZpbHRl
ciogZmlsdGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlLCBmbG9hdCBrMSwg
ZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEZFQ29tcG9zaXRlKGZpbHRlciwgdHlwZSwgazEsIGsyLCBrMywgazQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGRUNvbXBvc2l0ZShmaWx0ZXIsIHR5cGUsIGsxLCBrMiwgazMsIGs0KSk7
CiB9CiAKIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgRkVDb21wb3NpdGU6Om9wZXJhdGlvbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmgKaW5kZXggYzEzMDMwOS4uZWE4MTY3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaApAQCAt
NDEsNyArNDEsNyBAQCBlbnVtIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgewogCiBjbGFzcyBGRUNv
bXBvc2l0ZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZFQ29tcG9zaXRlPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29tcG9zaXRlT3BlcmF0
aW9uVHlwZSYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKKyAgICBzdGF0aWMgUmVmPEZF
Q29tcG9zaXRlPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYs
IGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKIAogICAgIENvbXBvc2l0ZU9wZXJhdGlvblR5
cGUgb3BlcmF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRPcGVyYXRpb24oQ29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcAppbmRleCA2NmVjMTQwLi45MGVj
YzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29udm9sdmVNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBGRUNv
bnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZpbHRlciogZmlsdGVyLCBjb25zdCBJbnRT
aXplJiBrZXJuZWxTaXplLAogICAgIEFTU0VSVChtX2tlcm5lbFNpemUuaGVpZ2h0KCkgPiAwKTsK
IH0KIAotUGFzc1JlZlB0cjxGRUNvbnZvbHZlTWF0cml4PiBGRUNvbnZvbHZlTWF0cml4OjpjcmVh
dGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsCitSZWY8RkVDb252
b2x2ZU1hdHJpeD4gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25z
dCBJbnRTaXplJiBrZXJuZWxTaXplLAogICAgIGZsb2F0IGRpdmlzb3IsIGZsb2F0IGJpYXMsIGNv
bnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VNb2RlVHlwZSBlZGdlTW9kZSwKICAgICBj
b25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNlcnZlQWxwaGEsIGNv
bnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEZFQ29udm9sdmVNYXRyaXgoZmlsdGVyLCBrZXJuZWxTaXplLCBkaXZpc29yLCBiaWFzLCB0
YXJnZXRPZmZzZXQsIGVkZ2VNb2RlLCBrZXJuZWxVbml0TGVuZ3RoLAorICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZFQ29udm9sdmVNYXRyaXgoZmlsdGVyLCBrZXJuZWxTaXplLCBkaXZpc29yLCBi
aWFzLCB0YXJnZXRPZmZzZXQsIGVkZ2VNb2RlLCBrZXJuZWxVbml0TGVuZ3RoLAogICAgICAgICBw
cmVzZXJ2ZUFscGhhLCBrZXJuZWxNYXRyaXgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApp
bmRleCA4MWFjOGJjLi41NjI2MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtNDAsNyAr
NDAsNyBAQCBlbnVtIEVkZ2VNb2RlVHlwZSB7CiAKIGNsYXNzIEZFQ29udm9sdmVNYXRyaXggOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUNv
bnZvbHZlTWF0cml4PiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgSW50U2l6ZSYsCisgICAgc3RhdGlj
IFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgSW50U2l6ZSYsCiAg
ICAgICAgICAgICBmbG9hdCwgZmxvYXQsIGNvbnN0IEludFBvaW50JiwgRWRnZU1vZGVUeXBlLCBj
b25zdCBGbG9hdFBvaW50JiwKICAgICAgICAgICAgIGJvb2wsIGNvbnN0IFZlY3RvcjxmbG9hdD4m
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAppbmRleCBhMTEwY2FlLi5mZjY3NDhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlm
ZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtMzMsMTEgKzMzLDExIEBAIEZFRGlmZnVz
ZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdodGluZyhGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3Im
IGxpZ2h0aW5nQ29sb3IsCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVEaWZmdXNlTGlnaHRpbmc+IEZF
RGlmZnVzZUxpZ2h0aW5nOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdo
dGluZ0NvbG9yLAorUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBGRURpZmZ1c2VMaWdodGluZzo6Y3Jl
YXRlKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwKICAgICBmbG9h
dCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQga2VybmVsVW5pdExl
bmd0aFgsCiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFBhc3NSZWZQdHI8TGlnaHRTb3Vy
Y2U+IGxpZ2h0U291cmNlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVEaWZmdXNlTGln
aHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRpZmZ1c2VDb25zdGFu
dCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBsaWdodFNvdXJjZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFRGlmZnVzZUxpZ2h0aW5nKGZpbHRlciwgbGlnaHRp
bmdDb2xvciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIGtlcm5lbFVuaXRMZW5ndGhY
LCBrZXJuZWxVbml0TGVuZ3RoWSwgbGlnaHRTb3VyY2UpKTsKIH0KIAogRkVEaWZmdXNlTGlnaHRp
bmc6On5GRURpZmZ1c2VMaWdodGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKaW5kZXggZjc4
ZGE2MC4uMWJjYzJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAtMzAsNyArMzAsNyBA
QCBjbGFzcyBMaWdodFNvdXJjZTsKIAogY2xhc3MgRkVEaWZmdXNlTGlnaHRpbmcgOiBwdWJsaWMg
RkVMaWdodGluZyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVEaWZmdXNlTGln
aHRpbmc+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwKKyAgICBz
dGF0aWMgUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29sb3Im
LCBmbG9hdCwgZmxvYXQsCiAgICAgICAgIGZsb2F0LCBmbG9hdCwgUGFzc1JlZlB0cjxMaWdodFNv
dXJjZT4pOwogICAgIHZpcnR1YWwgfkZFRGlmZnVzZUxpZ2h0aW5nKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRN
YXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3Bs
YWNlbWVudE1hcC5jcHAKaW5kZXggYjRhZmMwYy4uYmEwMWMwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNl
bWVudE1hcC5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBGRURpc3BsYWNlbWVudE1hcDo6RkVEaXNw
bGFjZW1lbnRNYXAoRmlsdGVyKiBmaWx0ZXIsIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZQog
ewogfQogCi1QYXNzUmVmUHRyPEZFRGlzcGxhY2VtZW50TWFwPiBGRURpc3BsYWNlbWVudE1hcDo6
Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0
b3IsCitSZWY8RkVEaXNwbGFjZW1lbnRNYXA+IEZFRGlzcGxhY2VtZW50TWFwOjpjcmVhdGUoRmls
dGVyKiBmaWx0ZXIsIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvciwKICAgICBD
aGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0IHNjYWxlKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRkVEaXNwbGFjZW1lbnRNYXAoZmlsdGVyLCB4Q2hhbm5lbFNl
bGVjdG9yLCB5Q2hhbm5lbFNlbGVjdG9yLCBzY2FsZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZFRGlzcGxhY2VtZW50TWFwKGZpbHRlciwgeENoYW5uZWxTZWxlY3RvciwgeUNoYW5uZWxT
ZWxlY3Rvciwgc2NhbGUpKTsKIH0KIAogQ2hhbm5lbFNlbGVjdG9yVHlwZSBGRURpc3BsYWNlbWVu
dE1hcDo6eENoYW5uZWxTZWxlY3RvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKaW5k
ZXggYmY4Yzg5OS4uMDQyMDljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaApAQCAtMzgsNyAr
MzgsNyBAQCBlbnVtIENoYW5uZWxTZWxlY3RvclR5cGUgewogCiBjbGFzcyBGRURpc3BsYWNlbWVu
dE1hcCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEZFRGlzcGxhY2VtZW50TWFwPiBjcmVhdGUoRmlsdGVyKiwgQ2hhbm5lbFNlbGVjdG9yVHlw
ZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3Is
IGZsb2F0KTsKKyAgICBzdGF0aWMgUmVmPEZFRGlzcGxhY2VtZW50TWFwPiBjcmVhdGUoRmlsdGVy
KiwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JU
eXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0KTsKIAogICAgIENoYW5uZWxTZWxlY3RvclR5cGUg
eENoYW5uZWxTZWxlY3RvcigpIGNvbnN0OwogICAgIGJvb2wgc2V0WENoYW5uZWxTZWxlY3Rvcihj
b25zdCBDaGFubmVsU2VsZWN0b3JUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAppbmRleCA4ZjVlMGZi
Li44MmYyYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEZFRHJvcFNo
YWRvdzo6RkVEcm9wU2hhZG93KEZpbHRlciogZmlsdGVyLCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZ
LCBmbG9hdCBkeCwgZmxvCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVEcm9wU2hhZG93PiBGRURyb3BT
aGFkb3c6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxv
YXQgZHgsIGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09w
YWNpdHkpCitSZWY8RkVEcm9wU2hhZG93PiBGRURyb3BTaGFkb3c6OmNyZWF0ZShGaWx0ZXIqIGZp
bHRlciwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25zdCBD
b2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBGRURyb3BTaGFkb3coZmlsdGVyLCBzdGRYLCBzdGRZLCBkeCwgZHksIHNoYWRv
d0NvbG9yLCBzaGFkb3dPcGFjaXR5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVEcm9w
U2hhZG93KGZpbHRlciwgc3RkWCwgc3RkWSwgZHgsIGR5LCBzaGFkb3dDb2xvciwgc2hhZG93T3Bh
Y2l0eSkpOwogfQogCiB2b2lkIEZFRHJvcFNoYWRvdzo6ZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURyb3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmgKaW5kZXggNzdhNzU5NC4uZDYxNzExZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5o
CkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEZFRHJv
cFNoYWRvdyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZFRHJvcFNoYWRvdz4gY3JlYXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgZmxvYXQs
IGZsb2F0LCBjb25zdCBDb2xvciYsIGZsb2F0KTsKKyAgICBzdGF0aWMgUmVmPEZFRHJvcFNoYWRv
dz4gY3JlYXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0LCBjb25zdCBDb2xv
ciYsIGZsb2F0KTsKIAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25zdCB7IHJldHVybiBt
X3N0ZFg7IH0KICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQgc3RkWCkgeyBtX3N0ZFgg
PSBzdGRYOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRmxvb2QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUZsb29kLmNwcAppbmRleCBjOGMzMTAxLi5iY2RiMjI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKQEAgLTM2
LDkgKzM2LDkgQEAgRkVGbG9vZDo6RkVGbG9vZChGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3Im
IGZsb29kQ29sb3IsIGZsb2F0IGZsb29kT3BhY2l0eSkKIHsKIH0KIAotUGFzc1JlZlB0cjxGRUZs
b29kPiBGRUZsb29kOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBmbG9vZENv
bG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpCitSZWY8RkVGbG9vZD4gRkVGbG9vZDo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyLCBjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVGbG9vZChmaWx0ZXIsIGZsb29kQ29sb3Is
IGZsb29kT3BhY2l0eSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFRmxvb2QoZmlsdGVy
LCBmbG9vZENvbG9yLCBmbG9vZE9wYWNpdHkpKTsKIH0KIAogQ29sb3IgRkVGbG9vZDo6Zmxvb2RD
b2xvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRmxvb2QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVGbG9vZC5oCmluZGV4IDkwYmY3MTkuLjFjYTRiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCkBAIC0zMCw3ICsz
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVGbG9vZCA6IHB1YmxpYyBGaWx0
ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFRmxvb2Q+IGNyZWF0
ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CisgICAgc3RhdGljIFJlZjxG
RUZsb29kPiBjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwogCiAg
ICAgQ29sb3IgZmxvb2RDb2xvcigpIGNvbnN0OwogICAgIGJvb2wgc2V0Rmxvb2RDb2xvcihjb25z
dCBDb2xvciAmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggMDU2NzRkMy4uNjIyZWY0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKQEAgLTg1LDkgKzg1LDkgQEAgRkVHYXVzc2lhbkJsdXI6
OkZFR2F1c3NpYW5CbHVyKEZpbHRlciogZmlsdGVyLCBmbG9hdCB4LCBmbG9hdCB5LCBFZGdlTW9k
ZVR5cGUgZWQKIHsKIH0KIAotUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4gRkVHYXVzc2lhbkJs
dXI6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgeCwgZmxvYXQgeSwgRWRnZU1vZGVUeXBl
IGVkZ2VNb2RlKQorUmVmPEZFR2F1c3NpYW5CbHVyPiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyLCBmbG9hdCB4LCBmbG9hdCB5LCBFZGdlTW9kZVR5cGUgZWRnZU1vZGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRUdhdXNzaWFuQmx1cihmaWx0ZXIsIHgsIHksIGVk
Z2VNb2RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVHYXVzc2lhbkJsdXIoZmlsdGVy
LCB4LCB5LCBlZGdlTW9kZSkpOwogfQogCiBmbG9hdCBGRUdhdXNzaWFuQmx1cjo6c3RkRGV2aWF0
aW9uWCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKaW5kZXggN2FmNTQyOS4uN2FiM2JlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNz
aWFuQmx1ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZFR2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RkVHYXVzc2lhbkJsdXI+IGNyZWF0ZShGaWx0ZXIqLCBmbG9h
dCwgZmxvYXQsIEVkZ2VNb2RlVHlwZSk7CisgICAgc3RhdGljIFJlZjxGRUdhdXNzaWFuQmx1cj4g
Y3JlYXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgRWRnZU1vZGVUeXBlKTsKIAogICAgIGZsb2F0
IHN0ZERldmlhdGlvblgoKSBjb25zdDsKICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
ZXJnZS5jcHAKaW5kZXggN2ZkNzZmNi4uNjBmYTU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCkBAIC0zMyw5ICszMyw5
IEBAIEZFTWVyZ2U6OkZFTWVyZ2UoRmlsdGVyKiBmaWx0ZXIpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQorUmVmPEZFTWVyZ2U+IEZF
TWVyZ2U6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEZFTWVyZ2UoZmlsdGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVNZXJnZShmaWx0
ZXIpKTsKIH0KIAogdm9pZCBGRU1lcmdlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAppbmRl
eCAwZDVlZDQ0Li5lNWJjZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZFTWVyZ2UgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRU1lcmdlPiBjcmVhdGUoRmlsdGVyKik7CisgICAgc3Rh
dGljIFJlZjxGRU1lcmdlPiBjcmVhdGUoRmlsdGVyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1BcHBseVNvZnR3YXJlKCk7CiAjaWYgRU5BQkxFKE9QRU5DTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNw
cAppbmRleCBhNThiZjYyLi5hOWFhYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC00MSw5ICs0
MSw5IEBAIEZFTW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KEZpbHRlciogZmlsdGVyLCBNb3JwaG9s
b2d5T3BlcmF0b3JUeXBlIHR5cGUsIGZsb2F0IHJhCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVNb3Jw
aG9sb2d5PiBGRU1vcnBob2xvZ3k6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgTW9ycGhvbG9neU9w
ZXJhdG9yVHlwZSB0eXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZKQorUmVmPEZFTW9y
cGhvbG9neT4gRkVNb3JwaG9sb2d5OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIE1vcnBob2xvZ3lP
cGVyYXRvclR5cGUgdHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEZFTW9ycGhvbG9neShmaWx0ZXIsIHR5cGUsIHJhZGl1c1gsIHJh
ZGl1c1kpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1vcnBob2xvZ3koZmlsdGVyLCB0
eXBlLCByYWRpdXNYLCByYWRpdXNZKSk7CiB9CiAKIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgRkVN
b3JwaG9sb2d5Ojptb3JwaG9sb2d5T3BlcmF0b3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKaW5kZXgg
ODZlMDZiMS4uMzNhNzI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCkBAIC0zNSw3ICszNSw3IEBAIGVudW0g
TW9ycGhvbG9neU9wZXJhdG9yVHlwZSB7CiAKIGNsYXNzIEZFTW9ycGhvbG9neSA6IHB1YmxpYyBG
aWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFTW9ycGhvbG9n
eT4gY3JlYXRlKEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gs
IGZsb2F0IHJhZGl1c1kpOyAgCisgICAgc3RhdGljIFJlZjxGRU1vcnBob2xvZ3k+IGNyZWF0ZShG
aWx0ZXIqLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRp
dXNZKTsKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1vcnBob2xvZ3lPcGVyYXRvcigpIGNv
bnN0OwogICAgIGJvb2wgc2V0TW9ycGhvbG9neU9wZXJhdG9yKE1vcnBob2xvZ3lPcGVyYXRvclR5
cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuY3BwCmluZGV4IGI2N2RmYzMuLmYxNTNkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCkBAIC0z
Nyw5ICszNyw5IEBAIEZFT2Zmc2V0OjpGRU9mZnNldChGaWx0ZXIqIGZpbHRlciwgZmxvYXQgZHgs
IGZsb2F0IGR5KQogewogfQogCi1QYXNzUmVmUHRyPEZFT2Zmc2V0PiBGRU9mZnNldDo6Y3JlYXRl
KEZpbHRlciogZmlsdGVyLCBmbG9hdCBkeCwgZmxvYXQgZHkpCitSZWY8RkVPZmZzZXQ+IEZFT2Zm
c2V0OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IGR4LCBmbG9hdCBkeSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEZFT2Zmc2V0KGZpbHRlciwgZHgsIGR5KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRkVPZmZzZXQoZmlsdGVyLCBkeCwgZHkpKTsKIH0KIAogZmxvYXQgRkVP
ZmZzZXQ6OmR4KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCAwY2VlZDM3Li4yZmJkZTE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBA
IC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVPZmZzZXQgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRU9m
ZnNldD4gY3JlYXRlKEZpbHRlciosIGZsb2F0IGR4LCBmbG9hdCBkeSk7CisgICAgc3RhdGljIFJl
ZjxGRU9mZnNldD4gY3JlYXRlKEZpbHRlciosIGZsb2F0IGR4LCBmbG9hdCBkeSk7CiAKICAgICBm
bG9hdCBkeCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RHgoZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1bGFy
TGlnaHRpbmcuY3BwCmluZGV4IDRmODlmOGEuLjhhNTM2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJM
aWdodGluZy5jcHAKQEAgLTM0LDExICszNCwxMSBAQCBGRVNwZWN1bGFyTGlnaHRpbmc6OkZFU3Bl
Y3VsYXJMaWdodGluZyhGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sbwog
ewogfQogCi1QYXNzUmVmUHRyPEZFU3BlY3VsYXJMaWdodGluZz4gRkVTcGVjdWxhckxpZ2h0aW5n
OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLAorUmVm
PEZFU3BlY3VsYXJMaWdodGluZz4gRkVTcGVjdWxhckxpZ2h0aW5nOjpjcmVhdGUoRmlsdGVyKiBm
aWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLAogICAgIGZsb2F0IHN1cmZhY2VTY2Fs
ZSwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJFeHBvbmVudCwKICAgICBm
bG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFBhc3NSZWZQ
dHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RkVTcGVjdWxhckxpZ2h0aW5nKGZpbHRlciwgbGlnaHRpbmdDb2xvciwgc3VyZmFjZVNjYWxlLCBz
cGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckV4cG9uZW50LAorICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZFU3BlY3VsYXJMaWdodGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2Fs
ZSwgc3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBvbmVudCwKICAgICAgICAga2VybmVsVW5p
dExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBsaWdodFNvdXJjZSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJM
aWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNw
ZWN1bGFyTGlnaHRpbmcuaAppbmRleCA3OWQ4NmRlLi4wN2ZkNTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxh
ckxpZ2h0aW5nLmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGRVNwZWN1bGFyTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RkVTcGVjdWxhckxpZ2h0aW5nPiBjcmVhdGUoRmlsdGVyKiwgY29u
c3QgQ29sb3ImLCBmbG9hdCwgZmxvYXQsCisgICAgc3RhdGljIFJlZjxGRVNwZWN1bGFyTGlnaHRp
bmc+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwKICAgICAgICAg
ZmxvYXQsIGZsb2F0LCBmbG9hdCwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4pOwogICAgIHZpcnR1
YWwgfkZFU3BlY3VsYXJMaWdodGluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggNWUyMTc3Yy4uNjFlNTk5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVU
aWxlLmNwcApAQCAtMzYsOSArMzYsOSBAQCBGRVRpbGU6OkZFVGlsZShGaWx0ZXIqIGZpbHRlcikK
IHsKIH0KIAotUGFzc1JlZlB0cjxGRVRpbGU+IEZFVGlsZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVy
KQorUmVmPEZFVGlsZT4gRkVUaWxlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGRVRpbGUoZmlsdGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRkVUaWxlKGZpbHRlcikpOwogfQogCiB2b2lkIEZFVGlsZTo6cGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVUaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5oCmluZGV4IDMwNTZhZGIuLmEwNTIwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaApAQCAtMjksNyArMjksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBGRVRpbGUgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRVRpbGU+IGNyZWF0ZShGaWx0ZXIq
IGZpbHRlcik7CisgICAgc3RhdGljIFJlZjxGRVRpbGU+IGNyZWF0ZShGaWx0ZXIqIGZpbHRlcik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7CiAgICAgdmlydHVh
bCB2b2lkIGR1bXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCBkMjE2ZDc1Li4wY2RlNzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVy
YnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC01OSw5ICs1OSw5IEBAIEZFVHVyYnVsZW5jZTo6RkVUdXJi
dWxlbmNlKEZpbHRlciogZmlsdGVyLCBUdXJidWxlbmNlVHlwZSB0eXBlLCBmbG9hdCBiYXNlRnJl
cXVlCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVUdXJidWxlbmNlPiBGRVR1cmJ1bGVuY2U6OmNyZWF0
ZShGaWx0ZXIqIGZpbHRlciwgVHVyYnVsZW5jZVR5cGUgdHlwZSwgZmxvYXQgYmFzZUZyZXF1ZW5j
eVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxvYXQgc2VlZCwgYm9v
bCBzdGl0Y2hUaWxlcykKK1JlZjxGRVR1cmJ1bGVuY2U+IEZFVHVyYnVsZW5jZTo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyLCBUdXJidWxlbmNlVHlwZSB0eXBlLCBmbG9hdCBiYXNlRnJlcXVlbmN5WCwg
ZmxvYXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBzZWVkLCBib29sIHN0
aXRjaFRpbGVzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVUdXJidWxlbmNlKGZpbHRl
ciwgdHlwZSwgYmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVuY3lZLCBudW1PY3RhdmVzLCBzZWVk
LCBzdGl0Y2hUaWxlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFVHVyYnVsZW5jZShm
aWx0ZXIsIHR5cGUsIGJhc2VGcmVxdWVuY3lYLCBiYXNlRnJlcXVlbmN5WSwgbnVtT2N0YXZlcywg
c2VlZCwgc3RpdGNoVGlsZXMpKTsKIH0KIAogVHVyYnVsZW5jZVR5cGUgRkVUdXJidWxlbmNlOjp0
eXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IGU4YzEwMDUuLjE4MGI2YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1
bGVuY2UuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFR1cmJ1bGVuY2VUeXBlIHsKIAogY2xhc3Mg
RkVUdXJidWxlbmNlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RkVUdXJidWxlbmNlPiBjcmVhdGUoRmlsdGVyKiwgVHVyYnVsZW5jZVR5cGUs
IGZsb2F0LCBmbG9hdCwgaW50LCBmbG9hdCwgYm9vbCk7CisgICAgc3RhdGljIFJlZjxGRVR1cmJ1
bGVuY2U+IGNyZWF0ZShGaWx0ZXIqLCBUdXJidWxlbmNlVHlwZSwgZmxvYXQsIGZsb2F0LCBpbnQs
IGZsb2F0LCBib29sKTsKIAogICAgIFR1cmJ1bGVuY2VUeXBlIHR5cGUoKSBjb25zdDsKICAgICBi
b29sIHNldFR5cGUoVHVyYnVsZW5jZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5o
CmluZGV4IGJhZTJhNTIuLmJmYzBkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmgK
QEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaXNwbGF5UmVm
cmVzaE1vbml0b3JJT1MgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M+IGNyZWF0ZShQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCisgICAgc3RhdGljIFJlZjxEaXNwbGF5UmVmcmVz
aE1vbml0b3JJT1M+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUyhkaXNw
bGF5SUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25p
dG9ySU9TKGRpc3BsYXlJRCkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5EaXNwbGF5UmVm
cmVzaE1vbml0b3JJT1MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAppbmRleCBmZmIyYjYzLi5l
NDY5YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Q29tcGxleFRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCkBAIC03MywxNCArNzMsMTQgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBjbGFzcyBDb21wbGV4VGV4dFJ1biA6IHB1YmxpYyBSZWZDb3Vu
dGVkPENvbXBsZXhUZXh0UnVuPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKENUUnVuUmVmIGN0UnVuLCBjb25zdCBTaW1wbGVG
b250RGF0YSogZm9udERhdGEsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBzdHJp
bmdMb2NhdGlvbiwgc2l6ZV90IHN0cmluZ0xlbmd0aCwgQ0ZSYW5nZSBydW5SYW5nZSkKKyAgICAg
ICAgc3RhdGljIFJlZjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKENUUnVuUmVmIGN0UnVuLCBjb25z
dCBTaW1wbGVGb250RGF0YSogZm9udERhdGEsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBzdHJpbmdMb2NhdGlvbiwgc2l6ZV90IHN0cmluZ0xlbmd0aCwgQ0ZSYW5nZSBydW5SYW5n
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb21wbGV4VGV4
dFJ1bihjdFJ1biwgZm9udERhdGEsIGNoYXJhY3RlcnMsIHN0cmluZ0xvY2F0aW9uLCBzdHJpbmdM
ZW5ndGgsIHJ1blJhbmdlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21w
bGV4VGV4dFJ1bihjdFJ1biwgZm9udERhdGEsIGNoYXJhY3RlcnMsIHN0cmluZ0xvY2F0aW9uLCBz
dHJpbmdMZW5ndGgsIHJ1blJhbmdlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250
RGF0YSwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCBz
aXplX3Qgc3RyaW5nTGVuZ3RoLCBib29sIGx0cikKKyAgICAgICAgc3RhdGljIFJlZjxDb21wbGV4
VGV4dFJ1bj4gY3JlYXRlKGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSwgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCBzaXplX3Qgc3RyaW5nTGVu
Z3RoLCBib29sIGx0cikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDb21wbGV4VGV4dFJ1bihmb250RGF0YSwgY2hhcmFjdGVycywgc3RyaW5nTG9jYXRpb24sIHN0
cmluZ0xlbmd0aCwgbHRyKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21w
bGV4VGV4dFJ1bihmb250RGF0YSwgY2hhcmFjdGVycywgc3RyaW5nTG9jYXRpb24sIHN0cmluZ0xl
bmd0aCwgbHRyKSk7CiAgICAgICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBnbHlwaENvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9nbHlwaENvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JEYXRhLmgKaW5kZXggODk1NGU5Yy4uYTc0ZGQ4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1
ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00
MiwxNiArNDEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYXdEYXRhIDogcHVi
bGljIFJlZkNvdW50ZWQ8UmF3RGF0YT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJhd0RhdGE+IGNyZWF0ZShWZWN0b3I8Y2hhcj4mJiBkYXRhKQorICAgIHN0YXRpYyBSZWY8UmF3
RGF0YT4gY3JlYXRlKFZlY3RvcjxjaGFyPiYmIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJhd0RhdGEoV1RGOjptb3ZlKGRhdGEpKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJhd0RhdGEoV1RGOjptb3ZlKGRhdGEpKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBz
aXplKQorICAgIHN0YXRpYyBSZWY8UmF3RGF0YT4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNp
emVfdCBzaXplKQogICAgIHsKICAgICAgICAgVmVjdG9yPGNoYXI+IGRhdGFWZWN0b3Ioc2l6ZSk7
CiAgICAgICAgIG1lbWNweShkYXRhVmVjdG9yLmRhdGEoKSwgZGF0YSwgc2l6ZSk7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YVZlY3RvcikpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YVZlY3Rvcikp
KTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
LmRhdGEoKTsgfQpAQCAtMTE4LDkgKzExNyw5IEBAIHR5cGVkZWYgVmVjdG9yPEJsb2JEYXRhSXRl
bT4gQmxvYkRhdGFJdGVtTGlzdDsKIAogY2xhc3MgQmxvYkRhdGEgOiBwdWJsaWMgUmVmQ291bnRl
ZDxCbG9iRGF0YT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2JEYXRhPiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGE+IGNyZWF0ZSgpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2JEYXRhKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQmxvYkRhdGEpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaAppbmRleCA1ODRi
NGU2Li44MTdkN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKQEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCisg
ICAgc3RhdGljIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHBhdGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2JEYXRhRmlsZVJl
ZmVyZW5jZShwYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmls
ZVJlZmVyZW5jZShwYXRoKSk7CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
QmxvYkRhdGFGaWxlUmVmZXJlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCAyMGM3NTEw
Li5hMDI2NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0JpZGlDb250ZXh0LmNwcAppbmRleCBkYjEyNmM5Li5lN2U2ZWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcApAQCAtMzIsMTIgKzMyLDEyIEBAIHN0
cnVjdCBTYW1lU2l6ZUFzQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxTYW1lU2l6ZUFz
QmlkaUNvbnRleHQ+IHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEJpZGlDb250ZXh0KSA9PSBz
aXplb2YoU2FtZVNpemVBc0JpZGlDb250ZXh0KSwgQmlkaUNvbnRleHRfc2hvdWxkX3N0YXlfc21h
bGwpOwogCi1pbmxpbmUgUGFzc1JlZlB0cjxCaWRpQ29udGV4dD4gQmlkaUNvbnRleHQ6OmNyZWF0
ZVVuY2FjaGVkKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9uIGRpcmVjdGlvbiwg
Ym9vbCBvdmVycmlkZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSBzb3VyY2UsIEJpZGlDb250ZXh0KiBw
YXJlbnQpCitpbmxpbmUgUmVmPEJpZGlDb250ZXh0PiBCaWRpQ29udGV4dDo6Y3JlYXRlVW5jYWNo
ZWQodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIG92
ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlIHNvdXJjZSwgQmlkaUNvbnRleHQqIHBhcmVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpZGlDb250ZXh0KGxldmVsLCBkaXJlY3Rpb24s
IG92ZXJyaWRlLCBzb3VyY2UsIHBhcmVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJp
ZGlDb250ZXh0KGxldmVsLCBkaXJlY3Rpb24sIG92ZXJyaWRlLCBzb3VyY2UsIHBhcmVudCkpOwog
fQogCi1QYXNzUmVmUHRyPEJpZGlDb250ZXh0PiBCaWRpQ29udGV4dDo6Y3JlYXRlKHVuc2lnbmVk
IGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBvdmVycmlkZSwgQmlk
aUVtYmVkZGluZ1NvdXJjZSBzb3VyY2UsIEJpZGlDb250ZXh0KiBwYXJlbnQpCitSZWY8QmlkaUNv
bnRleHQ+IEJpZGlDb250ZXh0OjpjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlIHNvdXJj
ZSwgQmlkaUNvbnRleHQqIHBhcmVudCkKIHsKICAgICBBU1NFUlQoZGlyZWN0aW9uID09IChsZXZl
bCAlIDIgPyBVX1JJR0hUX1RPX0xFRlQgOiBVX0xFRlRfVE9fUklHSFQpKTsKIApAQCAtNDcsMjAg
KzQ3LDIwIEBAIFBhc3NSZWZQdHI8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0OjpjcmVhdGUodW5z
aWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24KICAgICBBU1NFUlQobGV2ZWwgPD0gMSk7
CiAgICAgaWYgKCFsZXZlbCkgewogICAgICAgICBpZiAoIW92ZXJyaWRlKSB7Ci0gICAgICAgICAg
ICBzdGF0aWMgQmlkaUNvbnRleHQqIGx0ckNvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgwLCBVX0xF
RlRfVE9fUklHSFQsIGZhbHNlLCBGcm9tU3R5bGVPckRPTSwgMCkubGVha1JlZigpOworICAgICAg
ICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBsdHJDb250ZXh0ID0gY3JlYXRlVW5jYWNoZWQoMCwg
VV9MRUZUX1RPX1JJR0hULCBmYWxzZSwgRnJvbVN0eWxlT3JET00sIDApLmxlYWtSZWYoKTsKICAg
ICAgICAgICAgIHJldHVybiBsdHJDb250ZXh0OwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IEJpZGlDb250ZXh0KiBsdHJPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgwLCBVX0xF
RlRfVE9fUklHSFQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVmKCk7CisgICAgICAg
IHN0YXRpYyBCaWRpQ29udGV4dCYgbHRyT3ZlcnJpZGVDb250ZXh0ID0gY3JlYXRlVW5jYWNoZWQo
MCwgVV9MRUZUX1RPX1JJR0hULCB0cnVlLCBGcm9tU3R5bGVPckRPTSwgMCkubGVha1JlZigpOwog
ICAgICAgICByZXR1cm4gbHRyT3ZlcnJpZGVDb250ZXh0OwogICAgIH0KIAogICAgIGlmICghb3Zl
cnJpZGUpIHsKLSAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0KiBydGxDb250ZXh0ID0gY3JlYXRl
VW5jYWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxlT3JET00sIDApLmxl
YWtSZWYoKTsKKyAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxDb250ZXh0ID0gY3JlYXRl
VW5jYWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxlT3JET00sIDApLmxl
YWtSZWYoKTsKICAgICAgICAgcmV0dXJuIHJ0bENvbnRleHQ7CiAgICAgfQogCi0gICAgc3RhdGlj
IEJpZGlDb250ZXh0KiBydGxPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgxLCBVX1JJ
R0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVmKCk7CisgICAgc3Rh
dGljIEJpZGlDb250ZXh0JiBydGxPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgxLCBV
X1JJR0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVmKCk7CiAgICAg
cmV0dXJuIHJ0bE92ZXJyaWRlQ29udGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9CaWRpQ29udGV4dC5oCmluZGV4IDlhNDI3MzYuLjYwYjExODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBC
aWRpRW1iZWRkaW5nU291cmNlIHsKIC8vIFVzZWQgdG8ga2VlcCB0cmFjayBvZiBleHBsaWNpdCBl
bWJlZGRpbmdzLgogY2xhc3MgQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxCaWRpQ29u
dGV4dD4gewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPEJp
ZGlDb250ZXh0PiBjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24sIGJv
b2wgb3ZlcnJpZGUgPSBmYWxzZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSA9IEZyb21TdHlsZU9yRE9N
LCBCaWRpQ29udGV4dCogcGFyZW50ID0gMCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxCaWRpQ29udGV4dD4gY3JlYXRlKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9u
LCBib29sIG92ZXJyaWRlID0gZmFsc2UsIEJpZGlFbWJlZGRpbmdTb3VyY2UgPSBGcm9tU3R5bGVP
ckRPTSwgQmlkaUNvbnRleHQqIHBhcmVudCA9IDApOwogCiAgICAgQmlkaUNvbnRleHQqIHBhcmVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50LmdldCgpOyB9CiAgICAgdW5zaWduZWQgY2hhciBs
ZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGV2ZWw7IH0KQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmlkaUNvbnRleHQ+IGNy
ZWF0ZVVuY2FjaGVkKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9uLCBib29sIG92
ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlLCBCaWRpQ29udGV4dCogcGFyZW50KTsKKyAgICBz
dGF0aWMgUmVmPEJpZGlDb250ZXh0PiBjcmVhdGVVbmNhY2hlZCh1bnNpZ25lZCBjaGFyIGxldmVs
LCBVQ2hhckRpcmVjdGlvbiwgYm9vbCBvdmVycmlkZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSwgQmlk
aUNvbnRleHQqIHBhcmVudCk7CiAKICAgICB1bnNpZ25lZCBtX2xldmVsIDogNjsgLy8gVGhlIG1h
eGltaXVtIGJpZGkgbGV2ZWwgaXMgNjI6IGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyOS8j
RXhwbGljaXRfTGV2ZWxzX2FuZF9EaXJlY3Rpb25zCiAgICAgdW5zaWduZWQgbV9kaXJlY3Rpb24g
OiA1OyAvLyBEaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9N
TWltZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuaAppbmRleCBk
M2NmMGE1Li41MDgzZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1p
bWVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5oCkBAIC0z
NCw3ICszNCw3IEBAIGNsYXNzIERPTVBsdWdpbjsKIAogY2xhc3MgRE9NTWltZVR5cGUgOiBwdWJs
aWMgUmVmQ291bnRlZDxET01NaW1lVHlwZT4sIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTU1pbWVUeXBlPiBjcmVhdGUo
UGFzc1JlZlB0cjxQbHVnaW5EYXRhPiBwbHVnaW5EYXRhLCBGcmFtZSogZnJhbWUsIHVuc2lnbmVk
IGluZGV4KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NTWltZVR5cGUocGx1Z2luRGF0YSwgZnJh
bWUsIGluZGV4KSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTU1pbWVUeXBlPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxQbHVnaW5EYXRhPiBwbHVnaW5EYXRhLCBGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGluZGV4
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTU1pbWVUeXBlKHBsdWdpbkRhdGEsIGZyYW1lLCBp
bmRleCkpOyB9CiAgICAgfkRPTU1pbWVUeXBlKCk7CiAKICAgICBjb25zdCBTdHJpbmcgJnR5cGUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVB
cnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCmlu
ZGV4IDdkMjEyMGQuLjZiMmM0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGVBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1l
VHlwZUFycmF5LmNwcApAQCAtNTksNyArNTksNyBAQCBQYXNzUmVmUHRyPERPTU1pbWVUeXBlPiBE
T01NaW1lVHlwZUFycmF5OjppdGVtKHVuc2lnbmVkIGluZGV4KQogICAgIGNvbnN0IFZlY3RvcjxN
aW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBkYXRhLT5taW1lcygpOwogICAgIGlmIChpbmRleCA+PSBt
aW1lcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBET01NaW1lVHlwZTo6
Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGluZGV4KS5nZXQoKTsKKyAgICByZXR1cm4gRE9NTWltZVR5
cGU6OmNyZWF0ZShkYXRhLCBtX2ZyYW1lLCBpbmRleCk7CiB9CiAKIGJvb2wgRE9NTWltZVR5cGVB
cnJheTo6Y2FuR2V0SXRlbXNGb3JOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1l
KQpAQCAtODMsNyArODMsNyBAQCBQYXNzUmVmUHRyPERPTU1pbWVUeXBlPiBET01NaW1lVHlwZUFy
cmF5OjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eQogICAgIGNvbnN0IFZl
Y3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBkYXRhLT5taW1lcygpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtaW1lcy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobWltZXNb
aV0udHlwZSA9PSBwcm9wZXJ0eU5hbWUpCi0gICAgICAgICAgICByZXR1cm4gRE9NTWltZVR5cGU6
OmNyZWF0ZShkYXRhLCBtX2ZyYW1lLCBpKS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBET01N
aW1lVHlwZTo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGkpOwogICAgIH0KICAgICByZXR1cm4gMDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5o
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmgKaW5kZXggNTgxNjFk
ZjIwLi4wNmYwZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVU
eXBlQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXku
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbHVnaW5EYXRhOwogCiBjbGFzcyBET01NaW1lVHlw
ZUFycmF5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9NTWlt
ZVR5cGVBcnJheT4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RE9NTWltZVR5cGVBcnJheT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IERPTU1pbWVUeXBlQXJyYXkoZnJhbWUpKTsgfQorICAgIHN0YXRp
YyBSZWY8RE9NTWltZVR5cGVBcnJheT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBET01NaW1lVHlwZUFycmF5KGZyYW1lKSk7IH0KICAgICB+RE9NTWltZVR5cGVB
cnJheSgpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0RPTVBsdWdpbi5jcHAKaW5kZXggZWY1YWI0Yy4uM2ZlOTE3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvRE9NUGx1Z2luLmNwcApAQCAtNjYsNyArNjYsNyBAQCBQYXNzUmVmUHRyPERPTU1pbWVUeXBl
PiBET01QbHVnaW46Oml0ZW0odW5zaWduZWQgaW5kZXgpCiAgICAgY29uc3QgVmVjdG9yPE1pbWVD
bGFzc0luZm8+JiBtaW1lcyA9IG1fcGx1Z2luRGF0YS0+bWltZXMoKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbWltZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1pbWVzW2ld
ID09IG1pbWUgJiYgbV9wbHVnaW5EYXRhLT5taW1lUGx1Z2luSW5kaWNlcygpW2ldID09IG1faW5k
ZXgpCi0gICAgICAgICAgICByZXR1cm4gRE9NTWltZVR5cGU6OmNyZWF0ZShtX3BsdWdpbkRhdGEu
Z2V0KCksIG1fZnJhbWUsIGkpLmdldCgpOworICAgICAgICAgICAgcmV0dXJuIERPTU1pbWVUeXBl
OjpjcmVhdGUobV9wbHVnaW5EYXRhLmdldCgpLCBtX2ZyYW1lLCBpKTsKICAgICB9CiAgICAgcmV0
dXJuIDA7CiB9CkBAIC04NSw3ICs4NSw3IEBAIFBhc3NSZWZQdHI8RE9NTWltZVR5cGU+IERPTVBs
dWdpbjo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQogICAgIGNv
bnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBtX3BsdWdpbkRhdGEtPm1pbWVzKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1pbWVzLnNpemUoKTsgKytpKQogICAgICAg
ICBpZiAobWltZXNbaV0udHlwZSA9PSBwcm9wZXJ0eU5hbWUpCi0gICAgICAgICAgICByZXR1cm4g
RE9NTWltZVR5cGU6OmNyZWF0ZShtX3BsdWdpbkRhdGEuZ2V0KCksIG1fZnJhbWUsIGkpLmdldCgp
OworICAgICAgICAgICAgcmV0dXJuIERPTU1pbWVUeXBlOjpjcmVhdGUobV9wbHVnaW5EYXRhLmdl
dCgpLCBtX2ZyYW1lLCBpKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9N
UGx1Z2luLmgKaW5kZXggOTA4Yjk0Zi4uMTI1Y2EyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ET01QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBs
dWdpbi5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFBsdWdpbkRhdGE7CiAKIGNsYXNzIERPTVBs
dWdpbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPERPTVBsdWdp
bj4sIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERPTVBsdWdpbj4gY3JlYXRlKFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEsIEZy
YW1lKiBmcmFtZSwgdW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01QbHVn
aW4ocGx1Z2luRGF0YSwgZnJhbWUsIGluZGV4KSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTVBsdWdp
bj4gY3JlYXRlKFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEsIEZyYW1lKiBmcmFtZSwgdW5zaWduZWQg
aW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGx1Z2luKHBsdWdpbkRhdGEsIGZyYW1l
LCBpbmRleCkpOyB9CiAgICAgfkRPTVBsdWdpbigpOwogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAKaW5kZXggZDNhNjM3
Ny4uODE1ZWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5B
cnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAK
QEAgLTU5LDcgKzU5LDcgQEAgUGFzc1JlZlB0cjxET01QbHVnaW4+IERPTVBsdWdpbkFycmF5Ojpp
dGVtKHVuc2lnbmVkIGluZGV4KQogICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lu
cyA9IGRhdGEtPnBsdWdpbnMoKTsKICAgICBpZiAoaW5kZXggPj0gcGx1Z2lucy5zaXplKCkpCiAg
ICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBET01QbHVnaW46OmNyZWF0ZShkYXRhLCBtX2Zy
YW1lLCBpbmRleCkuZ2V0KCk7CisgICAgcmV0dXJuIERPTVBsdWdpbjo6Y3JlYXRlKGRhdGEsIG1f
ZnJhbWUsIGluZGV4KTsKIH0KIAogYm9vbCBET01QbHVnaW5BcnJheTo6Y2FuR2V0SXRlbXNGb3JO
YW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQpAQCAtODMsNyArODMsNyBAQCBQ
YXNzUmVmUHRyPERPTVBsdWdpbj4gRE9NUGx1Z2luQXJyYXk6Om5hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmIHByb3BlcnR5TmFtZQogICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1
Z2lucyA9IGRhdGEtPnBsdWdpbnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGx1
Z2lucy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAocGx1Z2luc1tpXS5uYW1lID09IHByb3Bl
cnR5TmFtZSkKLSAgICAgICAgICAgIHJldHVybiBET01QbHVnaW46OmNyZWF0ZShkYXRhLCBtX2Zy
YW1lLCBpKS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBET01QbHVnaW46OmNyZWF0ZShkYXRh
LCBtX2ZyYW1lLCBpKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL0RPTVBsdWdpbkFycmF5LmgKaW5kZXggNDQ3YzNjZi4uZWE5NjRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbHVn
aW5EYXRhOwogCiBjbGFzcyBET01QbHVnaW5BcnJheSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUs
IHB1YmxpYyBSZWZDb3VudGVkPERPTVBsdWdpbkFycmF5PiwgcHVibGljIERPTVdpbmRvd1Byb3Bl
cnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QbHVnaW5BcnJheT4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBsdWdpbkFycmF5KGZy
YW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTVBsdWdpbkFycmF5PiBjcmVhdGUoRnJhbWUqIGZy
YW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBsdWdpbkFycmF5KGZyYW1lKSk7IH0KICAg
ICB+RE9NUGx1Z2luQXJyYXkoKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAppbmRleCA4ZDQ1MjM0Li4xZjI2Njc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaApAQCAtNTEsNyArNTEsNyBAQCBzdHJ1Y3QgUGx1Z2lu
SW5mbyB7CiAvLyBGSVhNRTogbWVyZ2Ugd2l0aCBQbHVnaW5EYXRhYmFzZSBpbiB0aGUgZnV0dXJl
CiBjbGFzcyBQbHVnaW5EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UGx1Z2luRGF0YT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpbkRhdGE+IGNyZWF0ZShjb25zdCBQYWdl
KiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luRGF0YShwYWdlKSk7IH0KKyAgICBz
dGF0aWMgUmVmPFBsdWdpbkRhdGE+IGNyZWF0ZShjb25zdCBQYWdlKiBwYWdlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFBsdWdpbkRhdGEocGFnZSkpOyB9CiAKICAgICBjb25zdCBWZWN0b3I8UGx1
Z2luSW5mbz4mIHBsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbnM7IH0KICAgICBjb25z
dCBWZWN0b3I8TWltZUNsYXNzSW5mbz4mIG1pbWVzKCkgY29uc3QgeyByZXR1cm4gbV9taW1lczsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAppbmRleCBi
OTA5MDVmLi4wYWEwYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xp
cFBhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhP
cGVyYXRpb24uaApAQCAtNjYsOSArNjYsOSBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIFJlZmVyZW5j
ZUNsaXBQYXRoT3BlcmF0aW9uIGZpbmFsIDogcHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50KQorICAgIHN0
YXRpYyBSZWY8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24odXJsLCBmcmFnbWVudCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbih1cmws
IGZyYWdtZW50KSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJl
dHVybiBtX3VybDsgfQpAQCAtOTYsOSArOTYsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBTaGFwZUNs
aXBQYXRoT3BlcmF0aW9uIGZpbmFsIDogcHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFwZUNsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUo
UmVmPEJhc2ljU2hhcGU+JiYgc2hhcGUpCisgICAgc3RhdGljIFJlZjxTaGFwZUNsaXBQYXRoT3Bl
cmF0aW9uPiBjcmVhdGUoUmVmPEJhc2ljU2hhcGU+JiYgc2hhcGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24oV1RGOjptb3ZlKHNoYXBl
KSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFwZUNsaXBQYXRoT3BlcmF0aW9u
KFdURjo6bW92ZShzaGFwZSkpKTsKICAgICB9CiAKICAgICBjb25zdCBCYXNpY1NoYXBlJiBiYXNp
Y1NoYXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZTsgfQpAQCAtMTM1LDkgKzEzNSw5IEBAIHBy
aXZhdGU6CiAKIGNsYXNzIEJveENsaXBQYXRoT3BlcmF0aW9uIGZpbmFsIDogcHVibGljIENsaXBQ
YXRoT3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCb3hDbGlwUGF0
aE9wZXJhdGlvbj4gY3JlYXRlKENTU0JveFR5cGUgcmVmZXJlbmNlQm94KQorICAgIHN0YXRpYyBS
ZWY8Qm94Q2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShDU1NCb3hUeXBlIHJlZmVyZW5jZUJveCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQm94Q2xpcFBhdGhPcGVyYXRpb24o
cmVmZXJlbmNlQm94KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJveENsaXBQYXRo
T3BlcmF0aW9uKHJlZmVyZW5jZUJveCkpOwogICAgIH0KIAogICAgIGNvbnN0IFBhdGggcGF0aEZv
clJlZmVyZW5jZVJlY3QoY29uc3QgUm91bmRlZFJlY3QmIGJvdW5kaW5nUmVjdCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwCmluZGV4IDU5MmVlZjMuLjAxZWM5
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmNwcApAQCAtOTAsOSAr
OTAsOSBAQCBDb3VudGVyTm9kZTo6fkNvdW50ZXJOb2RlKCkKICAgICByZXNldFJlbmRlcmVycygp
OwogfQogCi1QYXNzUmVmUHRyPENvdW50ZXJOb2RlPiBDb3VudGVyTm9kZTo6Y3JlYXRlKFJlbmRl
ckVsZW1lbnQmIG93bmVyLCBib29sIGhhc1Jlc2V0VHlwZSwgaW50IHZhbHVlKQorUmVmPENvdW50
ZXJOb2RlPiBDb3VudGVyTm9kZTo6Y3JlYXRlKFJlbmRlckVsZW1lbnQmIG93bmVyLCBib29sIGhh
c1Jlc2V0VHlwZSwgaW50IHZhbHVlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ291bnRl
ck5vZGUob3duZXIsIGhhc1Jlc2V0VHlwZSwgdmFsdWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDb3VudGVyTm9kZShvd25lciwgaGFzUmVzZXRUeXBlLCB2YWx1ZSkpOwogfQogCiBDb3Vu
dGVyTm9kZSogQ291bnRlck5vZGU6Om5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbihjb25zdCBD
b3VudGVyTm9kZSogc3RheVdpdGhpbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Db3VudGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50
ZXJOb2RlLmgKaW5kZXggNWY5NTU0Yi4uOTk3YzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NvdW50ZXJOb2RlLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUmVuZGVyRWxlbWVudDsKIAog
Y2xhc3MgQ291bnRlck5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxDb3VudGVyTm9kZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvdW50ZXJOb2RlPiBjcmVhdGUoUmVuZGVyRWxl
bWVudCYsIGJvb2wgaXNSZXNldCwgaW50IHZhbHVlKTsKKyAgICBzdGF0aWMgUmVmPENvdW50ZXJO
b2RlPiBjcmVhdGUoUmVuZGVyRWxlbWVudCYsIGJvb2wgaXNSZXNldCwgaW50IHZhbHVlKTsKICAg
ICB+Q291bnRlck5vZGUoKTsKICAgICBib29sIGFjdHNBc1Jlc2V0KCkgY29uc3QgeyByZXR1cm4g
bV9oYXNSZXNldFR5cGUgfHwgIW1fcGFyZW50OyB9CiAgICAgYm9vbCBoYXNSZXNldFR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2hhc1Jlc2V0VHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvQmFzaWNTaGFwZXMuaAppbmRleCA4MDdhNzRlLi44NjJhZjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaApAQCAtMTQ3LDcgKzE0Nyw3
IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJhc2ljU2hhcGVDaXJjbGUgZmluYWwgOiBwdWJsaWMgQmFz
aWNTaGFwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmFzaWNTaGFwZUNpcmNs
ZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2ljU2hhcGVDaXJjbGUpOyB9Cisg
ICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IEJhc2ljU2hhcGVDaXJjbGUpOyB9CiAKICAgICBjb25zdCBCYXNpY1NoYXBlQ2VudGVy
Q29vcmRpbmF0ZSYgY2VudGVyWCgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWDsgfQogICAgIGNv
bnN0IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJZKCkgY29uc3QgeyByZXR1cm4g
bV9jZW50ZXJZOyB9CkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgQmFzaWNT
aGFwZUVsbGlwc2UgZmluYWwgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8QmFzaWNTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBCYXNpY1NoYXBlRWxsaXBzZSk7IH0KKyAgICBzdGF0aWMgUmVmPEJhc2ljU2hhcGVF
bGxpcHNlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEJhc2ljU2hhcGVFbGxpcHNl
KTsgfQogCiAgICAgY29uc3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUmIGNlbnRlclgoKSBj
b25zdCB7IHJldHVybiBtX2NlbnRlclg7IH0KICAgICBjb25zdCBCYXNpY1NoYXBlQ2VudGVyQ29v
cmRpbmF0ZSYgY2VudGVyWSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWTsgfQpAQCAtMjAwLDcg
KzIwMCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJhc2ljU2hhcGVQb2x5Z29uIGZpbmFsIDogcHVi
bGljIEJhc2ljU2hhcGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljU2hh
cGVQb2x5Z29uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQmFzaWNTaGFwZVBvbHln
b24pOyB9CisgICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlUG9seWdvbj4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBCYXNpY1NoYXBlUG9seWdvbik7IH0KIAogICAgIGNvbnN0IFZlY3Rv
cjxMZW5ndGg+JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogICAgIGNvbnN0
IExlbmd0aCYgZ2V0WEF0KHVuc2lnbmVkIGkpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzWzIgKiBp
XTsgfQpAQCAtMjI2LDcgKzIyNiw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJhc2ljU2hhcGVJbnNl
dCBmaW5hbCA6IHB1YmxpYyBCYXNpY1NoYXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxCYXNpY1NoYXBlSW5zZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYXNp
Y1NoYXBlSW5zZXQpOyB9CisgICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlSW5zZXQ+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmFzaWNTaGFwZUluc2V0KTsgfQogCiAgICAgY29uc3Qg
TGVuZ3RoJiB0b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcDsgfQogICAgIGNvbnN0IExlbmd0aCYg
cmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0N1cnNvckxpc3QuaAppbmRleCBhMWQxZmU3Li40YjNlM2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0LmgKQEAgLTMzLDkgKzMzLDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JMaXN0IDogcHVibGljIFJlZkNvdW50
ZWQ8Q3Vyc29yTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1cnNvckxp
c3Q+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDdXJzb3JMaXN0PiBjcmVhdGUoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXJzb3JMaXN0KTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ3Vyc29yTGlzdCk7CiAgICAgfQogCiAgICAgY29uc3QgQ3Vyc29yRGF0
YSYgb3BlcmF0b3JbXShpbnQgaSkgY29uc3QgeyByZXR1cm4gbV92ZWN0b3JbaV07IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCmluZGV4IDczYjQw
MmYuLjg4NWRmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJ
bnB1dEN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0
Q3Vyc29yLmNwcApAQCAtNDksOSArNDksOSBAQCBDYXB0dXJpbmdJbnB1dEN1cnNvcjo6fkNhcHR1
cmluZ0lucHV0Q3Vyc29yKCkKICAgICBMT0coV2ViUmVwbGF5LCAiJS0zMHNEZXN0cm95ZWQgY2Fw
dHVyZSBjdXJzb3I9JXAuXG4iLCAiW1JlcGxheUNvbnRyb2xsZXJdIiwgdGhpcyk7CiB9CiAKLVBh
c3NSZWZQdHI8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IENhcHR1cmluZ0lucHV0Q3Vyc29yOjpjcmVh
dGUoUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4gc2VnbWVudCkKK1JlZjxDYXB0dXJp
bmdJbnB1dEN1cnNvcj4gQ2FwdHVyaW5nSW5wdXRDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPFJl
cGxheVNlc3Npb25TZWdtZW50PiBzZWdtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Q2FwdHVyaW5nSW5wdXRDdXJzb3Ioc2VnbWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENhcHR1cmluZ0lucHV0Q3Vyc29yKHNlZ21lbnQpKTsKIH0KIAogdm9pZCBDYXB0dXJpbmdJbnB1
dEN1cnNvcjo6c3RvcmVJbnB1dChzdGQ6OnVuaXF1ZV9wdHI8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0
QmFzZT4gaW5wdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5n
SW5wdXRDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNv
ci5oCmluZGV4IGVjMjVjODQuLjA4MDE3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9D
YXB0dXJpbmdJbnB1dEN1cnNvci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFJlcGxheVNlc3Np
b25TZWdtZW50OwogY2xhc3MgQ2FwdHVyaW5nSW5wdXRDdXJzb3IgZmluYWwgOiBwdWJsaWMgSW5w
dXRDdXJzb3IgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhcHR1cmluZ0lucHV0Q3Vyc29y
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYXB0dXJpbmdJbnB1dEN1cnNvcj4g
Y3JlYXRlKFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+KTsKKyAgICBzdGF0aWMgUmVm
PENhcHR1cmluZ0lucHV0Q3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2Vn
bWVudD4pOwogICAgIHZpcnR1YWwgfkNhcHR1cmluZ0lucHV0Q3Vyc29yKCk7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNDYXB0dXJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcAppbmRleCA4MWJhZTY0Li4wZmUzMWViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAKQEAgLTM4LDkgKzM4LDkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QYXNzUmVmUHRyPFN0b3JhZ2U+IFN0b3JhZ2U6OmNyZWF0ZShGcmFtZSogZnJh
bWUsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKQorUmVmPFN0b3JhZ2U+IFN0
b3JhZ2U6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZShmcmFtZSwgc3RvcmFn
ZUFyZWEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlKGZyYW1lLCBzdG9yYWdl
QXJlYSkpOwogfQogCiBTdG9yYWdlOjpTdG9yYWdlKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oCmluZGV4IDFl
OWZkYWIuLmNlYjlkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oCkBAIC00MSw3ICs0MSw3
IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIFN0b3JhZ2UgOiBwdWJsaWMg
U2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlPiwgcHVibGljIERPTVdp
bmRvd1Byb3BlcnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlPiBj
cmVhdGUoRnJhbWUqLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPik7CisgICAgc3RhdGljIFJlZjxT
dG9yYWdlPiBjcmVhdGUoRnJhbWUqLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPik7CiAgICAgflN0
b3JhZ2UoKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aChFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggMTYzNGNhZi4u
NTg3YmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcApA
QCAtNjIsMTggKzYyLDE4IEBAIGlubGluZSBTdG9yYWdlQXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1w
bChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTZWN1CiAgICAgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKTsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IFN0b3Jh
Z2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4sIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzeW5j
TWFuYWdlciwgdW5zaWduZWQgcXVvdGEpCitSZWY8U3RvcmFnZUFyZWFJbXBsPiBTdG9yYWdlQXJl
YUltcGw6OmNyZWF0ZShTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gb3JpZ2luLCBQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gc3luY01hbmFn
ZXIsIHVuc2lnbmVkIHF1b3RhKQogewotICAgIFJlZlB0cjxTdG9yYWdlQXJlYUltcGw+IGFyZWEg
PSBhZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VUeXBlLCBvcmlnaW4sIHN5bmNN
YW5hZ2VyLCBxdW90YSkpOworICAgIFJlZjxTdG9yYWdlQXJlYUltcGw+IGFyZWEgPSBhZG9wdFJl
ZigqbmV3IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlVHlwZSwgb3JpZ2luLCBzeW5jTWFuYWdlciwg
cXVvdGEpKTsKIAogICAgIC8vIEZJWE1FOiBJZiB0aGVyZSdzIG5vIGJhY2tpbmcgc3RvcmFnZSBm
b3IgTG9jYWxTdG9yYWdlLCB0aGUgZGVmYXVsdCBXZWJLaXQgYmVoYXZpb3Igc2hvdWxkIGJlIHRo
YXQgb2YgcHJpdmF0ZSBicm93c2luZywKICAgICAvLyBub3Qgc2lsZW50bHkgaWdub3JpbmcgaXQu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg5NAogICAgIGlmIChh
cmVhLT5tX3N0b3JhZ2VTeW5jTWFuYWdlcikgewotICAgICAgICBhcmVhLT5tX3N0b3JhZ2VBcmVh
U3luYyA9IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKGFyZWEtPm1fc3RvcmFnZVN5bmNNYW5hZ2Vy
LCBhcmVhLmdldCgpLCBhcmVhLT5tX3NlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIo
KSk7CisgICAgICAgIGFyZWEtPm1fc3RvcmFnZUFyZWFTeW5jID0gU3RvcmFnZUFyZWFTeW5jOjpj
cmVhdGUoYXJlYS0+bV9zdG9yYWdlU3luY01hbmFnZXIsIGFyZWEucHRyKCksIGFyZWEtPm1fc2Vj
dXJpdHlPcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICAgICAgQVNTRVJUKGFyZWEt
Pm1fc3RvcmFnZUFyZWFTeW5jKTsKICAgICB9CiAKLSAgICByZXR1cm4gYXJlYS5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIGFyZWE7CiB9CiAKIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBTdG9y
YWdlQXJlYUltcGw6OmNvcHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmgKaW5kZXggOTIzYTZmNS4uODk3NjFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VBcmVhSW1wbC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFN0b3JhZ2VBcmVhU3luYzsKIAog
Y2xhc3MgU3RvcmFnZUFyZWFJbXBsIDogcHVibGljIFN0b3JhZ2VBcmVhIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IGNyZWF0ZShTdG9yYWdlVHlwZSwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2Vy
PiwgdW5zaWduZWQgcXVvdGEpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFJbXBsPiBjcmVh
dGUoU3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBQYXNzUmVmUHRyPFN0
b3JhZ2VTeW5jTWFuYWdlcj4sIHVuc2lnbmVkIHF1b3RhKTsKICAgICB2aXJ0dWFsIH5TdG9yYWdl
QXJlYUltcGwoKTsKIAogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXggNjBjNDJjZi4u
NDYwMmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcApA
QCAtNzIsMTEgKzcyLDkgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5j
KFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKICAgICB9KTsKIH0KIAot
UGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKFBhc3NS
ZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8
U3RvcmFnZUFyZWFJbXBsPiBzdG9yYWdlQXJlYSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50
aWZpZXIpCitSZWY8U3RvcmFnZUFyZWFTeW5jPiBTdG9yYWdlQXJlYVN5bmM6OmNyZWF0ZShQYXNz
UmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gc3RvcmFnZVN5bmNNYW5hZ2VyLCBQYXNzUmVmUHRy
PFN0b3JhZ2VBcmVhSW1wbD4gc3RvcmFnZUFyZWEsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVu
dGlmaWVyKQogewotICAgIFJlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFyZWEgPSBhZG9wdFJlZihu
ZXcgU3RvcmFnZUFyZWFTeW5jKHN0b3JhZ2VTeW5jTWFuYWdlciwgc3RvcmFnZUFyZWEsIGRhdGFi
YXNlSWRlbnRpZmllcikpOwotCi0gICAgcmV0dXJuIGFyZWEucmVsZWFzZSgpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VBcmVhU3luYyhzdG9yYWdlU3luY01hbmFnZXIsIHN0b3Jh
Z2VBcmVhLCBkYXRhYmFzZUlkZW50aWZpZXIpKTsKIH0KIAogU3RvcmFnZUFyZWFTeW5jOjp+U3Rv
cmFnZUFyZWFTeW5jKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCmlu
ZGV4IGI1YWE1MDUuLmJhZWFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUFyZWFTeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJl
YVN5bmMuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBTdG9yYWdlU3luY01hbmFnZXI7CiAKIGNs
YXNzIFN0b3JhZ2VBcmVhU3luYyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTdG9yYWdl
QXJlYVN5bmM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5
bmM+IGNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4sIFBhc3NSZWZQdHI8U3Rv
cmFnZUFyZWFJbXBsPiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpOworICAgIHN0
YXRpYyBSZWY8U3RvcmFnZUFyZWFTeW5jPiBjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01h
bmFnZXI+LCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4sIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VJZGVudGlmaWVyKTsKICAgICB+U3RvcmFnZUFyZWFTeW5jKCk7CiAKICAgICB2b2lkIHNjaGVk
dWxlRmluYWxTeW5jKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcAppbmRleCBm
YjdlNDM1Li42N2IwYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKQEAg
LTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFN0b3Jh
Z2VNYXA+IFN0b3JhZ2VNYXA6OmNyZWF0ZSh1bnNpZ25lZCBxdW90YSkKK1JlZjxTdG9yYWdlTWFw
PiBTdG9yYWdlTWFwOjpjcmVhdGUodW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTdG9yYWdlTWFwKHF1b3RhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Rv
cmFnZU1hcChxdW90YSkpOwogfQogCiBTdG9yYWdlTWFwOjpTdG9yYWdlTWFwKHVuc2lnbmVkIHF1
b3RhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmggYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuaAppbmRleCA4YzNkNWNmLi41ZGUxOTE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTdG9yYWdlTWFwIDogcHVibGljIFJlZkNvdW50ZWQ8U3Rv
cmFnZU1hcD4gewogcHVibGljOgogICAgIC8vIFF1b3RhIHNpemUgbWVhc3VyZWQgaW4gYnl0ZXMu
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gY3JlYXRl
KHVuc2lnbmVkIHF1b3RhU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTdG9y
YWdlTWFwPiBjcmVhdGUodW5zaWduZWQgcXVvdGFTaXplKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXko
dW5zaWduZWQgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01h
bmFnZXIuY3BwCmluZGV4IGJhZTcyYTAuLjYzN2E0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gU3RvcmFnZVN5
bmNNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorUmVmPFN0b3JhZ2VTeW5jTWFu
YWdlcj4gU3RvcmFnZVN5bmNNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZVN5bmNNYW5hZ2VyKHBhdGgpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlU3luY01hbmFnZXIocGF0aCkpOwogfQogCiBTdG9y
YWdlU3luY01hbmFnZXI6OlN0b3JhZ2VTeW5jTWFuYWdlcihjb25zdCBTdHJpbmcmIHBhdGgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAppbmRleCA0ODY1MWNh
Li4wMjg3NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5j
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2Vy
LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwogCiBjbGFzcyBTdG9y
YWdlU3luY01hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlU3luY01hbmFnZXI+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZVN5bmNNYW5hZ2Vy
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKICAgICB+U3RvcmFnZVN5bmNNYW5hZ2VyKCk7
CiAKICAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHAKaW5kZXggZmZlNDE2NS4uMjMwNzgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTM5LDExICszOSwx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0
aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikKK1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgRGVkaWNhdGVk
V29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5
LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5
VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQogewotICAgIFJlZlB0
cjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdz
KSwgdGhyZWFkLCB0b3BPcmlnaW4pKTsKKyAgICBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKHVy
bCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdpbikpOwog
ICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbVN0cmluZyhjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwotICAgIHJldHVybiBj
b250ZXh0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dDsKIH0KIAogRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+
IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gdG9wT3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGJmZTdiNGUuLjBkNzdiZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyR2xvYmFsU2NvcGUgQmFzZTsKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0
dGluZ3M+LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1
cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7Cisg
ICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0
dGluZ3M+LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1
cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAg
ICAgICAgIHZpcnR1YWwgfkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKICAgICAgICAg
dmlydHVhbCBib29sIGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5jcHAKaW5kZXggNjk5N2ExZC4uOGFlNTdhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsOSArMzgs
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2Vy
VGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdz
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2Fk
ZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJl
YWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCitSZWY8RGVkaWNhdGVkV29y
a2VyVGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBVUkwmIHNjcmlw
dFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNldHRp
bmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJM
b2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJU
aHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQs
IHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJv
eHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xp
Y3lUeXBlLCB0b3BPcmlnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3
b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pKTsKIH0K
IAogRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiBzZXR0
aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2Vy
TG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2Vy
VGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQ
b2xpY3lUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQpAQCAtNTMsNyArNTMs
NyBAQCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKQogewog
fQogCi1QYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6
OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFk
ZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHRvcE9yaWdpbikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29u
c3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pCiB7CiAgICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksICp0aGlzLCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdp
bik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
clRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQu
aAppbmRleCA0Zjg3NTAxLi43MjIzOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAgLTM5LDEyICszOSwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2Vy
VGhyZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlZGljYXRl
ZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7
CisgICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRp
bmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtl
ck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBjb25z
dCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKICAgICAgICAgV29ya2VyT2JqZWN0UHJveHkm
IHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsg
fQogICAgICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKTsKIAogICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVh
dGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
c3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwg
Y29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVy
cmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiAg
ICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0
U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNWQzMjZlZC4uYWYwZTUzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTaGFyZWRXb3JrZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxT
aGFyZWRXb3JrZXJQcm94eT4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSwgcHVibGljIFdvcmtl
clJlcG9ydGluZ1Byb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRX
b3JrZXJQcm94eT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiB1cmwsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZFdvcmtlclByb3h5KG5hbWUsIHVybCwgb3JpZ2luKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNo
YXJlZFdvcmtlclByb3h5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVy
bCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFNoYXJlZFdvcmtlclByb3h5KG5hbWUsIHVybCwgb3JpZ2luKSk7IH0KIAogICAgIHZvaWQg
c2V0VGhyZWFkKFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiB0aHJlYWQpIHsgbV90aHJl
YWQgPSB0aHJlYWQ7IH0KICAgICBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgpIHsgcmV0dXJu
IG1fdGhyZWFkLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGNkOGE3OGQuLjBiYjQ4MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01
MiwxMSArNTIsMTEgQEAgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZUNvbm5lY3RFdmVu
dChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwcnBQb3J0KQogfQogCiAvLyBzdGF0aWMKLVBhc3NS
ZWZQdHI8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgU2hhcmVk
V29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5
LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5
VHlwZSkKK1JlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBT
aGFyZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQ
b2xpY3lUeXBlKQogewotICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4
dCA9IGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJB
Z2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkKSk7CisgICAgUmVmPFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBTaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZShuYW1lLCB1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkKSk7
CiAgICAgY29udGV4dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7Ci0gICAgcmV0dXJu
IGNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBjb250ZXh0OwogfQogCiBTaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0
cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgU2hhcmVkV29ya2VyVGhyZWFkJiB0aHJlYWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggYjU0NGM0My4uOThkNDU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyR2xv
YmFsU2NvcGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3JrZXJHbG9iYWxTY29w
ZSBCYXNlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhy
ZWFkJiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKKyAgICAgICAg
c3RhdGljIFJlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0
cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkJiwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICAgICAgdmlydHVhbCB+U2hhcmVkV29ya2VyR2xv
YmFsU2NvcGUoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAppbmRleCA2NTU3MWIyLi4xYTY5ZWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC0z
OCw5ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTaGFyZWRX
b3JrZXJUaHJlYWQ+IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBH
cm91cFNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJM
b2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3Jr
ZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3Qg
U3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVh
ZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQorUmVmPFNoYXJlZFdvcmtlclRocmVh
ZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGlu
Z3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGlu
Z1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNv
bnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFy
ZWRXb3JrZXJUaHJlYWQobmFtZSwgc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3Vy
Y2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHksIHN0YXJ0TW9k
ZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlwdFVS
TCwgdXNlckFnZW50LCBzZXR0aW5ncywgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdv
cmtlclJlcG9ydGluZ1Byb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOwogfQogCiBTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJl
ZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBX
b3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlw
ZSkKQEAgLTUzLDcgKzUzLDcgQEAgU2hhcmVkV29ya2VyVGhyZWFkOjp+U2hhcmVkV29ya2VyVGhy
ZWFkKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29ya2Vy
VGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywg
Y29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29ya2VyVGhyZWFkOjpj
cmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3Ry
aW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVy
VHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PikKIHsKICAgICByZXR1cm4gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShtX25hbWUs
IHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCAqdGhpcywgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCmluZGV4IDFkMjE0YTguLjVlNzlmNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaApAQCAtMzksMTEg
KzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNoYXJlZFdvcmtlclRo
cmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5n
cyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJS
ZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7Cisg
ICAgICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBT
ZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBX
b3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSk7CiAgICAgICAgIHZpcnR1YWwgflNoYXJlZFdvcmtlclRocmVhZCgpOwogCiAgICAgcHJvdGVj
dGVkOgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0
ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBz
dGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJy
aWRlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdy
b3VwU2V0dGluZ3MqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApp
bmRleCAwYmQxOWZjLi44ZTc0Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgV29ya2VyR2xvYmFsU2Nv
cGU6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNv
ZGUmCiAgICAgVmVjdG9yPFVSTD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNvbXBsZXRlZFVSTHMu
ZW5kKCk7CiAKICAgICBmb3IgKFZlY3RvcjxVUkw+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGNvbXBs
ZXRlZFVSTHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIFJlZlB0cjxXb3Jr
ZXJTY3JpcHRMb2FkZXI+IHNjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgp
KTsKKyAgICAgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gc2NyaXB0TG9hZGVyID0gV29ya2Vy
U2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKICAgICAgICAgc2NyaXB0TG9hZGVyLT5sb2FkU3luY2hy
b25vdXNseShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICppdCwgQWxsb3dDcm9zc09yaWdpblJl
cXVlc3RzKTsKIAogICAgICAgICAvLyBJZiB0aGUgZmV0Y2hpbmcgYXR0ZW1wdCBmYWlsZWQsIHRo
cm93IGEgTkVUV09SS19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCBhbGwgdGhlc2Ugc3RlcHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0aW9uLmgKaW5kZXggZTBjODNhYi4uNWRiZWY2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaApAQCAtMzcsOSArMzcs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBXb3JrZXJMb2NhdGlvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPFdvcmtlckxvY2F0aW9uPiB7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXb3JrZXJMb2NhdGlvbj4gY3JlYXRlKGNvbnN0IFVSTCYgdXJsKQor
ICAgICAgICBzdGF0aWMgUmVmPFdvcmtlckxvY2F0aW9uPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV29ya2VyTG9jYXRp
b24odXJsKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJMb2NhdGlv
bih1cmwpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyBy
ZXR1cm4gbV91cmw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5oCmluZGV4IDlhYWY2NjQuLjllNjkxN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtl
clNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IHsKICAgICAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IGNyZWF0ZSgpCisgICAgICAgIHN0YXRpYyBSZWY8
V29ya2VyU2NyaXB0TG9hZGVyPiBjcmVhdGUoKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdvcmtlclNjcmlwdExvYWRlcigpKTsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdvcmtlclNjcmlwdExvYWRlcik7CiAgICAgICAgIH0KIAogICAgICAg
ICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBV
UkwmLCBDcm9zc09yaWdpblJlcXVlc3RQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKaW5kZXggNzg5MmEwZS4uNDE4OWVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBHcm91cFNldHRpbmdzKiwgIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29u
c3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CiAKICAgICAgICAg
Ly8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgbmV3IHdvcmtlciBjb250ZXh0IGZvciB0
aGUgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgPSAwOworICAgICAgICB2aXJ0dWFsIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwg
Y29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSA9IDA7
CiAKICAgICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50IGxvb3AgZm9yIHRoZSB3b3JrZXIgdGhy
ZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHBlcmZvcm0gYWN0aW9ucyBiZWZv
cmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3AuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
dW5FdmVudExvb3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaAppbmRleCBkZDcxYjRmLi5lYTJlYmM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL0RPTVBhcnNlci5oCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIERvY3VtZW50
OwogCiBjbGFzcyBET01QYXJzZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxET01QYXJzZXI+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXJzZXI+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBET01QYXJzZXIpOyB9CisgICAgc3RhdGljIFJlZjxET01QYXJzZXI+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGFyc2VyKTsgfQogCiAgICAgUGFzc1Jl
ZlB0cjxEb2N1bWVudD4gcGFyc2VGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL05h
dGl2ZVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDg2NjFiNjAuLjQzNGMxMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgTm9kZTsKIAogY2xhc3MgTmF0aXZlWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRoTlNS
ZXNvbHZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmF0aXZlWFBhdGhOU1Jl
c29sdmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgTmF0aXZlWFBhdGhOU1Jlc29sdmVyKG5vZGUpKTsgfQorICAgIHN0YXRpYyBSZWY8TmF0aXZl
WFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IE5hdGl2ZVhQYXRoTlNSZXNvbHZlcihub2RlKSk7IH0KICAgICB2aXJ0dWFs
IH5OYXRpdmVYUGF0aE5TUmVzb2x2ZXIoKTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5h
bWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAppbmRleCA2NWYzYzcyLi5iNTQwYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKQEAgLTExMiwxMiArMTEyLDExIEBAIHN0YXRpYyB2b2lkIGxvZ0NvbnNv
bGVFcnJvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1l
c3NhCiAgICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwogfQogCi1QYXNzUmVmUHRyPFhNTEh0dHBSZXF1
ZXN0PiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCitSZWY8WE1MSHR0cFJlcXVlc3Q+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3Q+IHht
bEh0dHBSZXF1ZXN0KGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVxdWVzdChjb250ZXh0KSkpOworICAg
IFJlZjxYTUxIdHRwUmVxdWVzdD4geG1sSHR0cFJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IFhNTEh0
dHBSZXF1ZXN0KGNvbnRleHQpKTsKICAgICB4bWxIdHRwUmVxdWVzdC0+c3VzcGVuZElmTmVlZGVk
KCk7Ci0KLSAgICByZXR1cm4geG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpOworICAgIHJldHVybiB4
bWxIdHRwUmVxdWVzdDsKIH0KIAogWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
CmluZGV4IGY5OWY4NTguLjY0NGJlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFRocmVhZGFibGVMb2FkZXI7CiBjbGFzcyBYTUxIdHRw
UmVxdWVzdCBmaW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVk
PFhNTEh0dHBSZXF1ZXN0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZh
dGUgVGhyZWFkYWJsZUxvYWRlckNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
WE1MSHR0cFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgc3Rh
dGljIFJlZjxYTUxIdHRwUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
ICAgICB+WE1MSHR0cFJlcXVlc3QoKTsKIAogICAgIC8vIFRoZXNlIGV4YWN0IG51bWVyaWMgdmFs
dWVzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSBKUyBleHBlY3RzIHRoZW0uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmNwcAppbmRleCAwZjYyNGEwLi5iYzFmOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKQEAgLTEy
OCwxMyArMTI4LDEzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6
OmZsdXNoUHJvZ3Jlc3NFdmVudCgpCiAKICAgICBpZiAoIWhhc0V2ZW50VG9EaXNwYXRjaCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQgPSBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbV9s
ZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRlZCwgbV90b3RhbCk7CisgICAgUmVmPEV2ZW50PiBldmVu
dCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcm9n
cmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3RvdGFsKTsKICAgICBt
X2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKIAogICAgIC8vIFdlIHN0b3AgdGhl
IHRpbWVyIGFzIHRoaXMgaXMgY2FsbGVkIHdoZW4gbm8gbW9yZSBldmVudHMgYXJlIHN1cHBvc2Vk
IHRvIG9jY3VyLgogICAgIHN0b3AoKTsKIAotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAg
IGRpc3BhdGNoRXZlbnQoV1RGOjptb3ZlKGV2ZW50KSk7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRGVmZXJyZWRFdmVudHMoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxTZXJpYWxpemVyLmgKaW5kZXggN2IyZGIwOC4uZWY1YzJmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MU2VyaWFsaXplci5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIFhNTFNlcmlhbGl6ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxYTUxTZXJpYWxp
emVyPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxTZXJpYWxp
emVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWE1MU2VyaWFsaXplcik7IH0KKyAg
ICAgICAgc3RhdGljIFJlZjxYTUxTZXJpYWxpemVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFhNTFNlcmlhbGl6ZXIpOyB9CiAgICAgICAgIAogICAgICAgICBTdHJpbmcgc2VyaWFs
aXplVG9TdHJpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEV2YWx1YXRvci5oCmluZGV4IDNkZTNlYzYuLjY0NDgyMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEV2YWx1YXRvci5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIFhQYXRoRXZhbHVhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8WFBhdGhFdmFs
dWF0b3I+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhQYXRoRXZh
bHVhdG9yPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWFBhdGhFdmFsdWF0b3IpOyB9
CisgICAgICAgIHN0YXRpYyBSZWY8WFBhdGhFdmFsdWF0b3I+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgWFBhdGhFdmFsdWF0b3IpOyB9CiAgICAgICAgIAogICAgICAgICBQYXNzUmVm
UHRyPFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIFhQYXRoTlNSZXNvbHZlciosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgUGFzc1Jl
ZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5oIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKaW5kZXggYWZmYzA3Ni4uYTIxNDBmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoUmVzdWx0LmgKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgPSA5CiAgICAgICAgIH07CiAg
ICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxYUGF0aFJlc3VsdD4gY3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgWFBhdGg6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFhQYXRoUmVzdWx0KGRvY3VtZW50LCB2YWx1ZSkpOyB9CisgICAgICAgIHN0YXRp
YyBSZWY8WFBhdGhSZXN1bHQ+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFhQYXRo
OjpWYWx1ZSYgdmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFBhdGhSZXN1bHQoZG9jdW1l
bnQsIHZhbHVlKSk7IH0KICAgICAgICAgflhQYXRoUmVzdWx0KCk7CiAgICAgICAgIAogICAgICAg
ICB2b2lkIGNvbnZlcnRUbyh1bnNpZ25lZCBzaG9ydCB0eXBlLCBFeGNlcHRpb25Db2RlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAppbmRleCA1N2ZjZjViLi4zYTNiOTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxsaWJ4
bWwvcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGlieHNsdC90cmFuc2Zvcm0uaD4KIAotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9U
eXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsMjQgKzQxLDI0IEBAIGNs
YXNzIFhTTEltcG9ydFJ1bGU7CiAgICAgCiBjbGFzcyBYU0xTdHlsZVNoZWV0IGZpbmFsIDogcHVi
bGljIFN0eWxlU2hlZXQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhTTFN0eWxl
U2hlZXQ+IGNyZWF0ZShYU0xJbXBvcnRSdWxlKiBwYXJlbnRJbXBvcnQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmluYWxVUkwpCisgICAgc3RhdGljIFJlZjxYU0xTdHls
ZVNoZWV0PiBjcmVhdGUoWFNMSW1wb3J0UnVsZSogcGFyZW50SW1wb3J0LCBjb25zdCBTdHJpbmcm
IG9yaWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudEltcG9ydCwgb3JpZ2luYWxVUkwsIGZp
bmFsVVJMKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFN0eWxlU2hlZXQocGFy
ZW50SW1wb3J0LCBvcmlnaW5hbFVSTCwgZmluYWxVUkwpKTsKICAgICB9Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8WFNMU3R5bGVTaGVldD4gY3JlYXRlKFByb2Nlc3NpbmdJbnN0cnVjdGlvbiogcGFy
ZW50Tm9kZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgVVJMJiBmaW5hbFVSTCkK
KyAgICBzdGF0aWMgUmVmPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZShQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24qIHBhcmVudE5vZGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmlu
YWxVUkwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0eWxlU2hlZXQo
cGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9yaWdpbmFsVVJMLCBm
aW5hbFVSTCwgZmFsc2UpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8WFNMU3R5bGVT
aGVldD4gY3JlYXRlRW1iZWRkZWQoUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwYXJlbnROb2RlLCBj
b25zdCBVUkwmIGZpbmFsVVJMKQorICAgIHN0YXRpYyBSZWY8WFNMU3R5bGVTaGVldD4gY3JlYXRl
RW1iZWRkZWQoUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwYXJlbnROb2RlLCBjb25zdCBVUkwmIGZp
bmFsVVJMKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0
KHBhcmVudE5vZGUsIGZpbmFsVVJMLnN0cmluZygpLCBmaW5hbFVSTCwgdHJ1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIGZpbmFsVVJM
LnN0cmluZygpLCBmaW5hbFVSTCwgdHJ1ZSkpOwogICAgIH0KIAogICAgIC8vIFRha2luZyBhbiBh
cmJpdHJhcnkgbm9kZSBpcyB1bnNhZmUsIGJlY2F1c2Ugb3duZXIgbm9kZSBwb2ludGVyIGNhbiBi
ZWNvbWUgc3RhbGUuCiAgICAgLy8gWFNMVFByb2Nlc3NvciBlbnN1cmVzIHRoYXQgdGhlIHN0eWxl
c2hlZXQgZG9lc24ndCBvdXRsaXZlIGl0cyBwYXJlbnQsIGluIHBhcnQgYnkgbm90IGV4cG9zaW5n
IGl0IHRvIEphdmFTY3JpcHQuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8WFNMU3R5bGVTaGVldD4g
Y3JlYXRlRm9yWFNMVFByb2Nlc3NvcihOb2RlKiBwYXJlbnROb2RlLCBjb25zdCBTdHJpbmcmIG9y
aWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQorICAgIHN0YXRpYyBSZWY8WFNMU3R5bGVT
aGVldD4gY3JlYXRlRm9yWFNMVFByb2Nlc3NvcihOb2RlKiBwYXJlbnROb2RlLCBjb25zdCBTdHJp
bmcmIG9yaWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9yaWdpbmFsVVJMLCBm
aW5hbFVSTCwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFNMU3R5bGVT
aGVldChwYXJlbnROb2RlLCBvcmlnaW5hbFVSTCwgZmluYWxVUkwsIGZhbHNlKSk7CiAgICAgfQog
CiAgICAgdmlydHVhbCB+WFNMU3R5bGVTaGVldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29y
LmgKaW5kZXggNTE4ZTFlMi4uMmJjMDgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5o
CkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiAKIGNsYXNzIFhTTFRQ
cm9jZXNzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxYU0xUUHJvY2Vzc29yPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8WFNMVFByb2Nlc3Nvcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFhTTFRQcm9jZXNzb3IpOyB9CisgICAgc3RhdGljIFJlZjxYU0xUUHJvY2Vzc29y
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFRQcm9jZXNzb3IpOyB9CiAgICAg
flhTTFRQcm9jZXNzb3IoKTsKIAogICAgIHZvaWQgc2V0WFNMU3R5bGVTaGVldChQYXNzUmVmUHRy
PFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQpIHsgbV9zdHlsZXNoZWV0ID0gc3R5bGVTaGVldDsg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243735</attachid>
            <date>2014-12-24 19:38:12 -0800</date>
            <delta_ts>2014-12-24 21:44:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139939-2.diff</filename>
            <type>text/plain</type>
            <size>304228</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDRkMWQzLi45YjQzYWVmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MzggQEAKKzIwMTQtMTItMjQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisg
ICAgICAgIENvbnZlcnQgbW9yZSBjcmVhdG9yIGZ1bmN0aW9ucyB0byByZXR1cm4gUmVmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTkzOT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0
IGEgc2xldyBvZiBmdW5jdGlvbnMgdG8gcmV0dXJuIFJlZjxUPiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHI8VD4KKyAgICAgICAgd2hlcmUgdGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIG5ldmVyIGJl
IG51bGwuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVzOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50Ojppc29sYXRlZFdvcmxkKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5hbHlzZXJOb2RlOjpj
cmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OmNyZWF0
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnZvbHZlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWxheU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5Tm9kZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNzQ29tcHJlc3Nvck5vZGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlBUklBR3JpZDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RC
b3g6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJv
eC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5U1ZHUm9vdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTVkdSb290Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y3Jl
YXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNyZWF0ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVNwaW5CdXR0b25QYXJ0OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b24uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDb2x1bW46OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvRE9NV3JhcHBlcldv
cmxkLmg6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpnZXRKU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Q0luc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXlQYWlyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlQYWlyOjpjcmVhdGUpOgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tl
eUhNQUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9LZXlSU0E6OmdlbmVyYXRlUGFpcik6CisgICAgICAgICogY3NzL0RPTVdpbmRvd0NTUy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dDU1M6OmNyZWF0ZSk6CisgICAgICAgICogY3Nz
L0RPTVdpbmRvd0NTUy5oOgorICAgICAgICAqIGNzcy9EYXNoYm9hcmRSZWdpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhc2hib2FyZFJlZ2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvRm9u
dExvYWRlci5oOgorICAgICAgICAqIGRvbS9ET01FcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6
RE9NRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RPTVN0cmluZ0xpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVN0cmluZ0xpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RhdGFU
cmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmg6CisgICAgICAgICogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uRGF0
YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9u
RGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlTW90aW9uRGF0YS5oOgorICAg
ICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkRhdGEuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpE
aWN0YXRpb25NYXJrZXJEZXRhaWxzOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQnJl
YWtCbG9ja3F1b3RlQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6QnJlYWtCbG9ja3F1b3Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUxpbmtD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bk1hcmtlclN1cHBsaWVyOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGlu
Z1N0eWxlOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmFwcGx5UGFyYWdyYXBoU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3JtYXRCbG9ja0NvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGluZUJyZWFr
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFu
ZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5jcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVjcmVhc2VTZWxlY3Rp
b25MaXN0TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW1vdmVGb3JtYXRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldE5v
ZGVBdHRyaWJ1dGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU2V0U2VsZWN0
aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0U2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxpZnlNYXJrdXBDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwbGl0RWxlbWVudENv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1VubGlua0Nv
bW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVubGlua0NvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmg6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25Db21tYW5kSU9TOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5o
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2I6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNsaWNlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJT
eW5jLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyU3luYzo6Y3JlYXRlKToKKyAgICAg
ICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvRE9N
VVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL0RPTVVSTC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwbHVnSW5JbWFnZUVsZW1lbnRJc29sYXRlZFdvcmxkKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzR3JhZGllbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGF0
dGVybi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQYXR0ZXJuOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9ET01QYXRoLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKiBo
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tM
aXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9EYXRhQ3VlLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21tYW5kTGlu
ZUFQSUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9z
dC5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgICogbG9h
ZGVyL0Zvcm1TdGF0ZS5oOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uaDoKKyAgICAgICAgKiBsb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpjcmVhdGUpOgorICAgICAg
ICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2FyY2hp
dmUvQXJjaGl2ZVJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RW51bUNhbGxiYWNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6T2JqZWN0Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvblJlY29yZC5oOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAqIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1h
dGhFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
OgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFRl
eHRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQmFyUHJvcC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFyUHJvcDo6
Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5oOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVNlY3VyaXR5UG9saWN5OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uv
RE9NU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd0V4
dGVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9uOjpjcmVhdGUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpj
cmVhdGVCdWZmZXJGcm9tUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0
ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNy
ZWF0ZUJ5TWl4aW5nVG9Nb25vKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZTo6bnVsbEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzdGFudExpZ2h0U291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5k
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVDb21wb3NpdGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4Ojpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdl
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZz
ZXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVu
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJhd0RhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpjcmVhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCaWRpQ29udGV4dDo6Y3JlYXRlVW5jYWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qmlk
aUNvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5o
OgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1pbWVUeXBlOjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTU1pbWVUeXBlQXJyYXk6Om5hbWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lu
cy9ET01NaW1lVHlwZUFycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5
OjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBsdWdpbjo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01QbHVnaW46Om5h
bWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBsdWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpuYW1lZEl0ZW0pOgorICAgICAgICAqIHBsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRp
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q291bnRlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NvdW50ZXJO
b2RlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNv
ckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmluZ0lucHV0Q3Vyc29yOjpjcmVhdGUpOgorICAg
ICAgICAqIHJlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oOgorICAgICAgICAqIHN0b3JhZ2Uv
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlOjpjcmVhdGUpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRl
KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpjcmVhdGUp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZVN5bmNNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oOgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgICog
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
KToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAg
ICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkV29ya2VyVGhyZWFkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
VGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9TaGFy
ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvY2F0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJMb2NhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogeG1sL0RPTVBhcnNl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAqIHht
bC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZVhQYXRo
TlNSZXNvbHZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpmbHVzaFByb2dyZXNzRXZlbnQpOgorICAgICAgICAqIHhtbC9YTUxT
ZXJpYWxpemVyLmg6CisgICAgICAgIChXZWJDb3JlOjpYTUxTZXJpYWxpemVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhF
dmFsdWF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogeG1sL1hQYXRoUmVzdWx0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYUGF0aFJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVT
aGVldC5oOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpYU0xUUHJvY2Vzc29yOjpjcmVhdGUpOgorCiAyMDE0LTEyLTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgUmVuZGVyU3R5bGU6OmludmFsaWRD
b2xvcigpIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0Nvb3JkaW5hdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmgKaW5kZXggZmIxMzRhNS4uNWNiM2NmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaApAQCAtMzMsOSArMzMsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvb3JkaW5hdGVzIDogcHVibGljIFJlZkNv
dW50ZWQ8Q29vcmRpbmF0ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29y
ZGluYXRlcz4gY3JlYXRlKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91Ymxl
IHNwZWVkKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZXMobGF0aXR1ZGUsIGxvbmdp
dHVkZSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0
dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywg
cHJvdmlkZXNTcGVlZCwgc3BlZWQpKTsgfQorICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNy
ZWF0ZShkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRp
bmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhsYXRpdHVkZSwgbG9uZ2l0dWRlLCBwcm92
aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92aWRlc1Nw
ZWVkLCBzcGVlZCkpOyB9CiAKLSAgICBQYXNzUmVmUHRyPENvb3JkaW5hdGVzPiBpc29sYXRlZENv
cHkoKSBjb25zdAorICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKG1fbGF0aXR1ZGUsIG1fbG9u
Z2l0dWRlLCBtX2NhblByb3ZpZGVBbHRpdHVkZSwgbV9hbHRpdHVkZSwgbV9hY2N1cmFjeSwgbV9j
YW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgbV9hbHRpdHVkZUFjY3VyYWN5LCBtX2NhblByb3Zp
ZGVIZWFkaW5nLCBtX2hlYWRpbmcsIG1fY2FuUHJvdmlkZVNwZWVkLCBtX3NwZWVkKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCmluZGV4IDg3MmE1
NGUuLjA4MjM5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
Y3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzCiB2b2lkIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYg
ZXJyb3IpCiB7CiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKLSAgICAgICAgbV9lcnJvckNhbGxi
YWNrLT5oYW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5nZXQoKSk7CisgICAgICAg
IG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNyZWF0ZShlcnJvcikucHRy
KCkpOwogCiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IDJkNDI1MTMu
LmQxMGQxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFJU
Q1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jl
c3BvbnNlQmFzZT4gcmVzcAogdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVk
KGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKLSAgICAg
ICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5n
ZXQoKSk7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNy
ZWF0ZShlcnJvcikucHRyKCkpOwogCiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApp
bmRleCAxMTYxMTU4Li5kOTA3NTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKIHZvaWQgUlRD
Vm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjay5nZXQoKSkKLSAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5o
YW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5nZXQoKSk7CisgICAgICAgIG1fZXJy
b3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNyZWF0ZShlcnJvcikucHRyKCkpOwog
CiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCA0ZDJjYzQ3Li4y
YjVjNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC0xNDUsNyArMTQ1LDcgQEAgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoSFRNTFAKIAogRE9NV3JhcHBlcldvcmxkJiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aXNvbGF0ZWRXb3JsZCgpCiB7Ci0gICAgc3RhdGljIERPTVdyYXBwZXJXb3Js
ZCYgaXNvbGF0ZWRXb3JsZCA9ICpET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSkubGVha1JlZigpOworICAgIHN0YXRpYyBET01XcmFwcGVyV29ybGQmIGlzb2xh
dGVkV29ybGQgPSBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KSkubGVha1JlZigpOwogICAgIHJldHVybiBpc29sYXRlZFdvcmxkOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAppbmRleCAyOTBjNjdhLi42
MzVlNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJO
b2RlLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmFs
eXNlck5vZGUgOiBwdWJsaWMgQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEFuYWx5c2VyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPEFuYWx5c2VyTm9kZT4gY3Jl
YXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQW5hbHlzZXJOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUp
KTsgICAgICAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5hbHlzZXJOb2RlKGNvbnRl
eHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5BbmFseXNlck5vZGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAKaW5k
ZXggZTJmZjFjNi4uMzFkYTk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5jcHAKQEAgLTQzLDE5ICs0MywxOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGUodW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1w
bGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICBpZiAoc2FtcGxlUmF0ZSA8IDIyMDUwIHx8IHNhbXBsZVJhdGUgPiA5NjAwMCB8
fCBudW1iZXJPZkNoYW5uZWxzID4gQXVkaW9Db250ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkg
fHwgIW51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVmZmVyKG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9m
RnJhbWVzLCBzYW1wbGVSYXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9CdWZm
ZXIobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKTsKIH0KIAot
UGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9CdWZmZXI6OmNyZWF0ZUZyb21BdWRpb0ZpbGVE
YXRhKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZs
b2F0IHNhbXBsZVJhdGUpCitSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGVG
cm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wg
bWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gYnVz
ID0gY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGRhdGEsIGRhdGFTaXplLCBtaXhUb01v
bm8sIHNhbXBsZVJhdGUpOwogICAgIGlmIChidXMuZ2V0KCkpCi0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQXVkaW9CdWZmZXIoYnVzLmdldCgpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEF1ZGlvQnVmZmVyKGJ1cy5nZXQoKSkpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgKaW5kZXgg
MGNlMzI2MS4uZTczYmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXIuaApAQCAtNDMsMTAgKzQzLDEwIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiAKIGNsYXNzIEF1ZGlvQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXVkaW9CdWZmZXI+
IHsKIHB1YmxpYzogICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRl
KHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQg
c2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlKHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxl
UmF0ZSk7CiAKICAgICAvLyBSZXR1cm5zIDAgaWYgZGF0YSBpcyBub3QgYSB2YWxpZCBhdWRpbyBm
aWxlLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVGcm9tQXVkaW9G
aWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25v
LCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVh
dGVGcm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJv
b2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIEZvcm1hdAogICAgIHNp
emVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3Bw
CmluZGV4IDQ1ZmRjYjcuLjEzYmNhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTQ5LDkgKzQ5
LDkgQEAgY29uc3QgZG91YmxlIERlZmF1bHRHcmFpbkR1cmF0aW9uID0gMC4wMjA7IC8vIDIwbXMK
IC8vIHRvIG1pbmltaXplIGxpbmVhciBpbnRlcnBvbGF0aW9uIGFsaWFzaW5nLgogY29uc3QgZG91
YmxlIE1heFJhdGUgPSAxMDI0OwogCi1QYXNzUmVmUHRyPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4g
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9h
dCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4gQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlOjpjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQs
IHNhbXBsZVJhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkpOwogfQogCiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OkF1ZGlvQnVmZmVyU291cmNlTm9kZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCBmYzBmYWQ1Li4yMDQ5MTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXVkaW9Db250ZXh0OwogCiBjbGFzcyBBdWRpb0J1
ZmZlclNvdXJjZU5vZGUgOiBwdWJsaWMgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlclNvdXJjZU5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvQnVm
ZmVyU291cmNlTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCosIGZsb2F0IHNhbXBsZVJhdGUpOwog
CiAgICAgdmlydHVhbCB+QXVkaW9CdWZmZXJTb3VyY2VOb2RlKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA3ZjM2ZTI2Li43
Nzg2ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OmlzU2FtcGxl
UmF0ZVJhbmdlR29vZChmbG9hdCBzYW1wbGVSYXRlKQogY29uc3QgdW5zaWduZWQgTWF4SGFyZHdh
cmVDb250ZXh0cyA9IDQ7CiB1bnNpZ25lZCBBdWRpb0NvbnRleHQ6OnNfaGFyZHdhcmVDb250ZXh0
Q291bnQgPSAwOwogICAgIAotUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+IEF1ZGlvQ29udGV4dDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8QXVk
aW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDEyM2QzOTEuLjYyODEz
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aApAQCAtNzcsMTAgKzc3LDcgQEAgY2xhc3MgUGVyaW9kaWNXYXZlOwogY2xhc3MgQXVkaW9Db250
ZXh0IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEF1ZGlvQ29udGV4dD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMg
TWVkaWFDYW5TdGFydExpc3RlbmVyLCBwdWJsaWMgQXVkaW9Qcm9kdWNlciB7CiBwdWJsaWM6CiAg
ICAgLy8gQ3JlYXRlIGFuIEF1ZGlvQ29udGV4dCBmb3IgcmVuZGVyaW5nIHRvIHRoZSBhdWRpbyBo
YXJkd2FyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+IGNyZWF0ZShEb2N1
bWVudCYsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIC8vIENyZWF0ZSBhbiBBdWRpb0NvbnRleHQg
Zm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkgcmVuZGVyaW5nLgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEF1ZGlvQ29udGV4dD4gY3JlYXRlT2ZmbGluZUNvbnRleHQoRG9jdW1lbnQqLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJh
dGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQ29udGV4dD4gY3Jl
YXRlKERvY3VtZW50JiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVhbCB+QXVkaW9Db250
ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9MaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmgKaW5kZXggMDlmYWQ2MC4uMzc5MzA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0xpc3RlbmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXVk
aW9MaXN0ZW5lcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvTGlzdGVu
ZXI+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxBdWRpb0xpc3RlbmVyPiBjcmVhdGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb0xpc3RlbmVyKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0xpc3RlbmVyKTsKICAgICB9CiAKICAgICAvLyBQ
b3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaApp
bmRleCA5YjQ3ZWE4Li5kNGU0MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBEZWZhdWx0U21vb3RoaW5nQ29uc3RhbnQ7CiAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSBTbmFwVGhyZXNob2xkOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9QYXJhbT4g
Y3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUg
ZGVmYXVsdFZhbHVlLCBkb3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQg
dW5pdHMgPSAwKQorICAgIHN0YXRpYyBSZWY8QXVkaW9QYXJhbT4gY3JlYXRlKEF1ZGlvQ29udGV4
dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZGVmYXVsdFZhbHVlLCBkb3Vi
bGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQgdW5pdHMgPSAwKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1BhcmFtKGNvbnRleHQsIG5hbWUsIGRl
ZmF1bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCB1bml0cykpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBdWRpb1BhcmFtKGNvbnRleHQsIG5hbWUsIGRlZmF1bHRWYWx1ZSwgbWlu
VmFsdWUsIG1heFZhbHVlLCB1bml0cykpOwogICAgIH0KIAogICAgIC8vIEF1ZGlvU3VtbWluZ0p1
bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZEZpbHRlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmls
dGVyTm9kZS5oCmluZGV4IGRkZTJhZWMuLjRmZjQxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5oCkBAIC00Niw5ICs0Niw5IEBA
IHB1YmxpYzoKICAgICAgICAgQUxMUEFTUyA9IDcKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QmlxdWFkRmlsdGVyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxv
YXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPEJpcXVhZEZpbHRlck5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEJpcXVhZEZpbHRlck5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkp
OyAgICAgIAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXF1YWRGaWx0ZXJOb2RlKGNv
bnRleHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAKICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaAppbmRl
eCA0NDE3YTAxLi5lMGQzNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnZvbHZlck5vZGUuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBSZXZlcmI7CiAgICAg
CiBjbGFzcyBDb252b2x2ZXJOb2RlIDogcHVibGljIEF1ZGlvTm9kZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q29udm9sdmVyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPENvbnZvbHZlck5vZGU+IGNy
ZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbnZvbHZlck5vZGUoY29udGV4dCwgc2FtcGxlUmF0
ZSkpOyAgICAgIAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb252b2x2ZXJOb2RlKGNv
bnRleHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+Q29udm9sdmVy
Tm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxh
eU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2RlLmgKaW5k
ZXggZGE2MWU2OS4uNzY4NjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0RlbGF5Tm9kZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9CYXNpY1Byb2Nl
c3Nvck5vZGUuaCIKICNpbmNsdWRlICJEZWxheVByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIEF1
ZGlvUGFyYW07CiAKIGNsYXNzIERlbGF5Tm9kZSA6IHB1YmxpYyBBdWRpb0Jhc2ljUHJvY2Vzc29y
Tm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGVsYXlOb2RlPiBjcmVhdGUo
QXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCBkb3VibGUgbWF4RGVsYXlU
aW1lLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBzdGF0aWMgUmVmPERlbGF5Tm9kZT4gY3JlYXRl
KEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgZG91YmxlIG1heERlbGF5
VGltZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERlbGF5Tm9kZShjb250ZXh0LCBzYW1wbGVSYXRlLCBtYXhEZWxheVRpbWUsIGVjKSk7ICAg
ICAgCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGF5Tm9kZShjb250ZXh0LCBzYW1w
bGVSYXRlLCBtYXhEZWxheVRpbWUsIGVjKSk7CiAgICAgfQogCiAgICAgQXVkaW9QYXJhbSogZGVs
YXlUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RHluYW1pY3NDb21wcmVzc29yTm9kZS5oCmluZGV4IDEyM2MwY2EuLjFiMmQzYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVz
c29yTm9kZS5oCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIER5bmFtaWNzQ29tcHJlc3NvcjsKIAog
Y2xhc3MgRHluYW1pY3NDb21wcmVzc29yTm9kZSA6IHB1YmxpYyBBdWRpb05vZGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPER5bmFtaWNzQ29tcHJlc3Nvck5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgc3RhdGljIFJlZjxE
eW5hbWljc0NvbXByZXNzb3JOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9h
dCBzYW1wbGVSYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEeW5hbWlj
c0NvbXByZXNzb3JOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRHluYW1pY3NDb21wcmVzc29yTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+RHluYW1pY3NDb21wcmVzc29yTm9kZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3Jh
cHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9u
V3JhcHBlci5oCmluZGV4IGFlMzhiZjUuLjg3NzBlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFw
cGVyIDogcHVibGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q2hhbmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG9s
ZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3
IENoYW5nZVZlcnNpb25XcmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0
YXRpYyBSZWY8Q2hhbmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG9sZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
aGFuZ2VWZXJzaW9uV3JhcHBlcihvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKSk7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBwZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uQmFja2VuZCopOwogICAg
IHZpcnR1YWwgYm9vbCBwZXJmb3JtUG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VBdXRob3JpemVyLmNwcAppbmRleCBlYWJhMWY0Li5jZDkzMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIu
Y3BwCkBAIC0zNCw5ICszNCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VJbmZvVGFibGVOYW1lKQorUmVmPERhdGFiYXNlQXV0aG9yaXplcj4gRGF0
YWJhc2VBdXRob3JpemVyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUluZm9UYWJsZU5h
bWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhYmFzZUF1dGhvcml6ZXIoZGF0YWJh
c2VJbmZvVGFibGVOYW1lKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VBdXRo
b3JpemVyKGRhdGFiYXNlSW5mb1RhYmxlTmFtZSkpOwogfQogCiBEYXRhYmFzZUF1dGhvcml6ZXI6
OkRhdGFiYXNlQXV0aG9yaXplcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
QXV0aG9yaXplci5oCmluZGV4IDcyZGYzZjEuLmVlNDA4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuaApAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIE5vQWNjZXNzTWFzayA9IDEgPDwgMgogICAg
IH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFtZSk7CisgICAgc3RhdGljIFJlZjxEYXRh
YmFzZUF1dGhvcml6ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFt
ZSk7CiAKICAgICBpbnQgY3JlYXRlVGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpOwogICAg
IGludCBjcmVhdGVUZW1wVGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCmluZGV4
IDdhOGE2ZWIuLjc1NWE3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01l
c3NhZ2VRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtNTAsNyArNDksNyBA
QCBjbGFzcyBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yOwogCiBjbGFzcyBEYXRhYmFzZVRocmVh
ZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEYXRhYmFzZVRocmVhZD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFiYXNlVGhyZWFkPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgRGF0YWJhc2VUaHJlYWQpOyB9CisgICAgc3RhdGljIFJlZjxEYXRhYmFz
ZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhYmFzZVRocmVhZCk7
IH0KICAgICB+RGF0YWJhc2VUaHJlYWQoKTsKIAogICAgIGJvb2wgc3RhcnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGIwM2QxZDQuLjgzYzY4MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNDk4LDcg
KzQ5OCw3IEBAIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6CiAgICAgICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgY29udGV4dC5pc0RvY3VtZW50KCkpOwogICAgICAgICBBU1NFUlQocGVlcik7CiAK
LSAgICAgICAgcGVlci0+c2VuZCgqQmxvYjo6ZGVzZXJpYWxpemUoY2FwdHVyZWRVUkwudXJsKCks
IGNhcHR1cmVkVHlwZS5zdHJpbmcoKSwgc2l6ZSkpOworICAgICAgICBwZWVyLT5zZW5kKEJsb2I6
OmRlc2VyaWFsaXplKGNhcHR1cmVkVVJMLnVybCgpLCBjYXB0dXJlZFR5cGUuc3RyaW5nKCksIHNp
emUpKTsKICAgICB9KTsKIAogICAgIFJlZjxCcmlkZ2U+IHByb3RlY3QoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDk3YjNi
My4uYTAwYjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCkBAIC0yNjYsNyArMjY2LDcgQEAgYm9vbCBub2RlSGFzUm9sZShOb2RlKiBub2Rl
LCBjb25zdCBTdHJpbmcmIHJvbGUpCiAgICAgcmV0dXJuIFNwYWNlU3BsaXRTdHJpbmcocm9sZVZh
bHVlLCB0cnVlKS5jb250YWlucyhyb2xlKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CitzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXIt
Pm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50PwogICAgIE5vZGUqIG5vZGUgPSByZW5kZXJl
ci0+bm9kZSgpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyCiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZShyZW5kZXJlcik7CiB9
CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21Ob2Rl
KE5vZGUqIG5vZGUpCitzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21O
b2RlKE5vZGUqIG5vZGUpCiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpj
cmVhdGUobm9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKaW5kZXggOWFkYjgxZi4uNjVjMGFhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApAQCAtNDksOSArNDksOSBAQCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6On5BY2Nlc3Np
YmlsaXR5QVJJQUdyaWQoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZD4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
K1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ+IEFjY2Vzc2liaWxpdHlBUklBR3JpZDo6Y3JlYXRl
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWQocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQocmVuZGVyZXIpKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWQ6OmFkZFRhYmxlQ2VsbENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNoaWxkLCBI
YXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3QqPiYgYXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29s
dW1uQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5QVJJQUdyaWQuaAppbmRleCA4MmVlZTg5Li5mMTZjYjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgKQEAgLTM5
LDcgKzM5LDcgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOwogCiBj
bGFzcyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRh
YmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQ+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlB
UklBR3JpZD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlBUklBR3JpZCgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKaW5kZXggMTA0YzhhNi4uN2QzYzU3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZENlbGwuY3BwCkBAIC00NCw5ICs0NCw5IEBAIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6
On5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsPiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsPiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwocmVuZGVy
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
KHJlbmRlcmVyKSk7CiB9CiAKIEFjY2Vzc2liaWxpdHlUYWJsZSogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbDo6cGFyZW50VGFibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaAppbmRleCA1NTg2YjA3
Li4xNzcwMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZENlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsIGZpbmFsIDog
cHVibGljIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsK
KyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKCk7CiAgICAg
CiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFuZCByb3cgc3BhbiBvZiBjZWxs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5jcHAKaW5kZXggYjcyNWExNy4uNjllZTUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
LmNwcApAQCAtNDQsOSArNDQsOSBAQCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6On5BY2Nlc3Np
YmlsaXR5QVJJQUdyaWRSb3coKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdz4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cocmVuZGVyZXIpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmlzQVJJQVRyZWVHcmlkUm93KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5oCmluZGV4IDQ3YjE2YjEuLmJmMWExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaApA
QCAtMzcsNyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGU7CiAgICAgCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRhYmxl
Um93IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRSb3c+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdz4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlBUklBR3JpZFJvdygpOwogICAgIAogICAgIHZvaWQgZGlzY2xvc2VkUm93cyhBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwCmluZGV4IDlhOWFm
YjQuLjk2YmMxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcApAQCAtNDksOSArNDksOSBAQCBBY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjp+QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpCiB7CiB9
ICAgIAogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms+IEFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbms6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaz4g
QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpKTsKIH0KIAogQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6cGFyZW50T2JqZWN0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKaW5kZXggN2U3YzkxNi4uNjlhN2UyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluayBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
az4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rPiBj
cmVhdGUoKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKCk7CiAgICAg
CiAgICAgdm9pZCBzZXRIVE1MQXJlYUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50KiBlbGVtZW50KSB7
IG1fYXJlYUVsZW1lbnQgPSBlbGVtZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCmluZGV4IDMyN2QyYTEuLmIyNzAzYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCkBAIC00OSw5ICs0OSw5IEBAIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxp
c3QoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5
TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eUxp
c3Q+IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlMaXN0KHJlbmRlcmVyKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdC5oCmluZGV4IDk3NmUyYmQuLmMyZTViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUxpc3QgZmluYWwgOiBwdWJs
aWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eUxpc3QoKTsKICAgICAKICAgICBib29sIGlzVW5vcmRlcmVkTGlz
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0Qm94LmNwcAppbmRleCBhMzYwZGQzLi43ZmM2OGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcApA
QCAtNDksMTAgKzQ5LDEwIEBAIEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpBY2Nlc3NpYmlsaXR5TGlz
dEJveChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogQWNjZXNzaWJpbGl0eUxpc3RCb3g6On5BY2Nl
c3NpYmlsaXR5TGlzdEJveCgpCiB7CiB9Ci0gICAgCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlM
aXN0Qm94PiBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCisKK1JlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QWNjZXNzaWJpbGl0eUxpc3RCb3gocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBY2Nlc3NpYmlsaXR5TGlzdEJveChyZW5kZXJlcikpOwogfQogICAgIAogYm9vbCBBY2Nlc3Np
YmlsaXR5TGlzdEJveDo6Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
LmgKaW5kZXggMTVjOTg0NS4uYWQyZGYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaApAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0Qm94IGZpbmFsIDogcHVi
bGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlMaXN0Qm94PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAg
c3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0Qm94KCk7CiAgICAgCiAgICAgdmlydHVhbCBi
b29sIGNhblNldFNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggY2FhNmRiMC4uMTE4OGVjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5jcHAKQEAgLTU0LDkgKzU0LDkgQEAgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246On5B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbigpCiB7CiB9ICAgIAogICAgIAotUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNy
ZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24+IEFjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24oKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24oKSk7CiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlMaXN0Qm94
T3B0aW9uOjppc0VuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCmluZGV4IDRiZWE3MTku
LjMxYzQzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSFRN
TFNlbGVjdEVsZW1lbnQ7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gY3JlYXRlKCk7CisgICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gY3JlYXRlKCk7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24oKTsKICAgICAKICAgICB2b2lkIHNldEhUTUxF
bGVtZW50KEhUTUxFbGVtZW50KiBlbGVtZW50KSB7IG1fb3B0aW9uRWxlbWVudCA9IGVsZW1lbnQ7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9scy5jcHAKaW5kZXggODg3YmI5OS4uYTU5ZDE2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bDo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewog
fQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogewogICAgIEFTU0VSVChyZW5kZXJlci0+bm9kZSgpKTsKIApAQCAtNjksNyArNjks
NyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbChy
ZW5kZXJlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sKHJlbmRlcmVyKSk7CiAgICAgfQogfQogCkBAIC0yMjIsOSArMjIyLDkgQEAgQWNj
ZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzQ29udGFpbmVyKFJlbmRlck8KIHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHNDb250YWluZXI6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWlu
ZXIocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sc0NvbnRhaW5lcihyZW5kZXJlcikpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0
CkBAIC0yNjYsOSArMjY2LDkgQEAgQWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OkFjY2Vzc2li
aWxpdHlNZWRpYVRpbWVsaW5lKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lKHJl
bmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhVGlt
ZWxpbmUocmVuZGVyZXIpKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5l
Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTI5Niw5ICsyOTYsOSBAQCBBY2Nlc3NpYmls
aXR5TWVkaWFUaW1lRGlzcGxheTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVuZGVy
T2JqZWN0KiByZW5kZQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJl
cikKK1JlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxh
eTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheShyZW5kZXJlcikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5KHJlbmRlcmVyKSk7
CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaAppbmRleCBiYzZiZDU0Li5h
MGNlNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wgOiBwdWJsaWMgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbCgpIHsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTYzLDcgKzYzLDcgQEAg
cHJpdmF0ZToKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lIGZpbmFsIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlTbGlkZXIgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1
YWwgfkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lKCkgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBoZWxwVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgog
Y2xhc3MgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIgZmluYWwgOiBwdWJsaWMg
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbCB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAg
dmlydHVhbCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIoKSB7IH0KIAogICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gVG9vbGJhclJvbGU7IH0KQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2wgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5KCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFwcGxpY2F0aW9uVGlt
ZXJSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXggYTlkZjFkOC4uMTQ3YWNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNw
cApAQCAtMzcsOSArMzcsOSBAQCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OkFjY2Vzc2liaWxpdHlN
ZW51TGlzdChSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0PiBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZShSZW5kZXJN
ZW51TGlzdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eU1lbnVMaXN0PiBBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OmNyZWF0ZShSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OnByZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4IGJjNzVj
MTcuLmMwODFhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBSZW5kZXJNZW51
TGlzdDsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlNZW51TGlzdD4gY3JlYXRlKFJlbmRlck1lbnVMaXN0KiByZW5kZXJlcik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IGNyZWF0ZShSZW5kZXJNZW51TGlz
dCogcmVuZGVyZXIpOwogCiAgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIHByZXNzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaAppbmRleCBlMTNjNWZiLi5iNjgxNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKQEAgLTM1
LDcgKzM1LDcgQEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
KTsgfQorICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbik7IH0K
IAogICAgIHZvaWQgc2V0RWxlbWVudChIVE1MRWxlbWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgK
aW5kZXggMmIzNTMwZS4uNmI0ZDIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtMzcsNyArMzcs
NyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOyB9
CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cD4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCk7IH0KIAogICAg
IHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNPZmZTY3JlZW4oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggNWIx
Zjc2Yi4uNWNmOWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTExNyw5ICsxMTcsOSBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppbml0KCkKICAgICBtX3JvbGUgPSBkZXRlcm1pbmVB
Y2Nlc3NpYmlsaXR5Um9sZSgpOwogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0PiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKE5vZGUqIG5vZGUpCitSZWY8QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q+IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjcmVhdGUoTm9k
ZSogbm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0KG5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdChub2RlKSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGFjaChB
Y2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDEzODNkY2EuLjNlNzU3MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
QEAgLTYyLDcgKzYyLDcgQEAgZW51bSBNb3VzZUJ1dHRvbkxpc3RlbmVyUmVzdWx0RmlsdGVyIHsK
IAogY2xhc3MgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU9i
amVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q+IGNyZWF0ZShOb2RlKik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdD4gY3JlYXRlKE5vZGUqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluaXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yLmNwcAppbmRleCBhYWYwYzZjLi5mM2ExM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuY3BwCkBAIC0zOCw5ICszOCw5IEBAIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvcjo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKFJlbmRlclByb2dyZXNzKiByCiB7
CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBBY2Nlc3Np
YmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJQcm9ncmVzcyogcmVuZGVyZXIp
CitSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBBY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJQcm9ncmVzcyogcmVuZGVyZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IocmVuZGVyZXIpKTsKIH0KICAgICAKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKQEAgLTQ5
LDkgKzQ5LDkgQEAgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpBY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IoUmVuZGVyTWV0ZXIqIHJlbmQKIHsKIH0KIAotUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvcjo6Y3JlYXRlKFJlbmRlck1ldGVyKiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKFJl
bmRlck1ldGVyKiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2li
aWxpdHlQcm9ncmVzc0luZGljYXRvcihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihyZW5kZXJlcikpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCmluZGV4IDBjNDgwZjYuLmY1OGYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaApAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBSZW5kZXJQcm9n
cmVzczsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvciBmaW5hbCA6
IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IGNyZWF0ZShSZW5kZXJQ
cm9ncmVzcyopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
PiBjcmVhdGUoUmVuZGVyUHJvZ3Jlc3MqKTsKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IGNyZWF0
ZShSZW5kZXJNZXRlciopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yPiBjcmVhdGUoUmVuZGVyTWV0ZXIqKTsKICNlbmRpZgogICAgIHZpcnR1YWwgRWxlbWVu
dCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA4
NGQ4Y2NjLi43Y2FlN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEzMiw5ICsxMzIsOSBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluaXQoKQogICAgIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppbml0KCk7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdD4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikp
OwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGFjaChBY2Nlc3NpYmls
aXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaAppbmRleCA2YTNjMWViLi5lOTU4MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApA
QCAtNTgsNyArNTgsNyBAQCBjbGFzcyBXaWRnZXQ7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUo
UmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluaXQoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAK
aW5kZXggZTJhZDAwZi4uMmI2MmQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgQWNj
ZXNzaWJpbGl0eVNWR1Jvb3Q6On5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IEFjY2Vzc2liaWxpdHlTVkdSb290OjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gQWNjZXNz
aWJpbGl0eVNWR1Jvb3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNWR1Jvb3QocmVuZGVyZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U1ZHUm9vdChyZW5kZXJlcikpOwogfQog
ICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OnBhcmVudE9i
amVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTVkdSb290LmgKaW5kZXggMGI4MmZlZS4uNDRlZWRjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTVkdS
b290IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTVkdSb290PiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gY3JlYXRlKFJl
bmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTVkdSb290KCk7CiAgICAg
CiAgICAgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KSB7IG1fcGFy
ZW50ID0gcGFyZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IGM5MDAwOTguLjJlNTY2ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuY3BwCkBAIC01NCw5ICs1NCw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXc6OmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUs
CiAgICAgbV9zY3JvbGxWaWV3ID0gbnVsbHB0cjsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5U2Nyb2xsVmlldz4gQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNyZWF0ZShTY3JvbGxWaWV3
KiB2aWV3KQorUmVmPEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3PiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldzo6Y3JlYXRlKFNjcm9sbFZpZXcqIHZpZXcpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyh2aWV3KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcodmlldykpOwogfQogICAgIAogQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnNjcm9sbEJhcihBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggOTE1MTljOC4uYzYyYzc1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBTY3JvbGxWaWV3OwogICAg
IAogY2xhc3MgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJp
bGl0eU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXc+IGNyZWF0ZShTY3JvbGxWaWV3Kik7ICAgIAorICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXc+IGNyZWF0ZShTY3JvbGxWaWV3Kik7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTY3Jv
bGxBcmVhUm9sZTsgfQogICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbFZpZXc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAKaW5kZXggZWVkYzI2OS4uOGY4MWU4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6
OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAgQVNTRVJU
KHNjcm9sbGJhcik7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNjcm9sbGJhcj4gQWNj
ZXNzaWJpbGl0eVNjcm9sbGJhcjo6Y3JlYXRlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQorUmVmPEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXI+IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNyZWF0ZShTY3Jv
bGxiYXIqIHNjcm9sbGJhcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxp
dHlTY3JvbGxiYXIoc2Nyb2xsYmFyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVNjcm9sbGJhcihzY3JvbGxiYXIpKTsKIH0KICAgICAKIExheW91dFJlY3QgQWNjZXNz
aWJpbGl0eVNjcm9sbGJhcjo6ZWxlbWVudFJlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAppbmRleCA0Mzcw
NDQ5Li4yYWYzYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTY3JvbGxi
YXI7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIgZmluYWwgOiBwdWJsaWMgQWNjZXNz
aWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlTY3JvbGxiYXI+IGNyZWF0ZShTY3JvbGxiYXIqKTsKKyAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXI+IGNyZWF0ZShTY3JvbGxiYXIqKTsKIAogICAgIFNjcm9sbGJh
ciogc2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNl
YXJjaEZpZWxkQnV0dG9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuY3BwCmluZGV4IDNkNGU3MGMuLmNhZmE3MzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJj
aEZpZWxkQnV0dG9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uPiBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OmNyZWF0ZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbj4gQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2li
aWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihyZW5kZXJlcikp
OwogfQogCiBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OkFjY2Vzc2liaWxp
dHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmll
bGRCdXR0b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
ZWFyY2hGaWVsZEJ1dHRvbnMuaAppbmRleCA5NmY1OGJlLi5lYjY0YTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRv
bnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFy
Y2hGaWVsZEJ1dHRvbnMuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbiBmaW5hbCA6IHB1Ymxp
YyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbj4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+Jikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmNwcAppbmRleCA2Yjg3MGE2Li5kN2JhOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTQ1LDkgKzQ1LDkg
QEAgQWNjZXNzaWJpbGl0eVNsaWRlcjo6QWNjZXNzaWJpbGl0eVNsaWRlcihSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTbGlkZXI+IEFjY2Vz
c2liaWxpdHlTbGlkZXI6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vz
c2liaWxpdHlTbGlkZXI+IEFjY2Vzc2liaWxpdHlTbGlkZXI6OmNyZWF0ZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNsaWRl
cihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTbGlk
ZXIocmVuZGVyZXIpKTsKIH0KIAogQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2liaWxp
dHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKQEAgLTE0Niw5ICsxNDYsOSBAQCBBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWI6OkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYigpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iPiBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1
bWI6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iPiBBY2Nlc3NpYmlsaXR5
U2xpZGVyVGh1bWI6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWIoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJp
bGl0eVNsaWRlclRodW1iKCkpOwogfQogICAgIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5U2xp
ZGVyVGh1bWI6OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKaW5kZXggYjBkZDAyMC4uMWYyZTU3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIAogY2xhc3Mg
QWNjZXNzaWJpbGl0eVNsaWRlciA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBjcmVh
dGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBj
cmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRlcigp
IHsgfQogCiBwcm90ZWN0ZWQ6CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlTbGlkZXJUaHVtYiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09i
amVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNsaWRl
clRodW1iPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVt
Yj4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iKCkgeyB9
CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNsaWRlclRodW1iUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAppbmRleCAzY2U5
NDE5Li4wYzUzMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uOjpjcmVhdGUoKQorUmVmPEFjY2Vzc2liaWxpdHlTcGluQnV0
dG9uPiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbik7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5U3Bp
bkJ1dHRvbjo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oKQpAQCAtMTA5LDkgKzEwOSw5IEBAIEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydDo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0KCkK
IHsKIH0KICAgICAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0PiBBY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVNwaW5C
dXR0b25QYXJ0PiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ6OmNyZWF0ZSgpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydCk7CiB9CiAKIExh
eW91dFJlY3QgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0OjplbGVtZW50UmVjdCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmgKaW5kZXggY2U2YTliZC4uZTBjYjZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5
U3BpbkJ1dHRvbiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IGNyZWF0
ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IGNyZWF0ZSgpOwog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uKCk7CiAgICAgCiAgICAgdm9pZCBz
ZXRTcGluQnV0dG9uRWxlbWVudChTcGluQnV0dG9uRWxlbWVudCogc3BpbkJ1dHRvbikgeyBtX3Nw
aW5CdXR0b25FbGVtZW50ID0gc3BpbkJ1dHRvbjsgfQpAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRl
OgogICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQgZmluYWwgOiBwdWJsaWMg
QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlTcGluQnV0dG9uUGFydCgpIHsgfQogICAgIAogICAgIGJvb2wgaXNJbmNyZW1lbnRv
cigpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmNyZW1lbnRvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDY5NmQwNzYu
LmJlMWM0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZS5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFi
bGU6OmluaXQoKQogICAgIG1faXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSA9IGNvbXB1
dGVJc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKTsKIH0KIAotUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGFibGU+IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBBY2Nlc3NpYmlsaXR5VGFi
bGU6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eVRhYmxlOjpoYXNBUklBUm9sZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCBjZDViYmU3Li4xZWZkNjIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUmVuZGVyVGFibGVTZWN0aW9uOwogICAgIAogY2xh
c3MgQWNjZXNzaWJpbGl0eVRhYmxlIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJsZT4gY3Jl
YXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBj
cmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdCgpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAK
aW5kZXggNjYwMmQwNy4uN2NkYWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCkBAIC01MSw5ICs1MSw5IEBA
IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6On5BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCkKIHsKIH0K
IAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwo
cmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsKHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaAppbmRleCA2ODc1OGI1Li44
NTlhMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUNlbGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5
VGFibGU7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsIDogcHVibGljIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2
aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCk7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGlzVGFibGVDZWxsKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKaW5k
ZXggYjUxZWI3NS4uMDJjNGUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcApAQCAtNDksOSArNDksOSBA
QCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46On5BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKQog
ewogfSAgICAKIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+IEFjY2Vzc2li
aWxpdHlUYWJsZUNvbHVtbjo6Y3JlYXRlKCkKK1JlZjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+
IEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbigpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uOjpzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVD
b2x1bW4uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uLmgKaW5kZXggNjdjNDRiOC4uMGRhYzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCkBAIC0zOSw3
ICszOSw3IEBAIGNsYXNzIFJlbmRlclRhYmxlU2VjdGlvbjsKIAogY2xhc3MgQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+IGNy
ZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uPiBjcmVhdGUo
KTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKTsKICAgICAKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyLmNwcAppbmRleCAzZDAzMDdmLi5lMzAxMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXIuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEFjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lcjo6fkFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcigpCiB7CiB9
CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyPiBBY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyPiBBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNy
ZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyKCkpOwogfQogICAgIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5
VGFibGVIZWFkZXJDb250YWluZXI6OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFp
bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oCmluZGV4IDI2NmQxNGMuLmU0Y2U3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXIuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBB
Y2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcj4gY3JlYXRlKCk7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKCk7CiAgICAgCiAgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBUYWJsZUhlYWRlckNvbnRhaW5lclJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAppbmRleCA2NjUyOTVlLi44
NmI4ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVSb3cuY3BwCkBAIC01MSw5ICs1MSw5IEBAIEFjY2Vzc2liaWxpdHlUYWJs
ZVJvdzo6fkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVRhYmxlUm93PiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZShSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRh
YmxlUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhyZW5kZXJlcikpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhyZW5kZXJlcikpOwogfQogCiBBY2Nl
c3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5oCmluZGV4IGYwODkxYmUuLmFhMWZkNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaApAQCAtMzcs
NyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGU7CiAKIGNsYXNzIEFjY2Vzc2liaWxp
dHlUYWJsZVJvdyA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IGNyZWF0ZShSZW5k
ZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gY3JlYXRl
KFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpOwog
CiAgICAgLy8gcmV0cmlldmVzIHRoZSAicm93IiBoZWFkZXIgKGEgdGggdGFnIGluIHRoZSByaWdo
dG1vc3QgY29sdW1uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKaW5kZXggYjk1ZmRjOC4uMmEyMjhkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyIDogcHVibGljIEpTQzo6U291cmNlUHJvdmlkZXIsIHB1
YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXI+IGNyZWF0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdCkpOyB9CisgICAgc3Rh
dGljIFJlZjxDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcj4gY3JlYXRlKENhY2hlZFNjcmlwdCog
Y2FjaGVkU2NyaXB0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyKGNhY2hlZFNjcmlwdCkpOyB9CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlcigpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvRE9NV3JhcHBlcldvcmxkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFw
cGVyV29ybGQuaAppbmRleCBiM2YzNjlhLi5mODhlMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaApAQCAtMzUsOSArMzUsOSBAQCB0eXBlZGVmIEhh
c2hNYXA8dm9pZCosIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0Pj4gRE9NT2JqZWN0V3JhcHBlck1h
cDsKIAogY2xhc3MgRE9NV3JhcHBlcldvcmxkIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NV3JhcHBl
cldvcmxkPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxk
PiBjcmVhdGUoSlNDOjpWTSYgdm0sIGJvb2wgaXNOb3JtYWwgPSBmYWxzZSkKKyAgICBzdGF0aWMg
UmVmPERPTVdyYXBwZXJXb3JsZD4gY3JlYXRlKEpTQzo6Vk0mIHZtLCBib29sIGlzTm9ybWFsID0g
ZmFsc2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVdyYXBwZXJXb3Js
ZCh2bSwgaXNOb3JtYWwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV3JhcHBl
cldvcmxkKHZtLCBpc05vcm1hbCkpOwogICAgIH0KICAgICBXRUJDT1JFX0VYUE9SVCB+RE9NV3Jh
cHBlcldvcmxkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGU2YzgzNzMuLmRjYTU2MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApA
QCAtMjEyNyw2ICsyMTI3LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0b0pTKG1fZXhl
YywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obV9nbG9iYWxPYmplY3QpLCBuYXRpdmVPYmop
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIFQ+CisgICAgSlNWYWx1ZSBnZXRKU1ZhbHVl
KFQmIG5hdGl2ZU9iaikKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRKU1ZhbHVlKCZuYXRpdmVP
YmopOworICAgIH0KKwogICAgIEpTVmFsdWUgcmVhZFRlcm1pbmFsKCkKICAgICB7CiAgICAgICAg
IFNlcmlhbGl6YXRpb25UYWcgdGFnID0gcmVhZFRhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggMWRh
YjlhMC4uNTliZDc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1Ymxp
YyBYUGF0aE5TUmVzb2x2ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoaWQgPERPTVhQYXRoTlNSZXNvbHZl
cj4gY3VzdG9tUmVzb2x2ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01DdXN0b21YUGF0aE5T
UmVzb2x2ZXIoY3VzdG9tUmVzb2x2ZXIpKTsgfQorICAgICAgICBzdGF0aWMgUmVmPERPTUN1c3Rv
bVhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlKGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJl
c29sdmVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlcihj
dXN0b21SZXNvbHZlcikpOyB9CiAgICAgICAgIHZpcnR1YWwgfkRPTUN1c3RvbVhQYXRoTlNSZXNv
bHZlcigpOwogCiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25z
dCBTdHJpbmcmIHByZWZpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDg1OTVkMTkuLmQzZjVkMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0z
NDEzLDkgKzM0MTMsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKIAogICAgICMgVGhlIHN0YXRpYyBjcmVhdGUoKSBt
ZXRob2QuCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjwk
Y2xhc3NOYW1lPiBjcmVhdGUoSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBSZWY8JGNsYXNzTmFtZT4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB7XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3ICRjbGFzc05hbWUoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpO1xuIik7Cisg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgJGNs
YXNzTmFtZShjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KSk7XG4iKTsKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIH1cblxuIik7CiAKICAgICAjIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuaAppbmRleCA4NTk2NDA1Li5kYjlkMTBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5oCkBAIC00Myw5ICs0Myw5IEBAIGNsYXNzIEND
bGFzczsKIAogY2xhc3MgQ0luc3RhbmNlIDogcHVibGljIEluc3RhbmNlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDSW5zdGFuY2U+IGNyZWF0ZShOUE9iamVjdCogb2JqZWN0LCBQ
YXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RPYmplY3QpCisgICAgc3RhdGljIFJlZjxDSW5zdGFu
Y2U+IGNyZWF0ZShOUE9iamVjdCogb2JqZWN0LCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RP
YmplY3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENJbnN0YW5jZShvYmpl
Y3QsIHJvb3RPYmplY3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ0luc3RhbmNl
KG9iamVjdCwgcm9vdE9iamVjdCkpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHNldEdsb2Jh
bEV4Y2VwdGlvbihTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0Ny
eXB0b0tleVBhaXIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmgKaW5k
ZXggOWJjNzZkMy4uZmIyN2NlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0Ny
eXB0b0tleVBhaXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5o
CkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5
UGFpciA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0tleVBhaXI+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlQYWlyPiBjcmVhdGUoUGFzc1JlZlB0cjxDcnlwdG9L
ZXk+IHB1YmxpY0tleSwgUGFzc1JlZlB0cjxDcnlwdG9LZXk+IHByaXZhdGVLZXkpCisgICAgc3Rh
dGljIFJlZjxDcnlwdG9LZXlQYWlyPiBjcmVhdGUoUGFzc1JlZlB0cjxDcnlwdG9LZXk+IHB1Ymxp
Y0tleSwgUGFzc1JlZlB0cjxDcnlwdG9LZXk+IHByaXZhdGVLZXkpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tleVBhaXIocHVibGljS2V5LCBwcml2YXRlS2V5KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0tleVBhaXIocHVibGljS2V5LCBw
cml2YXRlS2V5KSk7CiAgICAgfQogICAgIH5DcnlwdG9LZXlQYWlyKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmgKaW5kZXggMGI3YmI2MS4uMThiMDFiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmgKQEAgLTM2LDkgKzM2LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9LZXlBRVMgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvS2V5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlB
RVM+IGNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBrZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdl
KQorICAgIHN0YXRpYyBSZWY8Q3J5cHRvS2V5QUVTPiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBhbGdvcml0aG0sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQ3J5cHRvS2V5QUVTKGFsZ29yaXRobSwga2V5LCBleHRyYWN0YWJsZSwgdXNhZ2Up
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvS2V5QUVTKGFsZ29yaXRobSwg
a2V5LCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsKICAgICB9CiAgICAgdmlydHVhbCB+Q3J5cHRvS2V5
QUVTKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaAppbmRl
eCBiNzgzYzY2Li5jYTUxMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRv
S2V5SE1BQy5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q3J5cHRvS2V5SE1BQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9LZXkgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENyeXB0b0tleUhNQUM+IGNyZWF0ZShjb25zdCBWZWN0b3I8dWludDhf
dD4mIGtleSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKKyAgICBzdGF0aWMgUmVmPENyeXB0b0tleUhNQUM+IGNy
ZWF0ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBoYXNoLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3J5cHRvS2V5SE1BQyhrZXksIGhhc2gsIGV4dHJh
Y3RhYmxlLCB1c2FnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9LZXlI
TUFDKGtleSwgaGFzaCwgZXh0cmFjdGFibGUsIHVzYWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwg
fkNyeXB0b0tleUhNQUMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlS
U0EuaAppbmRleCAxZmM0MjMxLi4xYWE1MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlSU0EuaApAQCAtNDksOSArNDksOSBAQCBjbGFzcyBQcm9taXNlV3JhcHBlcjsK
IAogY2xhc3MgQ3J5cHRvS2V5UlNBIGZpbmFsIDogcHVibGljIENyeXB0b0tleSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRvS2V5UlNBPiBjcmVhdGUoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBDcnlwdG9LZXlUeXBlIHR5cGUsIFBsYXRmb3JtUlNB
S2V5IHBsYXRmb3JtS2V5LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkK
KyAgICBzdGF0aWMgUmVmPENyeXB0b0tleVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaWRlbnRpZmllciwgQ3J5cHRvS2V5VHlwZSB0eXBlLCBQbGF0Zm9ybVJTQUtleSBwbGF0
Zm9ybUtleSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVyLCB0eXBl
LCBwbGF0Zm9ybUtleSwgZXh0cmFjdGFibGUsIHVzYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVyLCB0eXBlLCBwbGF0Zm9ybUtleSwgZXh0
cmFjdGFibGUsIHVzYWdlKSk7CiAgICAgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENyeXB0b0tl
eVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIGNvbnN0IENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UpOwogICAg
IHZpcnR1YWwgfkNyeXB0b0tleVJTQSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9LZXlSU0FNYWMuY3BwCmluZGV4IDBmYTE3NGMuLmI1NmFjMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAKQEAgLTI2Nyw3ICsyNjcsNyBA
QCB2b2lkIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCB1bnNpZ25lZCBtbwogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4g
cHVibGljS2V5ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoYWxnb3JpdGhtLCBDcnlwdG9LZXlUeXBl
OjpQdWJsaWMsIGNjUHVibGljS2V5LCB0cnVlLCB1c2FnZSk7CiAgICAgICAgICAgICBSZWZQdHI8
Q3J5cHRvS2V5UlNBPiBwcml2YXRlS2V5ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoYWxnb3JpdGht
LCBDcnlwdG9LZXlUeXBlOjpQcml2YXRlLCBjY1ByaXZhdGVLZXksIGV4dHJhY3RhYmxlLCB1c2Fn
ZSk7Ci0gICAgICAgICAgICAoKmxvY2FsQ2FsbGJhY2spKCpDcnlwdG9LZXlQYWlyOjpjcmVhdGUo
cHVibGljS2V5LnJlbGVhc2UoKSwgcHJpdmF0ZUtleS5yZWxlYXNlKCkpKTsKKyAgICAgICAgICAg
ICgqbG9jYWxDYWxsYmFjaykoQ3J5cHRvS2V5UGFpcjo6Y3JlYXRlKHB1YmxpY0tleS5yZWxlYXNl
KCksIHByaXZhdGVLZXkucmVsZWFzZSgpKSk7CiAgICAgICAgICAgICBkZWxldGUgbG9jYWxDYWxs
YmFjazsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NV2luZG93Q1NTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuY3Bw
CmluZGV4IDViYzgzYzIuLjU4NzgyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01XaW5kb3dDU1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuY3Bw
CkBAIC0zNiw5ICszNiw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxE
T01XaW5kb3dDU1M+IERPTVdpbmRvd0NTUzo6Y3JlYXRlKCkKK1JlZjxET01XaW5kb3dDU1M+IERP
TVdpbmRvd0NTUzo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVdpbmRv
d0NTUygpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3dDU1MpOwogfQogCiBz
dGF0aWMgU3RyaW5nIHZhbHVlV2l0aG91dEltcG9ydGFudChjb25zdCBTdHJpbmcmIHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTVdpbmRvd0NTUy5oCmluZGV4IDc5ZDVkOTcuLjEwNWVjYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NV2luZG93Q1NTLmgKQEAgLTMxLDE0ICszMSwxNCBAQAogI2RlZmluZSBET01XaW5k
b3dDU1NfaAogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVdpbmRvd0NTUyA6IHB1YmxpYyBS
ZWZDb3VudGVkPERPTVdpbmRvd0NTUz4gewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBQYXNzUmVmUHRyPERPTVdpbmRvd0NTUz4gY3JlYXRlKCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxET01XaW5kb3dDU1M+IGNyZWF0ZSgpOwogCiAgICAgYm9vbCBzdXBwb3J0
cyhjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdDsKICAg
ICBib29sIHN1cHBvcnRzKGNvbnN0IFN0cmluZyYgY29uZGl0aW9uVGV4dCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGFzaGJvYXJkUmVnaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGFzaGJvYXJkUmVnaW9uLmgKaW5kZXggNWI1ZjBiZC4uMmEzMWI0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9EYXNoYm9hcmRSZWdpb24uaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhc2hib2FyZFJlZ2lvbiA6IHB1YmxpYyBSZWN0QmFzZSwgcHVi
bGljIFJlZkNvdW50ZWQ8RGFzaGJvYXJkUmVnaW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGFzaGJvYXJkUmVnaW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RGFzaGJvYXJkUmVnaW9uKTsgfQorICAgIHN0YXRpYyBSZWY8RGFzaGJvYXJkUmVnaW9uPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhc2hib2FyZFJlZ2lvbik7IH0KICAgICBib29s
IGVxdWFscyhjb25zdCBEYXNoYm9hcmRSZWdpb24mIG90aGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1fbGFiZWwgPT0gb3RoZXIubV9sYWJlbCAmJiBtX2dlb21ldHJ5VHlwZSA9PSBv
dGhlci5tX2dlb21ldHJ5VHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5kZXggYjZkNmQ5MS4u
MzdlN2E2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC01MSw5ICs1MSw5IEBAIGNsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEZvbnRMb2FkZXIgZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxGb250TG9hZGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGlj
IEV2ZW50VGFyZ2V0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb250TG9hZGVy
PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8Rm9udExvYWRlcj4g
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZjxGb250TG9hZGVyPihuZXcgRm9udExvYWRlcihkb2N1bWVudCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWY8Rm9udExvYWRlcj4oKm5ldyBGb250TG9hZGVyKGRvY3VtZW50KSk7CiAgICAgfQog
ICAgIHZpcnR1YWwgfkZvbnRMb2FkZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3IuaAppbmRleCBlOWYz
ZDBiLi5lNmM4NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3IuaApAQCAtMjYsNyArMjYsNiBAQAogI2lm
bmRlZiBET01FcnJvcl9oCiAjZGVmaW5lIERPTUVycm9yX2gKIAotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtMzQsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERPTUVycm9yIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRXJyb3I+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01FcnJvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFt
ZSkKKyAgICBzdGF0aWMgUmVmPERPTUVycm9yPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01FcnJvcihuYW1lKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERPTUVycm9yKG5hbWUpKTsKICAgICB9CiAgICAgdmly
dHVhbCB+RE9NRXJyb3IoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVN0cmluZ0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmgKaW5kZXgg
ZDM2NTc5OS4uNWI0NTExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmlu
Z0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5oCkBAIC0zNyw5
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgICAgICB0aGFuIGNyZWF0aW5nIHRo
ZSBsaXN0IHN0YXRpY2FsbHkgYXMgaXMgY3VycmVudGx5IHRoZSBvbmx5IG9wdGlvbi4KIGNsYXNz
IERPTVN0cmluZ0xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxET01TdHJpbmdMaXN0PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gY3JlYXRlKCkKKyAgICBz
dGF0aWMgUmVmPERPTVN0cmluZ0xpc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERPTVN0cmluZ0xpc3QoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERPTVN0cmluZ0xpc3QpOwogICAgIH0KIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RyaW5ncy5pc0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5j
cHAKaW5kZXggMzg0Yzg1Zi4uODVmY2U3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5j
cHAKQEAgLTcyLDkgKzcyLDkgQEAgRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3QKICNlbmRpZgogfQog
Ci1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSkKK1JlZjxEYXRhVHJhbnNmZXI+
IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSBwb2xpY3kpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXIocG9s
aWN5LCBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSA/IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZVByaXZhdGUoKSA6IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgcG9s
aWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUgPyBQYXN0ZWJvYXJkOjpj
cmVhdGVQcml2YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkpOwog
fQogCiBEYXRhVHJhbnNmZXI6On5EYXRhVHJhbnNmZXIoKQpAQCAtMjI5LDE0ICsyMjksMTQgQEAg
dm9pZCBEYXRhVHJhbnNmZXI6OnNldERyYWdJbWFnZShFbGVtZW50KiwgaW50LCBpbnQpCiAKICNl
bHNlCiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCkKK1JlZjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKERhdGFU
cmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCksIERyYWdBbmREcm9wKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVRy
YW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUsIFBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKCksIERyYWdBbmREcm9wKSk7CiB9CiAKLVBhc3NSZWZQdHI8RGF0
YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeSBwb2xpY3ksIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK1JlZjxEYXRh
VHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IHBvbGljeSwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwgUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEpLCBEcmFnQW5kRHJvcCwgZHJhZ0RhdGEuY29udGFpbnNG
aWxlcygpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwg
UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEpLCBEcmFnQW5kRHJvcCwg
ZHJhZ0RhdGEuY29udGFpbnNGaWxlcygpKSk7CiB9CiAKIGJvb2wgRGF0YVRyYW5zZmVyOjpjYW5T
ZXREcmFnSW1hZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCmluZGV4IGNhODNi
OWYuLjg0YTMwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRGF0YVRyYW5zZmVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVyPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZShEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3kpOworICAgICAgICBzdGF0aWMgUmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRl
Rm9yQ29weUFuZFBhc3RlKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSk7CiAKICAgICAgICAgV0VC
Q09SRV9FWFBPUlQgfkRhdGFUcmFuc2ZlcigpOwogCkBAIC04Miw4ICs4Miw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgUGFzdGVib2FyZCYgcGFzdGVib2FyZCgpIHsgcmV0dXJuICpt
X3Bhc3RlYm9hcmQ7IH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChE
YXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3ksIGNvbnN0IERyYWdEYXRhJik7CisgICAgICAgIHN0YXRp
YyBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgICAgICBzdGF0
aWMgUmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5LCBjb25zdCBEcmFnRGF0YSYpOwogCiAgICAgICAgIGJvb2wgZHJvcEVmZmVjdElz
VW5pbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJvcEVmZmVjdCA9PSAidW5pbml0aWFs
aXplZCI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwCmluZGV4IDQ0
MWM4MGQuLjgzYWMyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rp
b25EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRGF0YS5jcHAK
QEAgLTI4LDExICsyOCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8
RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVy
YXRpb246OmNyZWF0ZShib29sIGNhblByb3ZpZGVYLCBkb3VibGUgeCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGNhblByb3ZpZGVZLCBkb3VibGUgeSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGNhblByb3ZpZGVaLCBkb3VibGUgeikKK1JlZjxEZXZpY2VNb3Rpb25EYXRh
OjpBY2NlbGVyYXRpb24+IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6Y3JlYXRlKGJv
b2wgY2FuUHJvdmlkZVgsIGRvdWJsZSB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92
aWRlWSwgZG91YmxlIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhblByb3ZpZGVaLCBkb3Vi
bGUgeikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU1vdGlvbkRhdGE6OkFjY2Vs
ZXJhdGlvbihjYW5Qcm92aWRlWCwgeCwgY2FuUHJvdmlkZVksIHksIGNhblByb3ZpZGVaLCB6KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9u
KGNhblByb3ZpZGVYLCB4LCBjYW5Qcm92aWRlWSwgeSwgY2FuUHJvdmlkZVosIHopKTsKIH0KIAog
RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uOjpBY2NlbGVyYXRpb24oYm9vbCBjYW5Qcm92
aWRlWCwgZG91YmxlIHgsIGJvb2wgY2FuUHJvdmlkZVksIGRvdWJsZSB5LCBib29sIGNhblByb3Zp
ZGVaLCBkb3VibGUgeikKQEAgLTQ2LDExICs0NiwxMSBAQCBEZXZpY2VNb3Rpb25EYXRhOjpBY2Nl
bGVyYXRpb246OkFjY2VsZXJhdGlvbihib29sIGNhblByb3ZpZGVYLCBkb3VibGUgeCwgYm9vbCBj
YQogewogfQogCi1QYXNzUmVmUHRyPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZT4gRGV2
aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEs
IGRvdWJsZSBhbHBoYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhblByb3ZpZGVC
ZXRhLCBkb3VibGUgYmV0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhblByb3Zp
ZGVHYW1tYSwgZG91YmxlIGdhbW1hKQorUmVmPERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0
ZT4gRGV2aWNlTW90aW9uRGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRl
QWxwaGEsIGRvdWJsZSBhbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUJl
dGEsIGRvdWJsZSBiZXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlR2FtbWEs
IGRvdWJsZSBnYW1tYSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU1vdGlvbkRh
dGE6OlJvdGF0aW9uUmF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwg
YmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERldmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBj
YW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOwogfQogCiBEZXZp
Y2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OlJvdGF0aW9uUmF0ZShib29sIGNhblByb3ZpZGVB
bHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9v
bCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKQEAgLTYzLDE1ICs2MywxNSBAQCBEZXZp
Y2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU6OlJvdGF0aW9uUmF0ZShib29sIGNhblByb3ZpZGVB
bHBoYSwgZG91YmxlIGFscGhhLAogewogfQogCi1QYXNzUmVmUHRyPERldmljZU1vdGlvbkRhdGE+
IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZSgpCitSZWY8RGV2aWNlTW90aW9uRGF0YT4gRGV2aWNl
TW90aW9uRGF0YTo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU1v
dGlvbkRhdGEpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU1vdGlvbkRhdGEpOwog
fQogCi1QYXNzUmVmUHRyPERldmljZU1vdGlvbkRhdGE+IERldmljZU1vdGlvbkRhdGE6OmNyZWF0
ZShQYXNzUmVmUHRyPEFjY2VsZXJhdGlvbj4gYWNjZWxlcmF0aW9uLCBQYXNzUmVmUHRyPEFjY2Vs
ZXJhdGlvbj4gYWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Um90YXRpb25S
YXRlPiByb3RhdGlvblJhdGUsIGJvb2wgY2FuUHJvdmlkZUludGVydmFsLCBkb3VibGUgaW50ZXJ2
YWwpCitSZWY8RGV2aWNlTW90aW9uRGF0YT4gRGV2aWNlTW90aW9uRGF0YTo6Y3JlYXRlKFBhc3NS
ZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb24sIFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9u
PiBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFJvdGF0aW9uUmF0ZT4gcm90YXRpb25S
YXRlLCBib29sIGNhblByb3ZpZGVJbnRlcnZhbCwgZG91YmxlIGludGVydmFsKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRGV2aWNlTW90aW9uRGF0YShhY2NlbGVyYXRpb24sIGFjY2VsZXJh
dGlvbkluY2x1ZGluZ0dyYXZpdHksIHJvdGF0aW9uUmF0ZSwgY2FuUHJvdmlkZUludGVydmFsLCBp
bnRlcnZhbCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU1vdGlvbkRhdGEoYWNj
ZWxlcmF0aW9uLCBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LCByb3RhdGlvblJhdGUsIGNh
blByb3ZpZGVJbnRlcnZhbCwgaW50ZXJ2YWwpKTsKIH0KIAogRGV2aWNlTW90aW9uRGF0YTo6RGV2
aWNlTW90aW9uRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuaAppbmRleCBm
MTQxYTM1Li5mZGVkNzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmgKQEAg
LTM2LDcgKzM2LDcgQEAgY2xhc3MgRGV2aWNlTW90aW9uRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PERldmljZU1vdGlvbkRhdGE+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBBY2NlbGVyYXRpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+IHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2VsZXJh
dGlvbj4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZVgsIGRvdWJsZSB4LCBib29sIGNhblByb3ZpZGVZ
LCBkb3VibGUgeSwgYm9vbCBjYW5Qcm92aWRlWiwgZG91YmxlIHopOworICAgICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPEFjY2VsZXJhdGlvbj4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZVgs
IGRvdWJsZSB4LCBib29sIGNhblByb3ZpZGVZLCBkb3VibGUgeSwgYm9vbCBjYW5Qcm92aWRlWiwg
ZG91YmxlIHopOwogCiAgICAgICAgIGJvb2wgY2FuUHJvdmlkZVgoKSBjb25zdCB7IHJldHVybiBt
X2NhblByb3ZpZGVYOyB9CiAgICAgICAgIGJvb2wgY2FuUHJvdmlkZVkoKSBjb25zdCB7IHJldHVy
biBtX2NhblByb3ZpZGVZOyB9CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIGNsYXNz
IFJvdGF0aW9uUmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPERldmljZU1vdGlvbkRhdGE6OlJvdGF0
aW9uUmF0ZT4gewogICAgIHB1YmxpYzoKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBh
c3NSZWZQdHI8Um90YXRpb25SYXRlPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJs
ZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3Zp
ZGVHYW1tYSwgZG91YmxlIGdhbW1hKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxSb3RhdGlvblJhdGU+IGNyZWF0ZShib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhh
LCBib29sIGNhblByb3ZpZGVCZXRhLCAgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1h
LCBkb3VibGUgZ2FtbWEpOwogCiAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUFscGhhKCkgY29uc3Qg
eyByZXR1cm4gbV9jYW5Qcm92aWRlQWxwaGE7IH0KICAgICAgICAgYm9vbCBjYW5Qcm92aWRlQmV0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJvdmlkZUJldGE7IH0KQEAgLTgyLDkgKzgyLDkgQEAg
cHVibGljOgogICAgICAgICBib29sIG1fY2FuUHJvdmlkZUdhbW1hOwogICAgIH07CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBjcmVhdGUo
KTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxBY2NlbGVyYXRpb24+IGFjY2VsZXJhdGlvbiwgUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+
IGFjY2VsZXJhdGlvbkluY2x1ZGluZ0dyYXZpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Um90YXRpb25SYXRlPiByb3RhdGlvblJh
dGUsIGJvb2wgY2FuUHJvdmlkZUludGVydmFsLCBkb3VibGUgaW50ZXJ2YWwpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKCk7CisgICAgc3Rh
dGljIFJlZjxEZXZpY2VNb3Rpb25EYXRhPiBjcmVhdGUoUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+
IGFjY2VsZXJhdGlvbiwgUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+IGFjY2VsZXJhdGlvbkluY2x1
ZGluZ0dyYXZpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFz
c1JlZlB0cjxSb3RhdGlvblJhdGU+IHJvdGF0aW9uUmF0ZSwgYm9vbCBjYW5Qcm92aWRlSW50ZXJ2
YWwsIGRvdWJsZSBpbnRlcnZhbCk7CiAKICAgICBjb25zdCBBY2NlbGVyYXRpb24qIGFjY2VsZXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0aW9uLmdldCgpOyB9CiAgICAgY29uc3Qg
QWNjZWxlcmF0aW9uKiBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5KCkgY29uc3QgeyByZXR1
cm4gbV9hY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCmluZGV4IGQ2YTVmMmMuLjU0NjVjYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCkBAIC0y
OCwyMSArMjgsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUoKQorUmVmPERl
dmljZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUoKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV2aWNlT3JpZW50YXRpb25EYXRhKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VPcmllbnRhdGlvbkRhdGEpOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TKQogLy8gRklYTUU6IFdlIHNob3VsZCByZWNvbmNpbGUgdGhlIGlPUyBhbmQgT3BlblNv
dXJjZSBkaWZmZXJlbmNlcy4KLVBhc3NSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBEZXZp
Y2VPcmllbnRhdGlvbkRhdGE6OmNyZWF0ZShib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFs
cGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2Ft
bWEsIGRvdWJsZSBnYW1tYSwgYm9vbCBjYW5Qcm92aWRlQ29tcGFzc0hlYWRpbmcsIGRvdWJsZSBj
b21wYXNzSGVhZGluZywgYm9vbCBjYW5Qcm92aWRlQ29tcGFzc0FjY3VyYWN5LCBkb3VibGUgY29t
cGFzc0FjY3VyYWN5KQorUmVmPERldmljZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3JpZW50YXRp
b25EYXRhOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBj
YW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUg
Z2FtbWEsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0hlYWRp
bmcsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91YmxlIGNvbXBhc3NBY2N1cmFj
eSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU9yaWVudGF0aW9uRGF0YShjYW5Q
cm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1h
LCBnYW1tYSwgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBjb21wYXNzSGVhZGluZywgY2FuUHJv
dmlkZUNvbXBhc3NBY2N1cmFjeSwgY29tcGFzc0FjY3VyYWN5KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGV2aWNlT3JpZW50YXRpb25EYXRhKGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNh
blByb3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hLCBjYW5Qcm92aWRlQ29t
cGFzc0hlYWRpbmcsIGNvbXBhc3NIZWFkaW5nLCBjYW5Qcm92aWRlQ29tcGFzc0FjY3VyYWN5LCBj
b21wYXNzQWNjdXJhY3kpKTsKIH0KICNlbHNlCi1QYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RGF0YT4gRGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEs
IGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2Fu
UHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUFic29sdXRlLCBib29s
IGFic29sdXRlKQorUmVmPERldmljZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3JpZW50YXRpb25E
YXRhOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Q
cm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2Ft
bWEsIGJvb2wgY2FuUHJvdmlkZUFic29sdXRlLCBib29sIGFic29sdXRlKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRGV2aWNlT3JpZW50YXRpb25EYXRhKGNhblByb3ZpZGVBbHBoYSwgYWxw
aGEsIGNhblByb3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hLCBjYW5Qcm92
aWRlQWJzb2x1dGUsIGFic29sdXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGV2aWNl
T3JpZW50YXRpb25EYXRhKGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3ZpZGVCZXRhLCBi
ZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hLCBjYW5Qcm92aWRlQWJzb2x1dGUsIGFic29sdXRl
KSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRGF0
YS5oCmluZGV4IDQ4YTdhYWMuLmNkOWZkNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25EYXRhLmgKQEAgLTI2LDE4ICsyNiwxOCBAQAogI2lmbmRlZiBEZXZpY2VPcmll
bnRhdGlvbkRhdGFfaAogI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkRhdGFfaAogCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IGNy
ZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBjcmVhdGUoKTsK
ICNpZiBQTEFURk9STShJT1MpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
RGV2aWNlT3JpZW50YXRpb25EYXRhPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJs
ZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlk
ZUdhbW1hLCBkb3VibGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3Vi
bGUgY29tcGFzc0hlYWRpbmcsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91Ymxl
IGNvbXBhc3NBY2N1cmFjeSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxEZXZpY2VP
cmllbnRhdGlvbkRhdGE+IGNyZWF0ZShib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhh
LCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEs
IGRvdWJsZSBnYW1tYSwgYm9vbCBjYW5Qcm92aWRlQ29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgYm9vbCBjYW5Qcm92aWRlQ29tcGFzc0FjY3VyYWN5LCBkb3VibGUgY29tcGFz
c0FjY3VyYWN5KTsKICNlbHNlCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
RGV2aWNlT3JpZW50YXRpb25EYXRhPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJs
ZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlk
ZUdhbW1hLCBkb3VibGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUFic29sdXRlID0gZmFsc2UsIGJv
b2wgYWJzb2x1dGUgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxEZXZp
Y2VPcmllbnRhdGlvbkRhdGE+IGNyZWF0ZShib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFs
cGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2Ft
bWEsIGRvdWJsZSBnYW1tYSwgYm9vbCBjYW5Qcm92aWRlQWJzb2x1dGUgPSBmYWxzZSwgYm9vbCBh
YnNvbHV0ZSA9IGZhbHNlKTsKICNlbmRpZgogCiAgICAgZG91YmxlIGFscGhhKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcAppbmRleCBjZWM1OWJkLi4wNWYwODBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1lbnRNYXJrZXJEZXRhaWxzKCkKIAogY2xhc3MgRG9j
dW1lbnRNYXJrZXJEZXNjcmlwdGlvbiA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24+
IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgUmVmPERvY3VtZW50TWFya2VyRGVz
Y3JpcHRpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC01
Myw5ICs1Myw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZGVzY3JpcHRpb247CiB9OwogCi1Q
YXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24+IERvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb246OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQorUmVmPERvY3VtZW50TWFy
a2VyRGVzY3JpcHRpb24+IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9jdW1lbnRN
YXJrZXJEZXNjcmlwdGlvbihkZXNjcmlwdGlvbikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKIH0KIAogaW5saW5lIERv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb24qIHRvRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbihEb2N1
bWVudE1hcmtlckRldGFpbHMqIGRldGFpbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCA2ZDczY2FlLi45YmNlYmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBdXRvY29ycmVjdGlvbkFsdGVybmF0aXZlRGV0YWlscyA6IHB1YmxpYyBBbHRlcm5hdGl2ZVRl
eHREZXRhaWxzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdXRvY29ycmVjdGlv
bkFsdGVybmF0aXZlRGV0YWlscz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJp
bmcpCisgICAgc3RhdGljIFJlZjxBdXRvY29ycmVjdGlvbkFsdGVybmF0aXZlRGV0YWlscz4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEF1dG9jb3JyZWN0aW9uQWx0ZXJuYXRpdmVEZXRhaWxzKHJlcGxhY2Vt
ZW50U3RyaW5nKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1dG9jb3JyZWN0aW9u
QWx0ZXJuYXRpdmVEZXRhaWxzKHJlcGxhY2VtZW50U3RyaW5nKSk7CiAgICAgfQogICAgIAogICAg
IGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3JlcGxh
Y2VtZW50U3RyaW5nOyB9CkBAIC02OCw5ICs2OCw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIERpY3Rh
dGlvbkFsdGVybmF0aXZlRGV0YWlscyA6IHB1YmxpYyBBbHRlcm5hdGl2ZVRleHREZXRhaWxzIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaWN0YXRpb25BbHRlcm5hdGl2ZURldGFp
bHM+IGNyZWF0ZSh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KQorICAgIHN0YXRpYyBSZWY8RGlj
dGF0aW9uQWx0ZXJuYXRpdmVEZXRhaWxzPiBjcmVhdGUodWludDY0X3QgZGljdGF0aW9uQ29udGV4
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGljdGF0aW9uQWx0ZXJuYXRp
dmVEZXRhaWxzKGRpY3RhdGlvbkNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRGljdGF0aW9uQWx0ZXJuYXRpdmVEZXRhaWxzKGRpY3RhdGlvbkNvbnRleHQpKTsKICAgICB9
CiAKICAgICB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kaWN0
YXRpb25Db250ZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5oCmluZGV4IGIxMDZhYzUuLjEyMzIxOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oCkBAIC02Miw5
ICs2Miw5IEBAIHN0cnVjdCBBbHRlcm5hdGl2ZVRleHRJbmZvIHsKIAogY2xhc3MgRGljdGF0aW9u
TWFya2VyRGV0YWlscyA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpY3RhdGlvbk1hcmtlckRldGFpbHM+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG9yaWdpbmFsVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKKyAgICBz
dGF0aWMgUmVmPERpY3RhdGlvbk1hcmtlckRldGFpbHM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG9y
aWdpbmFsVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRGljdGF0aW9uTWFya2VyRGV0YWlscyhvcmlnaW5hbFRleHQsIGRp
Y3RhdGlvbkNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9u
TWFya2VyRGV0YWlscyhvcmlnaW5hbFRleHQsIGRpY3RhdGlvbkNvbnRleHQpKTsKICAgICB9CiAg
ICAgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQoKSBjb25zdCB7IHJldHVybiBtX29yaWdpbmFs
VGV4dDsgfQogICAgIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2RpY3RhdGlvbkNvbnRleHQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaAppbmRleCAxODU0ZmQyLi5kNjRiMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSkKKyAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwg
bm9kZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaAppbmRleCAxMGY2MTU0Li5lOTllMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBAIC00OCwyMSArNDgsMjEgQEAgcHVibGljOgog
ICAgIGVudW0gRUFkZFN0eWxlZEVsZW1lbnQgeyBBZGRTdHlsZWRFbGVtZW50LCBEb05vdEFkZFN0
eWxlZEVsZW1lbnQgfTsKICAgICB0eXBlZGVmIGJvb2wgKCpJc0lubGluZUVsZW1lbnRUb1JlbW92
ZUZ1bmN0aW9uKShjb25zdCBFbGVtZW50Kik7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcHBs
eVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0
eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRl
cywgRVByb3BlcnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCisgICAgc3RhdGljIFJl
ZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRp
dGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0
cmlidXRlcywgRVByb3BlcnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBz
dHlsZSwgYWN0aW9uLCBsZXZlbCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBs
eVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGFjdGlvbiwgbGV2ZWwpKTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFy
dCwgY29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hh
bmdlQXR0cmlidXRlcywgRVByb3BlcnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCisg
ICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRy
aWJ1dGVzLCBFUHJvcGVydHlMZXZlbCBsZXZlbCA9IFByb3BlcnR5RGVmYXVsdCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZG9jdW1lbnQsIHN0
eWxlLCBzdGFydCwgZW5kLCBhY3Rpb24sIGxldmVsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgc3RhcnQsIGVuZCwgYWN0
aW9uLCBsZXZlbCkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcHBseVN0eWxlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5
ID0gZmFsc2UsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMp
CisgICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5ID0gZmFsc2UsIEVkaXRBY3Rpb24gYWN0aW9u
ID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFwcGx5U3R5bGVDb21tYW5kKGVsZW1lbnQsIHJlbW92ZU9ubHksIGFjdGlvbikp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBseVN0eWxlQ29tbWFuZChlbGVtZW50
LCByZW1vdmVPbmx5LCBhY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBw
bHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdT
dHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24gaXNJbmxpbmVFbGVt
ZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdl
QXR0cmlidXRlcykKKyAgICBzdGF0aWMgUmVmPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJc0lubGluZUVsZW1l
bnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRB
Y3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwg
aXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgYWN0aW9uKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgaXNJbmxp
bmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgYWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuaAppbmRl
eCA0MzhlMTVhLi43Y2VkOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Jy
ZWFrQmxvY2txdW90ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0JyZWFr
QmxvY2txdW90ZUNvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEJyZWFrQmxvY2txdW90ZUNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJyZWFrQmxvY2txdW90ZUNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxCcmVha0Js
b2NrcXVvdGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCcmVha0Jsb2NrcXVvdGVDb21tYW5kKGRvY3VtZW50KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJyZWFrQmxvY2txdW90ZUNvbW1hbmQoZG9j
dW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDM3MmI1NTcuLjZlMDMzYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC03Niwx
MCArNzYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCi1QYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IEVkaXRDb21tYW5kQ29t
cG9zaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsCitSZWY8RWRpdENvbW1hbmRDb21w
b3NpdGlvbj4gRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uIGVkaXRBY3Rpb24p
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKGRvY3Vt
ZW50LCBzdGFydGluZ1NlbGVjdGlvbiwgZW5kaW5nU2VsZWN0aW9uLCBlZGl0QWN0aW9uKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRWRpdENvbW1hbmRDb21wb3NpdGlvbihkb2N1bWVudCwg
c3RhcnRpbmdTZWxlY3Rpb24sIGVuZGluZ1NlbGVjdGlvbiwgZWRpdEFjdGlvbikpOwogfQogCiBF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbiBlZGl0QWN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4
IDVmZjg4NjIuLmMyYjQ4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRWRp
dENvbW1hbmRDb21wb3NpdGlvbiA6IHB1YmxpYyBVbmRvU3RlcCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY3JlYXRlKERvY3VtZW50Jiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBFZGl0QWN0
aW9uKTsKKyAgICBzdGF0aWMgUmVmPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNyZWF0ZShEb2N1
bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
RWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdW5hcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCByZWFwcGx5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NyZWF0ZUxpbmtDb21tYW5kLmgKaW5kZXggOTJiM2RjNy4uODhjZWNlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyZWF0ZUxpbmtDb21tYW5kIDogcHVibGljIENvbXBv
c2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcmVhdGVM
aW5rQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBsaW5r
VVJMKQorICAgIHN0YXRpYyBSZWY8Q3JlYXRlTGlua0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbGlua1VSTCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ3JlYXRlTGlua0NvbW1hbmQoZG9jdW1lbnQsIGxpbmtVUkwpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3JlYXRlTGlua0NvbW1hbmQoZG9jdW1lbnQsIGxpbmtV
UkwpKTsKICAgICB9CiAKICAgICBib29sIGlzQ3JlYXRlTGlua0NvbW1hbmQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCmluZGV4IDhkMWY2NzMuLjI0OTFmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0zNCw5ICsz
NCw5IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgc3RhdGljIFJlZjxEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCAxOTY2N2QwLi5lNWJmNTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3MgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7IAogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQor
ICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQs
IHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JT
cGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNh
bml0aXplTWFya3VwKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJv
b2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1
ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0g
ZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHN0YXRpYyBSZWY8RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUg
PSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRp
emVNYXJrdXApKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IDg4ODY2ZTguLmMxNzNkZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtNTUsOSArNTUsOSBAQCBw
cml2YXRlOgogCiBjbGFzcyBEaWN0YXRpb25NYXJrZXJTdXBwbGllciA6IHB1YmxpYyBUZXh0SW5z
ZXJ0aW9uTWFya2VyU3VwcGxpZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERp
Y3RhdGlvbk1hcmtlclN1cHBsaWVyPiBjcmVhdGUoY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVy
bmF0aXZlPiYgYWx0ZXJuYXRpdmVzKQorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI+IGNyZWF0ZShjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5h
dGl2ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3RhdGlvbk1hcmtl
clN1cHBsaWVyKGFsdGVybmF0aXZlcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
aWN0YXRpb25NYXJrZXJTdXBwbGllcihhbHRlcm5hdGl2ZXMpKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkTWFya2Vyc1RvVGV4dE5vZGUoVGV4dCogdGV4dE5vZGUsIHVuc2lnbmVkIG9m
ZnNldE9mSW5zZXJ0aW9uLCBjb25zdCBTdHJpbmcmIHRleHRUb0JlSW5zZXJ0ZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5oCmluZGV4IGQ0ZjZkNDUuLjIyZmViMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5oCkBAIC0zOSw5ICsz
OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbnNlcnRUZXh0KERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRp
dmVzLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgdmlydHVhbCBib29sIGlzRGljdGF0
aW9uQ29tbWFuZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIHByaXZhdGU6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGljdGF0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBh
bHRlcm5hdGl2ZXMpCisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25Db21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxEaWN0YXRp
b25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGljdGF0aW9uQ29tbWFuZChkb2N1bWVudCwgdGV4dCwgYWx0ZXJuYXRpdmVzKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkNvbW1hbmQoZG9jdW1lbnQs
IHRleHQsIGFsdGVybmF0aXZlcykpOwogICAgIH0KIAogICAgIERpY3RhdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5h
dGl2ZT4mIGFsdGVybmF0aXZlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaApp
bmRleCA4ZWU3NTUwLi45NTQxY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmgKQEAgLTcwLDI5ICs3MCwyOSBAQCBwdWJsaWM6CiAgICAgZW51bSBTaG91bGRFeHRyYWN0TWF0
Y2hpbmdTdHlsZSB7IEV4dHJhY3RNYXRjaGluZ1N0eWxlLCBEb05vdEV4dHJhY3RNYXRjaGluZ1N0
eWxlIH07CiAgICAgc3RhdGljIGZsb2F0IE5vRm9udERlbHRhOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RWRpdGluZ1N0eWxlPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxl
PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFZGl0aW5nU3R5
bGUoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBjcmVhdGUoTm9kZSogbm9k
ZSwgUHJvcGVydGllc1RvSW5jbHVkZSBwcm9wZXJ0aWVzVG9JbmNsdWRlID0gT25seUVkaXRpbmdJ
bmhlcml0YWJsZVByb3BlcnRpZXMpCisgICAgc3RhdGljIFJlZjxFZGl0aW5nU3R5bGU+IGNyZWF0
ZShOb2RlKiBub2RlLCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRpZXNUb0luY2x1ZGUgPSBP
bmx5RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllcykKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKG5vZGUsIHByb3BlcnRpZXNUb0luY2x1ZGUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRWRpdGluZ1N0eWxlKG5vZGUsIHByb3BlcnRpZXNU
b0luY2x1ZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+
IGNyZWF0ZShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIFByb3BlcnRpZXNUb0luY2x1ZGUgcHJv
cGVydGllc1RvSW5jbHVkZSA9IE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzKQorICAg
IHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxlPiBjcmVhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9u
LCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRpZXNUb0luY2x1ZGUgPSBPbmx5RWRpdGluZ0lu
aGVyaXRhYmxlUHJvcGVydGllcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RWRpdGluZ1N0eWxlKHBvc2l0aW9uLCBwcm9wZXJ0aWVzVG9JbmNsdWRlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZShwb3NpdGlvbiwgcHJvcGVydGllc1RvSW5j
bHVkZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gY3Jl
YXRlKGNvbnN0IFN0eWxlUHJvcGVydGllcyogc3R5bGUpCisgICAgc3RhdGljIFJlZjxFZGl0aW5n
U3R5bGU+IGNyZWF0ZShjb25zdCBTdHlsZVByb3BlcnRpZXMqIHN0eWxlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFZGl0aW5nU3R5bGUoc3R5bGUpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRWRpdGluZ1N0eWxlKHN0eWxlKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBjcmVhdGUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxlPiBj
cmVhdGUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFZGl0aW5nU3R5bGUocHJvcGVydHlJRCwg
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRWRpdGluZ1N0eWxlKHByb3Bl
cnR5SUQsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkVkaXRpbmdTdHls
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDVkNzM0MTcuLjdkODQwMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTg5NSw3ICs4OTUsNyBAQCB2b2lkIEVkaXRv
cjo6YXBwbHlTdHlsZShTdHlsZVByb3BlcnRpZXMqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6UmFuZ2VT
ZWxlY3Rpb246CiAgICAgICAgIGlmIChzdHlsZSkKLSAgICAgICAgICAgIGFwcGx5Q29tbWFuZChB
cHBseVN0eWxlQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6Y3JlYXRl
KHN0eWxlKS5nZXQoKSwgZWRpdGluZ0FjdGlvbikpOworICAgICAgICAgICAgYXBwbHlDb21tYW5k
KEFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgRWRpdGluZ1N0eWxlOjpjcmVh
dGUoc3R5bGUpLnB0cigpLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTkxNCw3ICs5MTQsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZShT
dHlsZVByb3BlcnRpZXMqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3RpbwogICAgIGNhc2Ug
VmlzaWJsZVNlbGVjdGlvbjo6Q2FyZXRTZWxlY3Rpb246CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0
aW9uOjpSYW5nZVNlbGVjdGlvbjoKICAgICAgICAgaWYgKHN0eWxlKQotICAgICAgICAgICAgYXBw
bHlDb21tYW5kKEFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgRWRpdGluZ1N0
eWxlOjpjcmVhdGUoc3R5bGUpLmdldCgpLCBlZGl0aW5nQWN0aW9uLCBBcHBseVN0eWxlQ29tbWFu
ZDo6Rm9yY2VCbG9ja1Byb3BlcnRpZXMpKTsKKyAgICAgICAgICAgIGFwcGx5Q29tbWFuZChBcHBs
eVN0eWxlQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6Y3JlYXRlKHN0
eWxlKS5wdHIoKSwgZWRpdGluZ0FjdGlvbiwgQXBwbHlTdHlsZUNvbW1hbmQ6OkZvcmNlQmxvY2tQ
cm9wZXJ0aWVzKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oCmluZGV4IGI0NWRlZDMuLjhjMDFjMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuaApAQCAtNDAsOSArNDAs
OSBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKIGNsYXNzIEZvcm1hdEJsb2NrQ29tbWFuZCA6
IHB1YmxpYyBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZvcm1hdEJsb2NrQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKKyAgICBzdGF0aWMgUmVmPEZvcm1hdEJsb2Nr
Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9ybWF0QmxvY2tD
b21tYW5kKGRvY3VtZW50LCB0YWdOYW1lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZvcm1hdEJsb2NrQ29tbWFuZChkb2N1bWVudCwgdGFnTmFtZSkpOwogICAgIH0KICAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKaW5k
ZXggZGU5MmE3MC4uOTJhNDI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bmRlbnRPdXRkZW50Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50
T3V0ZGVudENvbW1hbmQuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBJbmRlbnRPdXRkZW50Q29tbWFuZCA6IHB1YmxpYyBBcHBseUJsb2NrRWxlbWVudENvbW1h
bmQgewogcHVibGljOgogICAgIGVudW0gRUluZGVudFR5cGUgeyBJbmRlbnQsIE91dGRlbnQgfTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRlbnRPdXRkZW50Q29tbWFuZD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgRUluZGVudFR5cGUgdHlwZSwgaW50IG1hcmdpbkluUGl4ZWxzID0gMCkK
KyAgICBzdGF0aWMgUmVmPEluZGVudE91dGRlbnRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBFSW5kZW50VHlwZSB0eXBlLCBpbnQgbWFyZ2luSW5QaXhlbHMgPSAwKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmRlbnRPdXRkZW50Q29tbWFuZChkb2N1bWVu
dCwgdHlwZSwgbWFyZ2luSW5QaXhlbHMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5kZW50T3V0ZGVudENvbW1hbmQoZG9jdW1lbnQsIHR5cGUsIG1hcmdpbkluUGl4ZWxzKSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBmMjg2NGY1Li4zMTBiYmIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsOSAr
MzQsOSBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDog
cHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVmPElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmgKaW5kZXggNzAwYTk2OC4u
NWY4YWM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJl
YWtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtD
b21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJ
bnNlcnRMaW5lQnJlYWtDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNlcnRMaW5lQnJlYWtDb21tYW5kPiBjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0TGluZUJyZWFrQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZChkb2N1bWVudCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRMaW5lQnJlYWtDb21tYW5kKGRvY3VtZW50KSk7CiAg
ICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCmluZGV4IDFiMDFkYzUuLmQ0Yjc2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTMyLDEwICszMiwx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
IDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgIHN0
YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKICAg
ICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZv
cmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCBiMjk3ZDBhLi4xMjgxZjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7
CiAKIGNsYXNzIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQgOiBwdWJsaWMgQ29tcG9z
aXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
dXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJ
bnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVv
dGVkQXJlYSA9IGZhbHNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKGRvY3VtZW50LCB1c2VEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKGRvY3VtZW50
LCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVk
QXJlYSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
VGV4dENvbW1hbmQuaAppbmRleCAzOWYxZjc1Li5mMTBkMmZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OCwxNSArNDgsMTUgQEAgcHVibGljOgog
ICAgICAgICBSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcwogICAgIH07CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLAorICAgIHN0
YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwKICAgICAg
ICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQo
ZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRo
TWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBh
c3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAg
ICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtl
clN1cHBsaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21t
YW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQuaAppbmRleCA1YTVkZDcyLi42Mzg4MjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oCkBAIC0zMiw5
ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxFbGVtZW50PiBlbGVtZW50MSwgUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50MikK
KyAgICBzdGF0aWMgUmVmPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxFbGVtZW50PiBlbGVtZW50MSwgUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50MikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQoZWxlbWVudDEsIGVsZW1lbnQyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kKGVsZW1lbnQxLCBlbGVtZW50MikpOwog
ICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5oCmluZGV4IDM2N2FmNjQuLmVkNjk0Y2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaApAQCAtNTcsOSAr
NTcsOSBAQCBwcml2YXRlOgogICAgIGVudW0gVHlwZSB7IEluaGVyaXRlZExpc3RUeXBlLCBPcmRl
cmVkTGlzdCwgVW5vcmRlcmVkTGlzdCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGU+IGlu
Y3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKERvY3VtZW50KiwgVHlwZSk7CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFR5cGUgdHlwZSkKKyAgICBzdGF0aWMgUmVmPEluY3JlYXNlU2VsZWN0
aW9uTGlzdExldmVsQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgVHlwZSB0eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmNyZWFzZVNlbGVjdGlvbkxp
c3RMZXZlbENvbW1hbmQoZG9jdW1lbnQsIHR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kKGRvY3VtZW50LCB0eXBlKSk7
CiAgICAgfQogICAgIAogICAgIEluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZChEb2N1
bWVudCYsIFR5cGUpOwpAQCAtNzcsOSArNzcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
ZGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxEZWNyZWFzZVNlbGVjdGlvbkxp
c3RMZXZlbENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZChk
b2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWNyZWFzZVNlbGVjdGlv
bkxpc3RMZXZlbENvbW1hbmQoZG9jdW1lbnQpKTsKICAgICB9CiAKICAgICBleHBsaWNpdCBEZWNy
ZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCAxNDk0M2I1Li5hYzA5OTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oCkBA
IC0zNCw5ICszNCw5IEBAIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiAKIGNsYXNzIE1vdmVTZWxl
Y3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNb3ZlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwg
Ym9vbCBzbWFydEluc2VydCA9IGZhbHNlLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UpCisgICAg
c3RhdGljIFJlZjxNb3ZlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQsIGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgYm9vbCBzbWFy
dEluc2VydCA9IGZhbHNlLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE1vdmVTZWxlY3Rpb25Db21tYW5kKGZyYWdtZW50LCBwb3Np
dGlvbiwgc21hcnRJbnNlcnQsIHNtYXJ0RGVsZXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vdmVTZWxlY3Rpb25Db21tYW5kKGZyYWdtZW50LCBwb3NpdGlvbiwgc21hcnRJbnNl
cnQsIHNtYXJ0RGVsZXRlKSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgKaW5kZXggMDA0NTdmZC4uZTMy
MzAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5oCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiAKIGNsYXNz
IFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGVsZW1l
bnQsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8U3R5bGVk
RWxlbWVudD4gZWxlbWVudCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKGRvY3VtZW50LCBl
bGVtZW50LCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQoZG9jdW1lbnQsIGVsZW1lbnQsIHByb3BlcnR5KSk7CiAgICAgfQog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3Jt
YXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQu
aAppbmRleCBmMDE0YWRmLi5jZTg2MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZUZvcm1hdENvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFJlbW92ZUZvcm1hdENvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1h
bmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW92ZUZvcm1hdENvbW1hbmQ+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxSZW1vdmVGb3JtYXRD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdmVGb3JtYXRDb21tYW5kKGRvY3VtZW50KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZUZvcm1hdENvbW1hbmQoZG9jdW1lbnQpKTsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgK
aW5kZXggYjRiMTJjMS4uMTgxZTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3Zl
Tm9kZUNvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJlbW92ZU5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdmVOb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW92ZU5vZGVDb21tYW5kKG5v
ZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5oCmluZGV4IGRiNTIxOWQuLjRiOTE5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgK
QEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChu
b2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3Bh
bkNvbW1hbmQuaAppbmRleCBmYWEyZGE0Li4xNTEzYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oCkBAIC00MCw5ICs0MCw5
IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogLy8gTW9yZSBhY2N1cmF0ZWx5LCB0aGlzIGlzIFJlcGxh
Y2VFbGVtZW50V2l0aFNwYW5QcmVzZXJ2aW5nQ2hpbGRyZW5BbmRBdHRyaWJ1dGVzQ29tbWFuZAog
Y2xhc3MgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1h
bmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKKyAgICBzdGF0
aWMgUmVmPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQoZWxlbWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZChlbGVtZW50KSk7CiAgICAgfQogCiAg
ICAgSFRNTEVsZW1lbnQqIHNwYW5FbGVtZW50KCkgeyByZXR1cm4gbV9zcGFuRWxlbWVudC5nZXQo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oCmluZGV4IGY3MWIxMWMuLjU2MzZkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGljOgog
CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBv
cHRpb25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkKKyAgICBzdGF0aWMg
UmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRp
b25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZy
YWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rp
b24pKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nl
dE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgKaW5kZXggNzVmN2U4MC4uM2M2OTU3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaApAQCAtMzMs
OSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNldE5vZGVBdHRyaWJ1dGVD
b21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZXROb2RlQXR0cmlidXRlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQoZWxlbWVudCwgYXR0cmli
dXRlLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXROb2RlQXR0cmli
dXRlQ29tbWFuZChlbGVtZW50LCBhdHRyaWJ1dGUsIHZhbHVlKSk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBm
OWQ3ZjRiLi41OGYzMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNl
bGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlv
bkNvbW1hbmQuaApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNldFNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNldFNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMpCisgICAgc3RhdGljIFJlZjxTZXRTZWxlY3Rpb25Db21tYW5kPiBj
cmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTZXRTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgb3B0aW9ucykpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXRTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgb3B0
aW9ucykpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Np
bXBsaWZ5TWFya3VwQ29tbWFuZC5oCmluZGV4IGQwOWRlMjUuLjkxZjgwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuaApAQCAtMzIsOSArMzIs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNpbXBsaWZ5TWFya3VwQ29tbWFuZCA6
IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2ltcGxpZnlNYXJrdXBDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBO
b2RlKiBmaXJzdE5vZGUsIE5vZGUqIG5vZGVBZnRlckxhc3QpCisgICAgc3RhdGljIFJlZjxTaW1w
bGlmeU1hcmt1cENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE5vZGUqIGZpcnN0
Tm9kZSwgTm9kZSogbm9kZUFmdGVyTGFzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2ltcGxpZnlNYXJrdXBDb21tYW5kKGRvY3VtZW50LCBmaXJzdE5vZGUsIG5vZGVBZnRl
ckxhc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2ltcGxpZnlNYXJrdXBDb21t
YW5kKGRvY3VtZW50LCBmaXJzdE5vZGUsIG5vZGVBZnRlckxhc3QpKTsKICAgICB9CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggN2NlMjk2OC4u
ZGU3M2NiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApAQCAtNTcs
MTYgKzU3LDE2IEBAIFNwZWxsQ2hlY2tSZXF1ZXN0Ojp+U3BlbGxDaGVja1JlcXVlc3QoKQogfQog
CiAvLyBzdGF0aWMKLVBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2sgdGV4dENoZWNraW5nT3B0aW9ucywgVGV4
dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQorUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVN
YXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NU
eXBlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSkKIHsKICAgICBBU1NFUlQoY2hlY2tpbmdSYW5nZSk7CiAgICAgQVNTRVJU
KHBhcmFncmFwaFJhbmdlKTsKIAogICAgIFN0cmluZyB0ZXh0ID0gY2hlY2tpbmdSYW5nZS0+dGV4
dCgpOwogICAgIGlmICghdGV4dC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8
U3BlbGxDaGVja1JlcXVlc3Q+KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGVsbENoZWNrUmVxdWVzdChjaGVja2luZ1JhbmdlLCBwYXJhZ3Jh
cGhSYW5nZSwgdGV4dCwgdGV4dENoZWNraW5nT3B0aW9ucywgcHJvY2Vzc1R5cGUpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVsbENoZWNrUmVxdWVzdChjaGVja2luZ1JhbmdlLCBwYXJh
Z3JhcGhSYW5nZSwgdGV4dCwgdGV4dENoZWNraW5nT3B0aW9ucywgcHJvY2Vzc1R5cGUpKTsKIH0K
IAogY29uc3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIFNwZWxsQ2hlY2tSZXF1ZXN0OjpkYXRh
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IDYzNTNmNzAu
LjdiOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNDUsNyAr
NDUsNyBAQCBjbGFzcyBTcGVsbENoZWNrZXI7CiAKIGNsYXNzIFNwZWxsQ2hlY2tSZXF1ZXN0IDog
cHVibGljIFRleHRDaGVja2luZ1JlcXVlc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFRleHRD
aGVja2luZ1Byb2Nlc3NUeXBlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNz
UmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSk7CisgICAgc3RhdGljIFJlZlB0cjxTcGVsbENo
ZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tpbmdQcm9j
ZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5n
ZT4gcGFyYWdyYXBoUmFuZ2UpOwogICAgIHZpcnR1YWwgflNwZWxsQ2hlY2tSZXF1ZXN0KCk7CiAK
ICAgICBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9j
aGVja2luZ1JhbmdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
aW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGlu
Z0NvcnJlY3Rpb25Db21tYW5kLmNwcAppbmRleCBhMzYzOWU1Li42ZmU3MTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAK
QEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhpcyBpbmZvcm1hdGlv
biBpcyBuZWVkZWQgYnkgc3BlbGwgY2hlY2tpbmcgc2VydmljZSB0byB1cGRhdGUgdXNlciBzcGVj
aWZpYyBkYXRhLgogY2xhc3MgU3BlbGxpbmdDb3JyZWN0aW9uUmVjb3JkVW5kb0NvbW1hbmQgOiBw
dWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9u
KQorICAgIHN0YXRpYyBSZWY8U3BlbGxpbmdDb3JyZWN0aW9uUmVjb3JkVW5kb0NvbW1hbmQ+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGVkLCBjb25zdCBT
dHJpbmcmIGNvcnJlY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNw
ZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kKGRvY3VtZW50LCBjb3JyZWN0ZWQsIGNv
cnJlY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlbGxpbmdDb3JyZWN0
aW9uUmVjb3JkVW5kb0NvbW1hbmQoZG9jdW1lbnQsIGNvcnJlY3RlZCwgY29ycmVjdGlvbikpOwog
ICAgIH0KIHByaXZhdGU6CiAgICAgU3BlbGxpbmdDb3JyZWN0aW9uUmVjb3JkVW5kb0NvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGNvcnJlY3RlZCwgY29uc3QgU3RyaW5n
JiBjb3JyZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGlu
Z0NvcnJlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29y
cmVjdGlvbkNvbW1hbmQuaAppbmRleCA1MTg3MWI1Li4wNDUxZjYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuaApAQCAtMzMsOSAr
MzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNwZWxsaW5nQ29ycmVjdGlvbkNv
bW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFJhbmdlPiByYW5nZVRvQmVDb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKKyAg
ICBzdGF0aWMgUmVmPFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFJhbmdlPiByYW5nZVRvQmVDb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFu
ZChyYW5nZVRvQmVDb3JyZWN0ZWQsIGNvcnJlY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZChyYW5nZVRvQmVDb3JyZWN0ZWQsIGNv
cnJlY3Rpb24pKTsKICAgICB9CiBwcml2YXRlOgogICAgIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1h
bmQoUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VUb0JlQ29ycmVjdGVkLCBjb25zdCBTdHJpbmcmIGNv
cnJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1l
bnRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQu
aAppbmRleCAwZWFmMDZkLi43NmIzMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNwbGl0RWxlbWVudENvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwbGl0RWxlbWVudENvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gc3BsaXRQ
b2ludENoaWxkKQorICAgIHN0YXRpYyBSZWY8U3BsaXRFbGVtZW50Q29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgUGFzc1JlZlB0cjxOb2RlPiBzcGxpdFBvaW50Q2hp
bGQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwbGl0RWxlbWVudENvbW1h
bmQoZWxlbWVudCwgc3BsaXRQb2ludENoaWxkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwbGl0RWxlbWVudENvbW1hbmQoZWxlbWVudCwgc3BsaXRQb2ludENoaWxkKSk7CiAgICAg
fQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29t
bWFuZC5oCmluZGV4IDVlMDYyYTkuLjcxYTAwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDkgKzM0LDkgQEAgY2xhc3MgVGV4dDsK
IAogY2xhc3MgU3BsaXRUZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwbGl0VGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCBpbnQgb2Zmc2V0KQorICAgIHN0YXRpYyBSZWY8
U3BsaXRUZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIGludCBv
ZmZzZXQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwbGl0VGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGxp
dFRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxl
bWVudENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRh
aW5pbmdFbGVtZW50Q29tbWFuZC5oCmluZGV4IDcwM2E5MDkuLmIwMTRlY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5p
bmdFbGVtZW50Q29tbWFuZC5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZCA6IHB1YmxpYyBD
b21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3Bs
aXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgaW50IG9mZnNldCkKKyAgICBzdGF0aWMgUmVmPFNwbGl0VGV4dE5vZGVDb250YWlu
aW5nRWxlbWVudENvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIGludCBvZmZz
ZXQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwbGl0VGV4dE5vZGVDb250
YWluaW5nRWxlbWVudENvbW1hbmQobm9kZSwgb2Zmc2V0KSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQobm9kZSwgb2Zm
c2V0KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuaAppbmRleCBhOTYyYWZmLi5lYWI4MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0NvbW1hbmQuaApAQCAtODUsMTQgKzg1LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGluZ0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEVUeXBpbmdDb21tYW5kIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgdGV4dCA9ICIi
LCBPcHRpb25zIG9wdGlvbnMgPSAwLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBDaGFy
YWN0ZXJHcmFudWxhcml0eSkKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0NvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIEVUeXBpbmdDb21tYW5kIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYg
dGV4dCA9ICIiLCBPcHRpb25zIG9wdGlvbnMgPSAwLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVHlwaW5nQ29tbWFuZChkb2N1bWVudCwgY29tbWFuZCwgdGV4dCwgb3B0aW9ucywgZ3Jh
bnVsYXJpdHksIFRleHRDb21wb3NpdGlvbk5vbmUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nQ29tbWFuZChkb2N1bWVudCwgY29tbWFuZCwgdGV4dCwgb3B0aW9ucywgZ3Jh
bnVsYXJpdHksIFRleHRDb21wb3NpdGlvbk5vbmUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxUeXBpbmdDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFVHlwaW5n
Q29tbWFuZCBjb21tYW5kLCBjb25zdCBTdHJpbmcmIHRleHQsIE9wdGlvbnMgb3B0aW9ucywgVGV4
dENvbXBvc2l0aW9uVHlwZSBjb21wb3NpdGlvblR5cGUpCisgICAgc3RhdGljIFJlZjxUeXBpbmdD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFVHlwaW5nQ29tbWFuZCBjb21tYW5k
LCBjb25zdCBTdHJpbmcmIHRleHQsIE9wdGlvbnMgb3B0aW9ucywgVGV4dENvbXBvc2l0aW9uVHlw
ZSBjb21wb3NpdGlvblR5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFR5
cGluZ0NvbW1hbmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIENoYXJhY3Rlckdy
YW51bGFyaXR5LCBjb21wb3NpdGlvblR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVHlwaW5nQ29tbWFuZChkb2N1bWVudCwgY29tbWFuZCwgdGV4dCwgb3B0aW9ucywgQ2hhcmFj
dGVyR3JhbnVsYXJpdHksIGNvbXBvc2l0aW9uVHlwZSkpOwogICAgIH0KIAogICAgIFR5cGluZ0Nv
bW1hbmQoRG9jdW1lbnQmLCBFVHlwaW5nQ29tbWFuZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBPcHRp
b25zLCBUZXh0R3JhbnVsYXJpdHksIFRleHRDb21wb3NpdGlvblR5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1VubGlua0NvbW1hbmQuaAppbmRleCAxZGJiOWVhLi42YzI0YTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1VubGlua0NvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFVubGlua0NvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVubGlua0NvbW1hbmQ+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxVbmxpbmtDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBVbmxpbmtDb21tYW5kKGRvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFVubGlua0NvbW1hbmQoZG9jdW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQuaAppbmRleCAxYTk1ZDYwLi40ODFmOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmgKQEAgLTM0LDkgKzM0
LDkgQEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiAKIGNsYXNzIFdyYXBDb250ZW50c0luRHVtbXlTcGFu
Q29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxFbGVtZW50PiBlbGVtZW50KQorICAgIHN0YXRpYyBSZWY8V3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQoZWxlbWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQoZWxlbWVudCkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAppbmRleCBlZGRm
MDUyLi41NjExOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0
YXRpb25Db21tYW5kSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0
aW9uQ29tbWFuZElPUy5oCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRGljdGF0aW9uQ29tbWFuZElPUyA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGljdGF0aW9uQ29tbWFuZElPUz4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc093blB0cjxWZWN0b3I8VmVjdG9yPFN0cmluZz4g
PiA+IGRpY3RhdGlvblBocmFzZSwgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSkKKyAgICBzdGF0aWMg
UmVmPERpY3RhdGlvbkNvbW1hbmRJT1M+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NP
d25QdHI8VmVjdG9yPFZlY3RvcjxTdHJpbmc+ID4gPiBkaWN0YXRpb25QaHJhc2UsIFJldGFpblB0
cjxpZD4gbWV0YWRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3Rh
dGlvbkNvbW1hbmRJT1MoZG9jdW1lbnQsIGRpY3RhdGlvblBocmFzZSwgbWV0YWRhdGEpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uQ29tbWFuZElPUyhkb2N1bWVudCwg
ZGljdGF0aW9uUGhyYXNlLCBtZXRhZGF0YSkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5E
aWN0YXRpb25Db21tYW5kSU9TKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IGRmZmNhZDYuLjQ5
NTgzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAi
QmxvYlBhcnQuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJVUkxS
ZWdpc3RyeS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDQsMjUg
KzQzLDI1IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEJsb2IgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBSZWZD
b3VudGVkPEJsb2I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVh
dGUoKQorICAgIHN0YXRpYyBSZWY8QmxvYj4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQmxvYik7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2Ip
OwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGNyZWF0ZShWZWN0b3I8Y2hh
cj4gZGF0YSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKKyAgICBzdGF0aWMgUmVmPEJsb2I+
IGNyZWF0ZShWZWN0b3I8Y2hhcj4gZGF0YSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihXVEY6Om1vdmUoZGF0YSksIGNv
bnRlbnRUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2IoV1RGOjptb3Zl
KGRhdGEpLCBjb250ZW50VHlwZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJs
b2I+IGNyZWF0ZShWZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkKKyAgICBzdGF0aWMgUmVmPEJsb2I+IGNyZWF0ZShWZWN0b3I8QmxvYlBhcnQ+IGJs
b2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQmxvYihXVEY6Om1vdmUoYmxvYlBhcnRzKSwgY29udGVudFR5cGUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYihXVEY6Om1vdmUoYmxvYlBhcnRzKSwg
Y29udGVudFR5cGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBkZXNl
cmlhbGl6ZShjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0eXBlLCBsb25nIGxvbmcg
c2l6ZSkKKyAgICBzdGF0aWMgUmVmPEJsb2I+IGRlc2VyaWFsaXplKGNvbnN0IFVSTCYgc3JjVVJM
LCBjb25zdCBTdHJpbmcmIHR5cGUsIGxvbmcgbG9uZyBzaXplKQogICAgIHsKICAgICAgICAgQVNT
RVJUKEJsb2I6OmlzTm9ybWFsaXplZENvbnRlbnRUeXBlKHR5cGUpKTsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBCbG9iKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIHNyY1VSTCwgdHlw
ZSwgc2l6ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKGRlc2VyaWFsaXph
dGlvbkNvbnRydWN0b3IsIHNyY1VSTCwgdHlwZSwgc2l6ZSkpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkJsb2IoKTsKQEAgLTg0LDkgKzgzLDkgQEAgcHVibGljOgogICAgIC8vIFVSTFJlZ2lzdHJh
YmxlCiAgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIFBhc3NSZWZQdHI8QmxvYj4gc2xpY2UobG9uZyBsb25nIHN0YXJ0ID0gMCwgbG9uZyBs
b25nIGVuZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCksIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUgPSBTdHJpbmcoKSkgY29uc3QKKyAgICBSZWY8QmxvYj4gc2xpY2Uo
bG9uZyBsb25nIHN0YXJ0ID0gMCwgbG9uZyBsb25nIGVuZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
bG9uZyBsb25nPjo6bWF4KCksIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUgPSBTdHJpbmcoKSkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihtX2ludGVybmFs
VVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBCbG9iKG1faW50ZXJuYWxVUkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCmluZGV4IGJkMTZhNDcuLjM1YzRkYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEZpbGVfaAog
CiAjaW5jbHVkZSAiQmxvYi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzcsMjIgKzM3LDIyIEBAIGNsYXNzIFVSTDsKIAogY2xh
c3MgRmlsZSBmaW5hbCA6IHB1YmxpYyBCbG9iIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGaWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorICAgIHN0YXRpYyBSZWY8Rmls
ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRmlsZShwYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGUo
cGF0aCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGU+IGRlc2VyaWFsaXpl
KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHN0YXRpYyBSZWY8RmlsZT4gZGVzZXJpYWxpemUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEZpbGUoZGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgcGF0aCwgc3JjVVJMLCB0eXBlLCBuYW1l
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGUoZGVzZXJpYWxpemF0aW9uQ29u
dHJ1Y3RvciwgcGF0aCwgc3JjVVJMLCB0eXBlLCBuYW1lKSk7CiAgICAgfQogCiAgICAgLy8gQ3Jl
YXRlIGEgZmlsZSB3aXRoIGEgbmFtZSBleHBvc2VkIHRvIHRoZSBhdXRob3IgKHZpYSBGaWxlLm5h
bWUgYW5kIGFzc29jaWF0ZWQgRE9NIHByb3BlcnRpZXMpIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBv
bmUgcHJvdmlkZWQgaW4gdGhlIHBhdGguCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZT4gY3Jl
YXRlV2l0aE5hbWUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlk
ZSkKKyAgICBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZVdpdGhOYW1lKGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUpCiAgICAgewogICAgICAgICBpZiAobmFtZU92
ZXJyaWRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZShw
YXRoKSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZShwYXRoLCBuYW1lT3ZlcnJp
ZGUpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGUocGF0aCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKHBhdGgsIG5hbWVPdmVycmlkZSkpOwogICAg
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0ZpbGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmgKaW5kZXggYmJlNmRlYi4uYWY0OGRiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaApAQCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZUxpc3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBw
dWJsaWMgUmVmQ291bnRlZDxGaWxlTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEZpbGVMaXN0PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVMaXN0KTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZUxpc3QpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZpbGVMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxGaWxlPj4mJiBmaWxlcykKKyAg
ICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxGaWxlPj4mJiBmaWxl
cykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZUxpc3QoV1RGOjptb3Zl
KGZpbGVzKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlTGlzdChXVEY6Om1v
dmUoZmlsZXMpKSk7CiAgICAgfQogCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9maWxlcy5zaXplKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmlu
ZGV4IDA2ZjMwNWIuLjczMTgxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNw
cApAQCAtNDUsMTEgKzQ1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0
IGF1dG8gcHJvZ3Jlc3NOb3RpZmljYXRpb25JbnRlcnZhbCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMoNTApOwogCi1QYXNzUmVmUHRyPEZpbGVSZWFkZXI+IEZpbGVSZWFkZXI6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorUmVmPEZpbGVSZWFkZXI+IEZpbGVSZWFk
ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIFJlZlB0
cjxGaWxlUmVhZGVyPiBmaWxlUmVhZGVyKGFkb3B0UmVmKG5ldyBGaWxlUmVhZGVyKGNvbnRleHQp
KSk7CisgICAgUmVmPEZpbGVSZWFkZXI+IGZpbGVSZWFkZXIgPSBhZG9wdFJlZigqbmV3IEZpbGVS
ZWFkZXIoY29udGV4dCkpOwogICAgIGZpbGVSZWFkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwotICAg
IHJldHVybiBmaWxlUmVhZGVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZmlsZVJlYWRlcjsKIH0K
IAogRmlsZVJlYWRlcjo6RmlsZVJlYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAppbmRleCBjMzBlNGMwLi5mMDAyZjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaApAQCAtNTQsNyArNTQsNyBAQCB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGaWxlUmVhZGVyIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8RmlsZVJlYWRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgRmlsZVJlYWRlckxvYWRlckNsaWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZVJlYWRlcj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVSZWFkZXI+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIH5GaWxlUmVhZGVyKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaAppbmRleCBjZDI1MzYwLi4zMDI4MjFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5oCkBAIC00OSw5ICs0OSw5
IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIEZpbGVSZWFkZXJTeW5jIDog
cHVibGljIFJlZkNvdW50ZWQ8RmlsZVJlYWRlclN5bmM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGaWxlUmVhZGVyU3luYz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEZpbGVS
ZWFkZXJTeW5jPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
aWxlUmVhZGVyU3luYygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVJlYWRl
clN5bmMpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkZpbGVSZWFkZXJTeW5jKCkgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAppbmRleCBhZTNjOTdkLi5hMzNjOGE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKQEAgLTQxLDcgKzQx
LDcgQEAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+IEhpc3RvcnlJdGVtSGFz
aFNldDsKIAogY2xhc3MgQmFja0ZvcndhcmRMaXN0IDogcHVibGljIEJhY2tGb3J3YXJkQ2xpZW50
IHsKIHB1YmxpYzogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBjcmVh
dGUoUGFnZSogcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEJhY2tGb3J3YXJkTGlzdChwYWdl
KSk7IH0KKyAgICBzdGF0aWMgUmVmPEJhY2tGb3J3YXJkTGlzdD4gY3JlYXRlKFBhZ2UqIHBhZ2Up
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmFja0ZvcndhcmRMaXN0KHBhZ2UpKTsgfQogICAgIHZp
cnR1YWwgfkJhY2tGb3J3YXJkTGlzdCgpOwogCiAgICAgUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1f
cGFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5o
IGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCmluZGV4IGRkYjk4YzcuLjM4
MDAxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKQEAgLTYzLDE4ICs2Mywx
OCBAQCBjbGFzcyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7
CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsKIAogcHVibGljOiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIaXN0b3J5SXRlbT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEhpc3Rv
cnlJdGVtKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUpCisgICAgc3RhdGljIFJl
ZjxIaXN0b3J5SXRlbT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaXN0b3J5SXRl
bSk7IH0KKyAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEhpc3RvcnlJdGVtKHVybFN0cmluZywgdGl0bGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSGlzdG9yeUl0ZW0odXJsU3RyaW5nLCB0aXRsZSkpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGFsdGVybmF0ZVRpdGxl
KQorICAgIHN0YXRpYyBSZWY8SGlzdG9yeUl0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybFN0
cmluZywgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBhbHRlcm5hdGVUaXRsZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGlzdG9yeUl0ZW0odXJsU3RyaW5n
LCB0aXRsZSwgYWx0ZXJuYXRlVGl0bGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlzdG9yeUl0ZW0odXJsU3RyaW5nLCB0aXRsZSwgYWx0ZXJuYXRlVGl0bGUpKTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgcGFyZW50LCBjb25zdCBTdHJpbmcm
IHRpdGxlKQorICAgIHN0YXRpYyBSZWY8SGlzdG9yeUl0ZW0+IGNyZWF0ZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgcGFyZW50LCBjb25zdCBTdHJp
bmcmIHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIaXN0b3J5SXRl
bSh1cmwsIHRhcmdldCwgcGFyZW50LCB0aXRsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIaXN0b3J5SXRlbSh1cmwsIHRhcmdldCwgcGFyZW50LCB0aXRsZSkpOwogICAgIH0KICAg
ICAKICAgICBXRUJDT1JFX0VYUE9SVCB+SGlzdG9yeUl0ZW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNw
cAppbmRleCAzNmZjODM1Li5kNDU5ZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBAIC0zOCwy
MCArMzgsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERPTVVSTD4g
RE9NVVJMOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgYmFzZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpIAorUmVmPERPTVVSTD4gRE9NVVJMOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01VUkwodXJsLCBiYXNlLCBlYykpOyAKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBET01VUkwodXJsLCBiYXNlLCBlYykpOwogfQogCi1QYXNzUmVmUHRyPERPTVVS
TD4gRE9NVVJMOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERPTVVSTCogYmFzZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIAorUmVmPERPTVVSTD4gRE9NVVJMOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IERPTVVSTCogYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
QVNTRVJUKGJhc2UpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NVVJMKHVybCwgKmJhc2Us
IGVjKSk7IAorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERPTVVSTCh1cmwsICpiYXNlLCBlYykp
OwogfQogCi1QYXNzUmVmUHRyPERPTVVSTD4gRE9NVVJMOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1
cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKSAKK1JlZjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERPTVVSTCh1cmwsIGVjKSk7IAorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERPTVVSTCh1
cmwsIGVjKSk7CiB9CiAKIGlubGluZSBET01VUkw6OkRPTVVSTChjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiBiYXNlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCmlu
ZGV4IDRmZjYxNzIuLmJjMzA4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VVJMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaApAQCAtMzEsNyArMzEsNiBA
QAogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlVSTFV0aWxzLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ0LDkg
KzQzLDkgQEAgY2xhc3MgVVJMUmVnaXN0cmFibGU7CiBjbGFzcyBET01VUkwgOiBwdWJsaWMgUmVm
Q291bnRlZDxET01VUkw+LCBwdWJsaWMgVVJMVXRpbHM8RE9NVVJMPiB7CiAKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01VUkw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU3RyaW5nJiBiYXNlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERPTVVSTCogYmFzZSwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVVSTD4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZjxET01VUkw+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBiYXNlLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgc3RhdGljIFJlZjxET01VUkw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgRE9NVVJMKiBiYXNlLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZjxET01VUkw+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgVVJMIGhy
ZWYoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIHZvaWQgc2V0SHJlZihjb25zdCBTdHJp
bmcmIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcAppbmRleCAzZTUzOWFmLi43YzE1ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdl
KQogCiBzdGF0aWMgRE9NV3JhcHBlcldvcmxkJiBwbHVnSW5JbWFnZUVsZW1lbnRJc29sYXRlZFdv
cmxkKCkKIHsKLSAgICBzdGF0aWMgRE9NV3JhcHBlcldvcmxkJiBpc29sYXRlZFdvcmxkID0gKkRP
TVdyYXBwZXJXb3JsZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKS5sZWFrUmVmKCk7
CisgICAgc3RhdGljIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCA9IERPTVdyYXBwZXJX
b3JsZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKS5sZWFrUmVmKCk7CiAgICAgcmV0
dXJuIGlzb2xhdGVkV29ybGQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0dyYWRpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5oCmluZGV4IDZiZmIxNmUuLmFjMDVhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaApAQCAtMzgsMTMgKzM4LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhbnZhc0dyYWRpZW50IDogcHVibGljIFJlZkNvdW50
ZWQ8Q2FudmFzR3JhZGllbnQ+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENhbnZhc0dyYWRpZW50PiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgcDAsIGNvbnN0IEZs
b2F0UG9pbnQmIHAxKQorICAgICAgICBzdGF0aWMgUmVmPENhbnZhc0dyYWRpZW50PiBjcmVhdGUo
Y29uc3QgRmxvYXRQb2ludCYgcDAsIGNvbnN0IEZsb2F0UG9pbnQmIHAxKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZhc0dyYWRpZW50KHAwLCBwMSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FudmFzR3JhZGllbnQocDAsIHAxKSk7
CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FudmFzR3JhZGllbnQ+IGNy
ZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAx
LCBmbG9hdCByMSkKKyAgICAgICAgc3RhdGljIFJlZjxDYW52YXNHcmFkaWVudD4gY3JlYXRlKGNv
bnN0IEZsb2F0UG9pbnQmIHAwLCBmbG9hdCByMCwgY29uc3QgRmxvYXRQb2ludCYgcDEsIGZsb2F0
IHIxKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZhc0dy
YWRpZW50KHAwLCByMCwgcDEsIHIxKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDYW52YXNHcmFkaWVudChwMCwgcjAsIHAxLCByMSkpOwogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICBHcmFkaWVudCYgZ3JhZGllbnQoKSB7IHJldHVybiBtX2dyYWRpZW50OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCmluZGV4IDZjYmNjODEu
Ljc3Y2RlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Bh
dHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4u
Y3BwCkBAIC0zMyw5ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0
cjxDYW52YXNQYXR0ZXJuPiBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoUGFzc1JlZlB0cjxJbWFnZT4g
aW1hZ2UsIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNsZWFuKQorUmVm
PENhbnZhc1BhdHRlcm4+IENhbnZhc1BhdHRlcm46OmNyZWF0ZShQYXNzUmVmUHRyPEltYWdlPiBp
bWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFksIGJvb2wgb3JpZ2luQ2xlYW4pCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNQYXR0ZXJuKGltYWdlLCByZXBlYXRYLCByZXBl
YXRZLCBvcmlnaW5DbGVhbikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhbnZhc1BhdHRl
cm4oaW1hZ2UsIHJlcGVhdFgsIHJlcGVhdFksIG9yaWdpbkNsZWFuKSk7CiB9CiAKIENhbnZhc1Bh
dHRlcm46OkNhbnZhc1BhdHRlcm4oUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UsIGJvb2wgcmVwZWF0
WCwgYm9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNsZWFuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUGF0dGVybi5oCmluZGV4IDg1M2NlMjYuLmMyYTRjMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmgKQEAgLTQwLDcgKzQwLDcgQEAgdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgQ2FudmFzUGF0dGVybiA6IHB1YmxpYyBS
ZWZDb3VudGVkPENhbnZhc1BhdHRlcm4+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDYW52YXNQYXR0ZXJuPiBjcmVhdGUoUGFzc1JlZlB0cjxJbWFnZT4sIGJvb2wgcmVwZWF0WCwg
Ym9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNsZWFuKTsKKyAgICBzdGF0aWMgUmVmPENhbnZhc1Bh
dHRlcm4+IGNyZWF0ZShQYXNzUmVmUHRyPEltYWdlPiwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVh
dFksIGJvb2wgb3JpZ2luQ2xlYW4pOwogICAgIH5DYW52YXNQYXR0ZXJuKCk7CiAKICAgICBzdGF0
aWMgdm9pZCBwYXJzZVJlcGV0aXRpb25UeXBlKGNvbnN0IFN0cmluZyYsIGJvb2wmIHJlcGVhdFgs
IGJvb2wmIHJlcGVhdFksIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RP
TVBhdGguaAppbmRleCA2YWY4ZTM2Li5lYjRiZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9ET01QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
RE9NUGF0aC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ2FudmFzUGF0aE1ldGhvZHMu
aCIKICNpbmNsdWRlICJTVkdNYXRyaXguaCIKICNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVzLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRE9NUGF0aCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVBhdGg+
LCBwdWJsaWMgQ2FudmFzUGF0aE1ldGhvZHMgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01QYXRoKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBh
dGg+IGNyZWF0ZShjb25zdCBQYXRoJiBwYXRoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NUGF0
aChwYXRoKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoY29uc3Qg
RE9NUGF0aCogcGF0aCkgeyByZXR1cm4gY3JlYXRlKHBhdGgtPnBhdGgoKSk7IH0KKyAgICBzdGF0
aWMgUmVmPERPTVBhdGg+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGF0aCk7
IH0KKyAgICBzdGF0aWMgUmVmPERPTVBhdGg+IGNyZWF0ZShjb25zdCBQYXRoJiBwYXRoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IERPTVBhdGgocGF0aCkpOyB9CisgICAgc3RhdGljIFJlZjxET01Q
YXRoPiBjcmVhdGUoY29uc3QgRE9NUGF0aCogcGF0aCkgeyByZXR1cm4gY3JlYXRlKHBhdGgtPnBh
dGgoKSk7IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBhdGg+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHBhdGhEYXRhKQorICAgIHN0YXRpYyBSZWY8RE9NUGF0aD4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgcGF0aERhdGEpCiAgICAgewogICAgICAgICBQYXRoIHBhdGg7CiAgICAgICAgIGJ1aWxk
UGF0aEZyb21TdHJpbmcocGF0aERhdGEsIHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDM3ZmE0M2MuLmI0OTZh
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKQEAgLTM5LDkgKzM5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPERldGFpbHNNYXJrZXJDb250cm9sPiBEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxEZXRhaWxzTWFya2VyQ29udHJvbD4gRGV0YWls
c01hcmtlckNvbnRyb2w6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEZXRhaWxzTWFya2VyQ29udHJvbChkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERldGFpbHNNYXJrZXJDb250cm9sKGRvY3VtZW50KSk7CiB9CiAKIERl
dGFpbHNNYXJrZXJDb250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1l
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuaAppbmRleCA4MWNmMWNkLi40N2FiMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXRhaWxzTWFya2VyQ29udHJvbCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0YWls
c01hcmtlckNvbnRyb2w+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8RGV0YWls
c01hcmtlckNvbnRyb2w+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIERldGFp
bHNNYXJrZXJDb250cm9sKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5oCmluZGV4IDk1Y2UwZjAuLjBlYmRjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFjay5oCkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKIAogY2xhc3MgQXVkaW9UcmFj
ayBmaW5hbCA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9UcmFjaz4gY3JlYXRlKEF1
ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKEF1ZGlvVHJhY2tD
bGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNrKGNsaWVudCwg
dHJhY2tQcml2YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2so
Y2xpZW50LCB0cmFja1ByaXZhdGUpKTsKICAgICB9CiAgICAgdmlydHVhbCB+QXVkaW9UcmFjaygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgKaW5kZXggOTU2
YjA0YS4uNzNmYzA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xp
c3QuaApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBBdWRpb1RyYWNrOwogCiBjbGFzcyBBdWRpb1Ry
YWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xpc3RCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxBdWRpb1RyYWNrTGlzdD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG93
bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHN0YXRpYyBSZWY8QXVk
aW9UcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBvd25lciwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QXVkaW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXVkaW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQpKTsKICAgICB9CiAgICAgdmlydHVh
bCB+QXVkaW9UcmFja0xpc3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9EYXRhQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0RhdGFDdWUuaAppbmRl
eCBiNDkwZjYzLi5lZjUyZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0RhdGFDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0RhdGFDdWUuaApAQCAt
NDUsMzAgKzQ1LDMwIEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIERh
dGFDdWUgZmluYWwgOiBwdWJsaWMgVGV4dFRyYWNrQ3VlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIEFycmF5QnVm
ZmVyKiBkYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBzdGF0aWMgUmVmPERhdGFDdWU+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgQXJyYXlCdWZmZXIqIGRhdGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhQ3VlKGNvbnRl
eHQsIHN0YXJ0LCBlbmQsIGRhdGEsIGVtcHR5U3RyaW5nKCksIGVjKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERhdGFDdWUoY29udGV4dCwgc3RhcnQsIGVuZCwgZGF0YSwgZW1wdHlT
dHJpbmcoKSwgZWMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhQ3VlPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKKyAgICBzdGF0aWMgUmVmPERhdGFDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0
aCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0
LCBlbmQsIGRhdGEsIGxlbmd0aCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERh
dGFDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgQXJyYXlCdWZmZXIqIGRhdGEsIGNv
bnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgc3RhdGljIFJlZjxEYXRh
Q3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIEFycmF5QnVmZmVyKiBkYXRhLCBjb25z
dCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGRhdGEsIHR5cGUsIGVj
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFDdWUoY29udGV4dCwgc3RhcnQs
IGVuZCwgZGF0YSwgdHlwZSwgZWMpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxV
RSkKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBsYXRm
b3JtVmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICBzdGF0aWMgUmVmPERhdGFDdWU+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQs
IHBsYXRmb3JtVmFsdWUsIHR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0
YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVlLCB0eXBlKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YUN1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBKU0M6OkpTVmFsdWUgdmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICBzdGF0aWMg
UmVmPERhdGFDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgSlNDOjpKU1ZhbHVlIHZh
bHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERhdGFDdWUoY29udGV4dCwgc3RhcnQsIGVuZCwgdmFsdWUsIHR5cGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCB2YWx1ZSwg
dHlwZSkpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b21tYW5kTGluZUFQSUhvc3QuY3BwCmluZGV4IDI1NDc5MGMuLmIxM2Q5YzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwCkBAIC02MCw5ICs2
MCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFzc1JlZlB0cjxDb21tYW5kTGluZUFQSUhvc3Q+IENvbW1hbmRMaW5lQVBJSG9zdDo6Y3Jl
YXRlKCkKK1JlZjxDb21tYW5kTGluZUFQSUhvc3Q+IENvbW1hbmRMaW5lQVBJSG9zdDo6Y3JlYXRl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbW1hbmRMaW5lQVBJSG9zdCk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tbWFuZExpbmVBUElIb3N0KTsKIH0KIAogQ29tbWFuZExp
bmVBUElIb3N0OjpDb21tYW5kTGluZUFQSUhvc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5oCmluZGV4IGM0OTRlMzYuLmIwM2YxOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmgKQEAgLTYwLDcgKzYw
LDcgQEAgc3RydWN0IEV2ZW50TGlzdGVuZXJJbmZvOwogCiBjbGFzcyBDb21tYW5kTGluZUFQSUhv
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxDb21tYW5kTGluZUFQSUhvc3Q+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDb21tYW5kTGluZUFQSUhvc3Q+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBSZWY8Q29tbWFuZExpbmVBUElIb3N0PiBjcmVhdGUoKTsKICAgICB+Q29tbWFuZExpbmVB
UElIb3N0KCk7CiAKICAgICB2b2lkIGluaXQoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggMzc2
MDA1ZC4uMTg4ZTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAg
LTc4LDkgKzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERvY3VtZW50TG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRMb2FkZXI+LCBwcml2YXRlIENhY2hlZFJh
d1Jlc291cmNlQ2xpZW50IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAg
cHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudExvYWRlcj4gY3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIGRh
dGEpCisgICAgICAgIHN0YXRpYyBSZWY8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50TG9hZGVyKHJlcXVl
c3QsIGRhdGEpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERvY3VtZW50TG9h
ZGVyKHJlcXVlc3QsIGRhdGEpKTsKICAgICAgICAgfQogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIH5Eb2N1bWVudExvYWRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRm9ybVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuY3Bw
CmluZGV4IDY5OTQ4NGUuLjM1MTBiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Gb3JtU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuY3Bw
CkBAIC00Miw5ICs0Miw5IEBAIGlubGluZSBGb3JtU3RhdGU6OkZvcm1TdGF0ZShQYXNzUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gZm9ybSwgU3RyaW5nUGFpclZlY3RvciYKICAgICBtX3RleHRGaWVs
ZFZhbHVlcy5zd2FwKHRleHRGaWVsZFZhbHVlc1RvQWRvcHQpOwogfQogCi1QYXNzUmVmUHRyPEZv
cm1TdGF0ZT4gRm9ybVN0YXRlOjpjcmVhdGUoUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZv
cm0sIFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlc1RvQWRvcHQsIFBhc3NSZWZQdHI8
RG9jdW1lbnQ+IHNvdXJjZURvY3VtZW50LCBGb3JtU3VibWlzc2lvblRyaWdnZXIgZm9ybVN1Ym1p
c3Npb25UcmlnZ2VyKQorUmVmPEZvcm1TdGF0ZT4gRm9ybVN0YXRlOjpjcmVhdGUoUGFzc1JlZlB0
cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm0sIFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVl
c1RvQWRvcHQsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IHNvdXJjZURvY3VtZW50LCBGb3JtU3VibWlz
c2lvblRyaWdnZXIgZm9ybVN1Ym1pc3Npb25UcmlnZ2VyKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRm9ybVN0YXRlKGZvcm0sIHRleHRGaWVsZFZhbHVlc1RvQWRvcHQsIHNvdXJjZURvY3Vt
ZW50LCBmb3JtU3VibWlzc2lvblRyaWdnZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
b3JtU3RhdGUoZm9ybSwgdGV4dEZpZWxkVmFsdWVzVG9BZG9wdCwgc291cmNlRG9jdW1lbnQsIGZv
cm1TdWJtaXNzaW9uVHJpZ2dlcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmgK
aW5kZXggM2QxOGEyNi4uZDE3OTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Zvcm1TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaApAQCAt
NDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBGb3JtU3RhdGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxGb3JtU3RhdGU+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gY3JlYXRlKFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiwgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzVG9BZG9wdCwgUGFzc1JlZlB0
cjxEb2N1bWVudD4sIEZvcm1TdWJtaXNzaW9uVHJpZ2dlcik7CisgICAgICAgIHN0YXRpYyBSZWY8
Rm9ybVN0YXRlPiBjcmVhdGUoUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+LCBTdHJpbmdQYWly
VmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBQYXNzUmVmUHRyPERvY3VtZW50PiwgRm9y
bVN1Ym1pc3Npb25UcmlnZ2VyKTsKIAogICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBj
b25zdCB7IHJldHVybiBtX2Zvcm0uZ2V0KCk7IH0KICAgICAgICAgY29uc3QgU3RyaW5nUGFpclZl
Y3RvciYgdGV4dEZpZWxkVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RmllbGRWYWx1ZXM7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCmluZGV4IDliODczODYu
LmYzOGIxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApAQCAt
MTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBUZXh0RW5jb2RpbmcgZW5jb2RpbmdGcm9tQWNjZXB0Q2hh
cnNldChjb25zdCBTdHJpbmcmIGFjY2VwdENoYXJzZXQsIERvY3VtCiAgICAgcmV0dXJuIGRvY3Vt
ZW50LmlucHV0RW5jb2RpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gRm9y
bVN1Ym1pc3Npb246OmNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvbnN0IEF0dHJpYnV0
ZXMmIGF0dHJpYnV0ZXMsIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBMb2NrSGlzdG9yeSBsb2Nr
SGlzdG9yeSwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIHRyaWdnZXIpCitSZWY8Rm9ybVN1Ym1pc3Np
b24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBB
dHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgTG9ja0hpc3Rv
cnkgbG9ja0hpc3RvcnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciB0cmlnZ2VyKQogewogICAgIEFT
U0VSVChmb3JtKTsKIApAQCAtMjM2LDcgKzIzNiw3IEBAIFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Np
b24+IEZvcm1TdWJtaXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBB
CiAgICAgZm9ybURhdGEtPnNldENvbnRhaW5zUGFzc3dvcmREYXRhKGNvbnRhaW5zUGFzc3dvcmRE
YXRhKTsKICAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gY29waWVkQXR0cmlidXRlcy50
YXJnZXQoKS5pc0VtcHR5KCkgPyBkb2N1bWVudC5iYXNlVGFyZ2V0KCkgOiBjb3BpZWRBdHRyaWJ1
dGVzLnRhcmdldCgpOwogICAgIFJlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IEZvcm1TdGF0
ZTo6Y3JlYXRlKGZvcm0sIGZvcm1WYWx1ZXMsICZkb2N1bWVudCwgdHJpZ2dlcik7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGb3JtU3VibWlzc2lvbihjb3BpZWRBdHRyaWJ1dGVzLm1ldGhvZCgp
LCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgZW5jb2RpbmdUeXBlLCBmb3JtU3RhdGUu
cmVsZWFzZSgpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZl
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGb3JtU3VibWlzc2lvbihjb3BpZWRBdHRy
aWJ1dGVzLm1ldGhvZCgpLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgZW5jb2RpbmdU
eXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5LCBs
b2NrSGlzdG9yeSwgZXZlbnQpKTsKIH0KIAogVVJMIEZvcm1TdWJtaXNzaW9uOjpyZXF1ZXN0VVJM
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKaW5kZXggODMxNWYw
Mi4uMTgyMTBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmgKQEAgLTg5
LDcgKzg5LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgbV9hY2NlcHRDaGFyc2V0OwogICAg
IH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gY3JlYXRlKEhUTUxG
b3JtRWxlbWVudCosIGNvbnN0IEF0dHJpYnV0ZXMmLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwg
TG9ja0hpc3RvcnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dlcik7CisgICAgc3RhdGljIFJlZjxGb3Jt
U3VibWlzc2lvbj4gY3JlYXRlKEhUTUxGb3JtRWxlbWVudCosIGNvbnN0IEF0dHJpYnV0ZXMmLCBQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCwgTG9ja0hpc3RvcnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dl
cik7CiAKICAgICB2b2lkIHBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0
Jik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFJlc291cmNl
RGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuaApp
bmRleCAyYTkyNTQ4Li4xNzExMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGV4dFJlc291cmNlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVz
b3VyY2VEZWNvZGVyLmgKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGljOgogICAgICAgICBFbmNvZGlu
Z0Zyb21QYXJlbnRGcmFtZQogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0UmVz
b3VyY2VEZWNvZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVGV4dEVu
Y29kaW5nJiBkZWZhdWx0RW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoKSwgYm9vbCB1c2VzRW5jb2Rp
bmdEZXRlY3RvciA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8VGV4dFJlc291cmNlRGVjb2Rlcj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFRleHRFbmNvZGluZyYgZGVmYXVs
dEVuY29kaW5nID0gVGV4dEVuY29kaW5nKCksIGJvb2wgdXNlc0VuY29kaW5nRGV0ZWN0b3IgPSBm
YWxzZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFJlc291cmNlRGVj
b2RlcihtaW1lVHlwZSwgZGVmYXVsdEVuY29kaW5nLCB1c2VzRW5jb2RpbmdEZXRlY3RvcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0UmVzb3VyY2VEZWNvZGVyKG1pbWVUeXBl
LCBkZWZhdWx0RW5jb2RpbmcsIHVzZXNFbmNvZGluZ0RldGVjdG9yKSk7CiAgICAgfQogICAgIFdF
QkNPUkVfRVhQT1JUIH5UZXh0UmVzb3VyY2VEZWNvZGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmgKaW5kZXggNzE1
YzVhYS4uMGU5NjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXJDbGllbnRXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmgKQEAgLTMzLDE2ICszMywxNiBAQAogCiAjaW5jbHVk
ZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiBjcmVhdGUoVGhyZWFkYWJs
ZUxvYWRlckNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBSZWY8VGhyZWFkYWJsZUxvYWRlckNs
aWVudFdyYXBwZXI+IGNyZWF0ZShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFw
cGVyKGNsaWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKICAgICB9CiAKICAgICB2b2lkIGNsZWFyQ2xpZW50
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oCmlu
ZGV4IGEyNWQ5NzguLjJhOTVlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9X
b3JrZXJUaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtl
clRocmVhZGFibGVMb2FkZXIuaApAQCAtNTQsOSArNTQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAg
c3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXb3JrZXJHbG9iYWxTY29wZSos
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBU
aHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2Jh
bFNjb3BlLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFz
a01vZGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxv
YWRlck9wdGlvbnMmIG9wdGlvbnMpCisgICAgICAgIHN0YXRpYyBSZWY8V29ya2VyVGhyZWFkYWJs
ZUxvYWRlcj4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSwgVGhy
ZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25z
JiBvcHRpb25zKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdv
cmtlclRocmVhZGFibGVMb2FkZXIod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUs
IHJlcXVlc3QsIG9wdGlvbnMpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtlclRocmVhZGFibGVMb2FkZXIod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUs
IHJlcXVlc3QsIG9wdGlvbnMpKTsKICAgICAgICAgfQogCiAgICAgICAgIH5Xb3JrZXJUaHJlYWRh
YmxlTG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuaAppbmRleCBmZGM5YWNhLi45MTk3ZDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgdHlwZWRlZiBWZWN0b3I8c3RkOjpwYWlyPFVSTCwgVVJMPj4gRmFsbGJhY2tVUkxWZWN0b3I7
CiAKIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGUgOiBwdWJsaWMgUmVmQ291bnRlZDxBcHBsaWNhdGlv
bkNhY2hlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbGljYXRpb25DYWNo
ZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxpY2F0aW9uQ2FjaGUpOyB9Cisg
ICAgc3RhdGljIFJlZjxBcHBsaWNhdGlvbkNhY2hlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IEFwcGxpY2F0aW9uQ2FjaGUpOyB9CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgZGVsZXRlQ2FjaGVGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBkZWxldGVBbGxDYWNoZXMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aAppbmRleCBkOGQzZjFhLi5jMDYzYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oCkBAIC00MCwxMCAr
NDAsMTAgQEAgcHVibGljOgogICAgICAgICBGYWxsYmFjayA9IDEgPDwgNAogICAgIH07CiAgICAg
ICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gY3Jl
YXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgdW5z
aWduZWQgdHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKCksIGNvbnN0IFN0cmluZyYgcGF0aCA9IFN0cmluZygpKQorICAgIHN0YXRpYyBS
ZWY8QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCB1bnNpZ25lZCB0eXBlLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgY29uc3QgU3RyaW5n
JiBwYXRoID0gU3RyaW5nKCkpCiAgICAgewogICAgICAgICBBU1NFUlQoIXVybC5oYXNGcmFnbWVu
dElkZW50aWZpZXIoKSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXBwbGljYXRpb25D
YWNoZVJlc291cmNlKHVybCwgcmVzcG9uc2UsIHR5cGUsIGJ1ZmZlciwgcGF0aCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UodXJsLCByZXNw
b25zZSwgdHlwZSwgYnVmZmVyLCBwYXRoKSk7CiAgICAgfQogCiAgICAgdW5zaWduZWQgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgKaW5kZXggY2IyNzU0NS4uY2RkZjc0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9u
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFz
aC5oPgpAQCAtNDQsNyArNDMsNyBAQCBjbGFzcyBVUkw7CiAKIGNsYXNzIERPTUFwcGxpY2F0aW9u
Q2FjaGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxE
T01BcHBsaWNhdGlvbkNhY2hlPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1
YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RE9NQXBwbGljYXRpb25DYWNoZT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IERPTUFwcGxpY2F0aW9uQ2FjaGUoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9N
QXBwbGljYXRpb25DYWNoZT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBET01BcHBsaWNhdGlvbkNhY2hlKGZyYW1lKSk7IH0KICAgICB2aXJ0dWFsIH5ET01BcHBs
aWNhdGlvbkNhY2hlKCkgeyBBU1NFUlQoIW1fZnJhbWUpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmNwcAppbmRleCA0YjA1ZmRjLi5l
MDIwNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZl
UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVS
ZXNvdXJjZS5jcHAKQEAgLTQyLDE5ICs0MiwxOSBAQCBpbmxpbmUgQXJjaGl2ZVJlc291cmNlOjpB
cmNoaXZlUmVzb3VyY2UoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGNvbnN0IFVSTAog
ewogfQogCi1QYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gQXJjaGl2ZVJlc291cmNlOjpjcmVh
dGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZywgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorUmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGRhdGEsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHRFbmNvZGluZywgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChyZXNwb25zZS5pc051bGwo
KSkgewogICAgICAgICB1bnNpZ25lZCBkYXRhU2l6ZSA9IGRhdGEtPnNpemUoKTsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBBcmNoaXZlUmVzb3VyY2UoZGF0YSwgdXJsLCBtaW1lVHlwZSwg
dGV4dEVuY29kaW5nLCBmcmFtZU5hbWUsCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFy
Y2hpdmVSZXNvdXJjZShkYXRhLCB1cmwsIG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmcsIGZyYW1lTmFt
ZSwKICAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UodXJsLCBtaW1lVHlwZSwgZGF0YVNpemUs
IHRleHRFbmNvZGluZykpKTsKICAgICB9Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcmNoaXZl
UmVzb3VyY2UoZGF0YSwgdXJsLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCBmcmFtZU5hbWUsIHJl
c3BvbnNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXJjaGl2ZVJlc291cmNlKGRhdGEs
IHVybCwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgZnJhbWVOYW1lLCByZXNwb25zZSkpOwogfQog
Ci1QYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IEFyY2hpdmVSZXNv
dXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZShkYXRhLCB1cmwsIHJlc3BvbnNlLm1pbWVUeXBlKCksIHJlc3BvbnNlLnRleHRFbmNvZGluZ05h
bWUoKSwgU3RyaW5nKCksIHJlc3BvbnNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmgKaW5kZXggN2YxYzMyZS4uMjViZDVjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmgKQEAgLTM1
LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcmNoaXZlUmVzb3VyY2Ug
OiBwdWJsaWMgU3Vic3RpdHV0ZVJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNv
bnN0IFVSTCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIGNvbnN0IFVSTCYsCisgICAgc3RhdGljIFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+
IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgVVJMJiwKICAg
ICAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2Rpbmcs
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLAogICAgICAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiA9IFJlc291cmNlUmVzcG9uc2UoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZUJhc2UuaAppbmRleCA0YzllYTFiLi5kZjg3NzA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCkBAIC03OSw5ICs3OSw5IEBA
IGNsYXNzIEVudW1DYWxsYmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewogcHVibGljOgogICAg
IHR5cGVkZWYgdm9pZCAoKkNhbGxiYWNrRnVuY3Rpb24pKEVudW1UeXBlLCB2b2lkKik7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFbnVtQ2FsbGJhY2s+IGNyZWF0ZSh2b2lkKiBjb250ZXh0LCBD
YWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQorICAgIHN0YXRpYyBSZWY8RW51bUNhbGxiYWNrPiBj
cmVhdGUodm9pZCogY29udGV4dCwgQ2FsbGJhY2tGdW5jdGlvbiBjYWxsYmFjaykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRW51bUNhbGxiYWNrKGNvbnRleHQsIGNhbGxiYWNr
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVudW1DYWxsYmFjayhjb250ZXh0LCBj
YWxsYmFjaykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkVudW1DYWxsYmFjaygpCkBAIC0xMTgs
OSArMTE4LDkgQEAgY2xhc3MgT2JqZWN0Q2FsbGJhY2sgOiBwdWJsaWMgQ2FsbGJhY2tCYXNlIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIHZvaWQgKCpDYWxsYmFja0Z1bmN0aW9uKShPYmplY3RUeXBl
LCB2b2lkKik7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxPYmplY3RDYWxsYmFjaz4gY3JlYXRl
KHZvaWQqIGNvbnRleHQsIENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spCisgICAgc3RhdGljIFJl
ZjxPYmplY3RDYWxsYmFjaz4gY3JlYXRlKHZvaWQqIGNvbnRleHQsIENhbGxiYWNrRnVuY3Rpb24g
Y2FsbGJhY2spCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9iamVjdENhbGxi
YWNrKGNvbnRleHQsIGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9i
amVjdENhbGxiYWNrKGNvbnRleHQsIGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+
T2JqZWN0Q2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvblJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5oCmlu
ZGV4IGQ0MDg1OTMuLmU1ZWIxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25SZWNvcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVj
b3JkLmgKQEAgLTc0LDkgKzc0LDkgQEAgcHJpdmF0ZToKIGNsYXNzIEljb25SZWNvcmQgOiBwdWJs
aWMgUmVmQ291bnRlZDxJY29uUmVjb3JkPiB7CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2VVUkxSZWNv
cmQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SWNvblJlY29yZD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdXJsKQorICAgIHN0YXRpYyBSZWY8SWNvblJlY29yZD4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uUmVj
b3JkKHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJY29uUmVjb3JkKHVybCkp
OwogICAgIH0KICAgICB+SWNvblJlY29yZCgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IGQ4ZGY0
YTguLjU5ZDUzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
SW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudDo6TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJgogewogfQogCi1QYXNzUmVmUHRyPE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1l
bnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8TWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudD4gTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgTWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQu
aAppbmRleCA3MDlmZTQ4Li4yOTM2OTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVu
dCA6IHB1YmxpYyBNYXRoTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uTWF0aE1MKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1h
dGhFbGVtZW50LmNwcAppbmRleCAzNTA0MmZkLi5iZGExMGMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCkBAIC0zOCw5ICszOCw5IEBAIGlubGluZSBN
YXRoTUxNYXRoRWxlbWVudDo6TWF0aE1MTWF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWF0aE1MTWF0aEVsZW1lbnQ+IE1h
dGhNTE1hdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTE1hdGhFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhNTE1hdGhFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MTWF0aEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhN
TE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAppbmRleCA5YWYy
NTU1Li40YTQxMDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0
aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQu
aApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1hdGhNTE1h
dGhFbGVtZW50IDogcHVibGljIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hdGhNTE1hdGhFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1hdGhN
TE1hdGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKICAgICBNYXRoTUxNYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcAppbmRleCBjNzU1ZDcxLi4wNmRhZmI2IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApAQCAtNDUsOSAr
NDUsOSBAQCBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6Ok1hdGhNTE1lbmNsb3NlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogewogfQogCi1QYXNzUmVmUHRyPE1hdGhN
TE1lbmNsb3NlRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTE1lbmNs
b3NlRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWF0aE1MTWVuY2xvc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MTWVuY2xvc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKaW5kZXggMjJhMzNjZC4u
YzI3YTQzOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3Nl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1l
bnQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1hdGhN
TE1lbmNsb3NlRWxlbWVudCBmaW5hbDogcHVibGljIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hdGhNTE1lbmNsb3NlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxNYXRoTUxNZW5jbG9zZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBub3Rh
dGlvblZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fbm90YXRpb25WYWx1ZXM7IH0KICAgICBib29s
IGlzUmFkaWNhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSYWRpY2FsVmFsdWU7IH0KICAgICBTdHJp
bmcgbG9uZ0RpdkxlZnRQYWRkaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggNmQ1Mjk2MS4uMDg3ZGZlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNDYsOSArNDYs
OSBAQCBNYXRoTUxTZWxlY3RFbGVtZW50OjpNYXRoTUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JgogewogfQogCi1QYXNzUmVmUHRyPE1hdGhNTFNl
bGVjdEVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8TWF0aE1MU2VsZWN0RWxlbWVu
dD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhN
TFNlbGVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBNYXRoTUxTZWxlY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggMzU0MDBmZWIuLjIyYTZjY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1hdGhNTFNlbGVjdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWF0aE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxTZWxlY3RFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKICAg
ICBzdGF0aWMgYm9vbCBpc01hdGhNTEVuY29kaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUp
OwogICAgIHN0YXRpYyBib29sIGlzU1ZHRW5jb2RpbmcoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNIVE1MRW5jb2RpbmcoY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAppbmRl
eCA0NTZjODE0Li45NjA2ZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MVGV4dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0
RWxlbWVudC5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgaW5saW5lIE1hdGhNTFRleHRFbGVtZW50OjpN
YXRoTUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAg
ICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxN
YXRoTUxUZXh0RWxlbWVudD4gTWF0aE1MVGV4dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8TWF0aE1MVGV4dEVsZW1l
bnQ+IE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWF0aE1M
VGV4dEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNYXRoTUxUZXh0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB2b2lkIE1hdGhN
TFRleHRFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MVGV4dEVsZW1lbnQuaAppbmRleCBjNjg0MmU5Li42OWIwNTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBNYXRoTUxUZXh0RWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBNYXRoTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxU
ZXh0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxUZXh0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFj
aFJlbmRlcmVycygpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
TWF0aE1MKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0JhclByb3Au
aAppbmRleCBlZGZhNTZmLi4wM2Q3MWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0JhclByb3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0JhclByb3AuaApAQCAtMzEsNyAr
MzEsNyBAQAogCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEJhclByb3AgOiBwdWJsaWMgU2NyaXB0V3JhcHBh
YmxlLCBwdWJsaWMgUmVmQ291bnRlZDxCYXJQcm9wPiwgcHVibGljIERPTVdpCiBwdWJsaWM6CiAg
ICAgZW51bSBUeXBlIHsgTG9jYXRpb25iYXIsIE1lbnViYXIsIFBlcnNvbmFsYmFyLCBTY3JvbGxi
YXJzLCBTdGF0dXNiYXIsIFRvb2xiYXIgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhclBy
b3A+IGNyZWF0ZShGcmFtZSogZnJhbWUsIFR5cGUgdHlwZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IEJhclByb3AoZnJhbWUsIHR5cGUpKTsgfQorICAgIHN0YXRpYyBSZWY8QmFyUHJvcD4gY3JlYXRl
KEZyYW1lKiBmcmFtZSwgVHlwZSB0eXBlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEJhclByb3Ao
ZnJhbWUsIHR5cGUpKTsgfQogCiAgICAgVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgYm9vbCB2aXNp
YmxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaAppbmRleCA5NGVhYjU2Li5hZjBmYzA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3J5cHRvLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgU3VidGxlQ3J5cHRvOwogCiBj
bGFzcyBDcnlwdG8gOiBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBS
ZWZDb3VudGVkPENyeXB0bz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENyeXB0
bz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0
byhkb2N1bWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxDcnlwdG8+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvKGRvY3VtZW50KSk7IH0KICAg
ICB2aXJ0dWFsIH5DcnlwdG8oKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5oCmluZGV4IDQyYWU1MTguLmRmNjkx
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmgKQEAgLTM5LDkgKzM5
LDkgQEAgY2xhc3MgRnJhbWU7CiAKIGNsYXNzIERPTVNlY3VyaXR5UG9saWN5IDogcHVibGljIFJl
ZkNvdW50ZWQ8RE9NU2VjdXJpdHlQb2xpY3k+LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVNlY3VyaXR5UG9saWN5
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUmVm
PERPTVNlY3VyaXR5UG9saWN5PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NU2VjdXJpdHlQb2xpY3ko
Y29udGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01TZWN1cml0eVBvbGlj
eShjb250ZXh0KSk7CiAgICAgfQogICAgIH5ET01TZWN1cml0eVBvbGljeSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01TZWxlY3Rpb24uaAppbmRleCBkZTQ4NTY5Li4yZmExZTg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NU2VsZWN0aW9uLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgRE9NU2VsZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NU2VsZWN0aW9u
PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERPTVNlbGVjdGlvbj4gY3JlYXRlKGNvbnN0IFRyZWVTY29wZSogdHJlZVNj
b3BlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NU2VsZWN0aW9uKHRyZWVTY29wZSkpOyB9Cisg
ICAgICAgIHN0YXRpYyBSZWY8RE9NU2VsZWN0aW9uPiBjcmVhdGUoY29uc3QgVHJlZVNjb3BlKiB0
cmVlU2NvcGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NU2VsZWN0aW9uKHRyZWVTY29wZSkp
OyB9CiAKICAgICAgICAgdm9pZCBjbGVhclRyZWVTY29wZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAppbmRleCA0ODI5MWNjLi5lYWQ0NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAsIHB1YmxpYyBGcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIKICAgICAgICAgLCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9N
V2luZG93PiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01XaW5k
b3c+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01X
aW5kb3coZG9jdW1lbnQpKTsgfQorICAgICAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9j
dW1lbnQpKTsgfQogICAgICAgICB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAogICAgICAgICAvLyBJ
biBzb21lIHJhcmUgY2FzZXMsIHdlJ2xsIHJlLXVzZWQgYSBET01XaW5kb3cgZm9yIGEgbmV3IERv
Y3VtZW50LiBGb3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lv
bi5oCmluZGV4IDQ5MjkwYmMuLmE5NzhmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3dFeHRlbnNpb24uaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBET01XaW5kb3dFeHRlbnNp
b25faAogCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCkBAIC0zOSw5ICszOCw5IEBAIGNsYXNzIEZyYW1lOwogCiBjbGFzcyBET01XaW5k
b3dFeHRlbnNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxET01XaW5kb3dFeHRlbnNpb24+LCBwdWJs
aWMgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TVdpbmRvd0V4dGVuc2lvbj4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKKyAgICBzdGF0aWMgUmVmPERPTVdpbmRvd0V4dGVuc2lvbj4gY3JlYXRlKEZyYW1lKiBm
cmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRE9NV2luZG93RXh0ZW5zaW9uKGZyYW1lLCB3b3JsZCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3dFeHRlbnNpb24oZnJhbWUsIHdvcmxkKSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcmFtZUZvclBhZ2VDYWNoZSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDA5Y2FiOGQuLmQ5NjY1N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIyMiwxOSArMjIyLDE5IEBAIEZyYW1lVmll
dzo6RnJhbWVWaWV3KEZyYW1lJiBmcmFtZSkKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPEZyYW1l
Vmlldz4gRnJhbWVWaWV3OjpjcmVhdGUoRnJhbWUmIGZyYW1lKQorUmVmPEZyYW1lVmlldz4gRnJh
bWVWaWV3OjpjcmVhdGUoRnJhbWUmIGZyYW1lKQogewotICAgIFJlZlB0cjxGcmFtZVZpZXc+IHZp
ZXcgPSBhZG9wdFJlZihuZXcgRnJhbWVWaWV3KGZyYW1lKSk7CisgICAgUmVmPEZyYW1lVmlldz4g
dmlldyA9IGFkb3B0UmVmKCpuZXcgRnJhbWVWaWV3KGZyYW1lKSk7CiAgICAgdmlldy0+c2hvdygp
OwotICAgIHJldHVybiB2aWV3LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gdmlldzsKIH0KIAotUGFz
c1JlZlB0cjxGcmFtZVZpZXc+IEZyYW1lVmlldzo6Y3JlYXRlKEZyYW1lJiBmcmFtZSwgY29uc3Qg
SW50U2l6ZSYgaW5pdGlhbFNpemUpCitSZWY8RnJhbWVWaWV3PiBGcmFtZVZpZXc6OmNyZWF0ZShG
cmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIGluaXRpYWxTaXplKQogewotICAgIFJlZlB0cjxG
cmFtZVZpZXc+IHZpZXcgPSBhZG9wdFJlZihuZXcgRnJhbWVWaWV3KGZyYW1lKSk7CisgICAgUmVm
PEZyYW1lVmlldz4gdmlldyA9IGFkb3B0UmVmKCpuZXcgRnJhbWVWaWV3KGZyYW1lKSk7CiAgICAg
dmlldy0+V2lkZ2V0OjpzZXRGcmFtZVJlY3QoSW50UmVjdCh2aWV3LT5sb2NhdGlvbigpLCBpbml0
aWFsU2l6ZSkpOwogICAgIHZpZXctPnNob3coKTsKLSAgICByZXR1cm4gdmlldy5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKIEZyYW1lVmlldzo6fkZyYW1lVmlldygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCAzNjYxZTcwLi41ZmE5MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKQEAgLTcwLDggKzcwLDggQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJW
aWV3OwogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUGFzc1JlZlB0cjxGcmFtZVZpZXc+IGNyZWF0ZShGcmFtZSYpOwotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEZyYW1lVmlldz4gY3JlYXRlKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYgaW5pdGlh
bFNpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RnJhbWVWaWV3PiBjcmVhdGUo
RnJhbWUmKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lVmlldz4gY3JlYXRlKEZyYW1lJiwgY29uc3Qg
SW50U2l6ZSYgaW5pdGlhbFNpemUpOwogCiAgICAgdmlydHVhbCB+RnJhbWVWaWV3KCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgK
aW5kZXggMWMxNDNhYS4uYmVkMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgUmVu
ZGVyU3R5bGU7CiAvLyBvbiBhIHNpbmdsZSBSZW5kZXJFbGVtZW50LCBzdWNoIGFzIGEgbnVtYmVy
IG9mIHByb3BlcnRpZXMgdHJhbnNpdGlvbmluZyBhdCBvbmNlLgogY2xhc3MgQ29tcG9zaXRlQW5p
bWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcG9zaXRlQW5pbWF0aW9uPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiBjcmVhdGUoQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUqIGFuaW1hdGlvbkNvbnRyb2xsZXIpCisgICAgc3RhdGljIFJl
ZjxDb21wb3NpdGVBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSog
YW5pbWF0aW9uQ29udHJvbGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Q29tcG9zaXRlQW5pbWF0aW9uKGFuaW1hdGlvbkNvbnRyb2xsZXIpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ29tcG9zaXRlQW5pbWF0aW9uKGFuaW1hdGlvbkNvbnRyb2xsZXIpKTsK
ICAgICB9OwogCiAgICAgfkNvbXBvc2l0ZUFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmlu
ZGV4IGM4MGMzMjQuLjcxMjVhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgY2xhc3MgU2Nyb2xsaW5nU3RhdGVUcmVlOwogLy8gYWxsb3dpbmcgYXN5bmNocm9ub3VzIHNj
cm9sbGluZyAoaW4gYW5vdGhlciB0aHJlYWQgb3IgcHJvY2VzcykuCiBjbGFzcyBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yIDogcHVibGljIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGUo
UGFnZSopOworICAgIHN0YXRpYyBSZWY8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRl
KFBhZ2UqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKCk7CiAKICAgICBTY3JvbGxpbmdUcmVlKiBzY3JvbGxpbmdUcmVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxpbmdUcmVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCmlu
ZGV4IDQzZGUyMjQuLjVjMWJkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0N1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCkBAIC01OCw3
ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShXSU4pCiAgICAgY2xh
c3MgU2hhcmVkQ3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQ3Vyc29yPiB7CiAgICAg
cHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShI
Q1VSU09SIG5hdGl2ZUN1cnNvcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEN1cnNvcihu
YXRpdmVDdXJzb3IpKTsgfQorICAgICAgICBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRl
KEhDVVJTT1IgbmF0aXZlQ3Vyc29yKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEN1cnNv
cihuYXRpdmVDdXJzb3IpKTsgfQogICAgICAgICB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgICAgIEhD
VVJTT1IgbmF0aXZlQ3Vyc29yKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVDdXJzb3I7IH0KICAg
ICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29z
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCmluZGV4IGY2
Y2VhNTMuLmVhZGE0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVD
aG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAK
QEAgLTM3LDkgKzM3LDkgQEAgRmlsZUNob29zZXI6OkZpbGVDaG9vc2VyKEZpbGVDaG9vc2VyQ2xp
ZW50KiBjbGllbnQsIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHMKIHsKIH0KIAotUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gRmlsZUNob29zZXI6OmNyZWF0ZShGaWxlQ2hvb3NlckNsaWVudCog
Y2xpZW50LCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKK1JlZjxGaWxlQ2hv
b3Nlcj4gRmlsZUNob29zZXI6OmNyZWF0ZShGaWxlQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25z
dCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEZpbGVDaG9vc2VyKGNsaWVudCwgc2V0dGluZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGaWxlQ2hvb3NlcihjbGllbnQsIHNldHRpbmdzKSk7CiB9CiAKIEZpbGVDaG9vc2VyOjp+
RmlsZUNob29zZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNo
b29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKaW5kZXggY2Q2
OGQ2Mi4uYjA1MTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNo
b29zZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogY2xhc3MgRmlsZUNob29zZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxGaWxlQ2hvb3Nlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGVD
aG9vc2VyPiBjcmVhdGUoRmlsZUNob29zZXJDbGllbnQqLCBjb25zdCBGaWxlQ2hvb3NlclNldHRp
bmdzJik7CisgICAgc3RhdGljIFJlZjxGaWxlQ2hvb3Nlcj4gY3JlYXRlKEZpbGVDaG9vc2VyQ2xp
ZW50KiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5G
aWxlQ2hvb3NlcigpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggYmMyMzk5Ni4uYjJkYzEzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAt
MzgsOCArMzgsOCBAQCBjbGFzcyBBbmltYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxBbmltYXRp
b24+IHsKIHB1YmxpYzoKICAgICB+QW5pbWF0aW9uKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBbmltYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24pOyB9
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0aW9u
JiBvdGhlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IEFuaW1hdGlvbihvdGhlcikpOyB9CisgICAg
c3RhdGljIFJlZjxBbmltYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5p
bWF0aW9uKTsgfQorICAgIHN0YXRpYyBSZWY8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0
aW9uJiBvdGhlcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb24ob3RoZXIpKTsgfQog
CiAgICAgYm9vbCBpc0RlbGF5U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kZWxheVNldDsgfQogICAg
IGJvb2wgaXNEaXJlY3Rpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvblNldDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4IDlkYWMwOWUu
LmNmZjdjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
QnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAK
QEAgLTQ2LDEzICs0NiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKIAogY29uc3Qg
dW5zaWduZWQgTWF4QnVzQ2hhbm5lbHMgPSAzMjsKIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVk
aW9CdXM6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBi
b29sIGFsbG9jYXRlKQorUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlKHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUpCiB7CiAgICAg
QVNTRVJUKG51bWJlck9mQ2hhbm5lbHMgPD0gTWF4QnVzQ2hhbm5lbHMpOwogICAgIGlmIChudW1i
ZXJPZkNoYW5uZWxzID4gTWF4QnVzQ2hhbm5lbHMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9CdXMobnVt
YmVyT2ZDaGFubmVscywgbGVuZ3RoLCBhbGxvY2F0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCwgYWxsb2NhdGUpKTsKIH0KIAog
QXVkaW9CdXM6OkF1ZGlvQnVzKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5n
dGgsIGJvb2wgYWxsb2NhdGUpCkBAIC0xNjcsNyArMTY3LDcgQEAgYm9vbCBBdWRpb0J1czo6dG9w
b2xvZ3lNYXRjaGVzKGNvbnN0IEF1ZGlvQnVzJiBidXMpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFu
Z2UoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1ZmZlciwgdW5zaWduZWQgc3RhcnRGcmFtZSwgdW5z
aWduZWQgZW5kRnJhbWUpCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJG
cm9tUmFuZ2UoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1ZmZlciwgdW5zaWduZWQgc3RhcnRGcmFt
ZSwgdW5zaWduZWQgZW5kRnJhbWUpCiB7CiAgICAgc2l6ZV90IG51bWJlck9mU291cmNlRnJhbWVz
ID0gc291cmNlQnVmZmVyLT5sZW5ndGgoKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
ID0gc291cmNlQnVmZmVyLT5udW1iZXJPZkNoYW5uZWxzKCk7CkBAIC0xNzYsNyArMTc2LDcgQEAg
UGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ1ZmZlckZyb21SYW5nZShjb25z
dCBBdWRpb0J1cyogc291cmNlQnVmZmUKICAgICBib29sIGlzUmFuZ2VTYWZlID0gc3RhcnRGcmFt
ZSA8IGVuZEZyYW1lICYmIGVuZEZyYW1lIDw9IG51bWJlck9mU291cmNlRnJhbWVzOwogICAgIEFT
U0VSVChpc1JhbmdlU2FmZSk7CiAgICAgaWYgKCFpc1JhbmdlU2FmZSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgc2l6ZV90IHJhbmdlTGVuZ3RoID0g
ZW5kRnJhbWUgLSBzdGFydEZyYW1lOwogCkBAIC01MjEsMTIgKzUyMSwxMiBAQCB2b2lkIEF1ZGlv
QnVzOjpjb3B5V2l0aFNhbXBsZUFjY3VyYXRlR2FpblZhbHVlc0Zyb20oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cywgZgogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6
OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cywg
Ym9vbCBtaXhUb01vbm8sIGRvdWJsZSBuZXdTYW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVzPiBB
dWRpb0J1czo6Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291
cmNlQnVzLCBib29sIG1peFRvTW9ubywgZG91YmxlIG5ld1NhbXBsZVJhdGUpCiB7CiAgICAgLy8g
c291cmNlQnVzJ3Mgc2FtcGxlLXJhdGUgbXVzdCBiZSBrbm93bi4KICAgICBBU1NFUlQoc291cmNl
QnVzICYmIHNvdXJjZUJ1cy0+c2FtcGxlUmF0ZSgpKTsKICAgICBpZiAoIXNvdXJjZUJ1cyB8fCAh
c291cmNlQnVzLT5zYW1wbGVSYXRlKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGRvdWJsZSBzb3VyY2VTYW1wbGVSYXRlID0gc291cmNlQnVzLT5z
YW1wbGVSYXRlKCk7CiAgICAgZG91YmxlIGRlc3RpbmF0aW9uU2FtcGxlUmF0ZSA9IG5ld1NhbXBs
ZVJhdGU7CkBAIC01ODQsNyArNTg0LDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6
OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXIKICAgICBy
ZXR1cm4gZGVzdGluYXRpb25CdXM7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVz
OjpjcmVhdGVCeU1peGluZ1RvTW9ubyhjb25zdCBBdWRpb0J1cyogc291cmNlQnVzKQorUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMq
IHNvdXJjZUJ1cykKIHsKICAgICBpZiAoc291cmNlQnVzLT5pc1NpbGVudCgpKQogICAgICAgICBy
ZXR1cm4gY3JlYXRlKDEsIHNvdXJjZUJ1cy0+bGVuZ3RoKCkpOwpAQCAtNjEzLDcgKzYxMyw3IEBA
IFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCeU1peGluZ1RvTW9ubyhjb25z
dCBBdWRpb0J1cyogc291cmNlQnVzKQogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIEF1ZGlvQnVz
Ojppc1NpbGVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMu
aAppbmRleCAyMDdkOTZiLi44ZDY4MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvQnVzLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIC8vIGFsbG9jYXRlIGlu
ZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0byBpbml0aWFsbHkgaGF2ZSB0aGUgQXVkaW9DaGFubmVs
cyBjcmVhdGVkIHdpdGggbWFuYWdlZCBzdG9yYWdlLgogICAgIC8vIE5vcm1hbCB1c2FnZSBpcyB0
byBwYXNzIHRydWUgaGVyZSwgaW4gd2hpY2ggY2FzZSB0aGUgQXVkaW9DaGFubmVscyB3aWxsIG1l
bW9yeS1tYW5hZ2UgdGhlaXIgb3duIHN0b3JhZ2UuCiAgICAgLy8gSWYgYWxsb2NhdGUgaXMgZmFs
c2UgdGhlbiBzZXRDaGFubmVsTWVtb3J5KCkgaGFzIHRvIGJlIGNhbGxlZCBsYXRlciBvbiBmb3Ig
ZWFjaCBjaGFubmVsIGJlZm9yZSB0aGUgQXVkaW9CdXMgaXMgdXNlYWJsZS4uLgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
c2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOworICAgIHN0YXRpYyBSZWZQdHI8
QXVkaW9CdXM+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3Ro
LCBib29sIGFsbG9jYXRlID0gdHJ1ZSk7CiAKICAgICAvLyBUZWxscyB0aGUgZ2l2ZW4gY2hhbm5l
bCB0byB1c2UgYW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgogICAgIHZvaWQgc2V0Q2hh
bm5lbE1lbW9yeSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBzdG9yYWdlLCBzaXplX3Qg
bGVuZ3RoKTsKQEAgLTEwNCwxNyArMTA0LDE3IEBAIHB1YmxpYzoKIAogICAgIC8vIENyZWF0ZXMg
YSBuZXcgYnVmZmVyIGZyb20gYSByYW5nZSBpbiB0aGUgc291cmNlIGJ1ZmZlci4KICAgICAvLyAw
IG1heSBiZSByZXR1cm5lZCBpZiB0aGUgcmFuZ2UgZG9lcyBub3QgZml0IGluIHRoZSBzb3VyY2VC
dWZmZXIKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVmZmVyRnJvbVJh
bmdlKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVu
c2lnbmVkIGVuZEZyYW1lKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdWZm
ZXJGcm9tUmFuZ2UoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1ZmZlciwgdW5zaWduZWQgc3RhcnRG
cmFtZSwgdW5zaWduZWQgZW5kRnJhbWUpOwogCiAKICAgICAvLyBDcmVhdGVzIGEgbmV3IEF1ZGlv
QnVzIGJ5IHNhbXBsZS1yYXRlIGNvbnZlcnRpbmcgc291cmNlQnVzIHRvIHRoZSBuZXdTYW1wbGVS
YXRlLgogICAgIC8vIHNldFNhbXBsZVJhdGUoKSBtdXN0IGhhdmUgYmVlbiBwcmV2aW91c2x5IGNh
bGxlZCBvbiBzb3VyY2VCdXMuCiAgICAgLy8gTm90ZTogc2FtcGxlLXJhdGUgY29udmVyc2lvbiBp
cyBhbHJlYWR5IGhhbmRsZWQgaW4gdGhlIGZpbGUtcmVhZGluZyBjb2RlIGZvciB0aGUgbWFjIHBv
cnQsIHNvIHdlIGRvbid0IG5lZWQgdGhpcy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1
cz4gY3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cmNlQnVz
LCBib29sIG1peFRvTW9ubywgZG91YmxlIG5ld1NhbXBsZVJhdGUpOworICAgIHN0YXRpYyBSZWZQ
dHI8QXVkaW9CdXM+IGNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMq
IHNvdXJjZUJ1cywgYm9vbCBtaXhUb01vbm8sIGRvdWJsZSBuZXdTYW1wbGVSYXRlKTsKIAogICAg
IC8vIENyZWF0ZXMgYSBuZXcgQXVkaW9CdXMgYnkgbWl4aW5nIGFsbCB0aGUgY2hhbm5lbHMgZG93
biB0byBtb25vLgogICAgIC8vIElmIHNvdXJjZUJ1cyBpcyBhbHJlYWR5IG1vbm8sIHRoZW4gdGhl
IHJldHVybmVkIEF1ZGlvQnVzIHdpbGwgc2ltcGx5IGJlIGEgY29weS4KLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMqIHNv
dXJjZUJ1cyk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnlNaXhpbmdUb01v
bm8oY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cyk7CiAKICAgICAvLyBTY2FsZXMgYWxsIHNhbXBs
ZXMgYnkgdGhlIHNhbWUgYW1vdW50LgogICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0
ZW5lci5jcHAKaW5kZXggNTkyOTIyOC4uNmQyZGYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVuZXIuY3BwCkBAIC0yOSw5
ICsyOSw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKQotUGFz
c1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6Y3Jl
YXRlKENsaWVudCYgY2xpZW50KQorUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVkaW9IYXJk
d2FyZUxpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBBdWRpb0hhcmR3YXJlTGlzdGVuZXIoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9IYXJkd2FyZUxpc3RlbmVyKGNsaWVudCkpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0
ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmgKaW5kZXggYjI2N2UyMC4uNzJmMGQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmgKQEAgLTI2LDcgKzI2LDcg
QEAKICNpZm5kZWYgQXVkaW9IYXJkd2FyZUxpc3RlbmVyX2gKICNkZWZpbmUgQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyX2gKIAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgPSAwOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUGFzc1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IGNyZWF0ZShDbGllbnQmKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gY3Jl
YXRlKENsaWVudCYpOwogICAgIHZpcnR1YWwgfkF1ZGlvSGFyZHdhcmVMaXN0ZW5lcigpIHsgfQog
ICAgIAogICAgIEF1ZGlvSGFyZHdhcmVBY3Rpdml0eVR5cGUgaGFyZHdhcmVBY3Rpdml0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZpdHk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKaW5k
ZXggN2U5MGVhOS4uYzI2OTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTEw
OSwxNCArMTA5LDE0IEBAIHN0YXRpYyBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyYg
b3V0cHV0RGV2aWNlUHJvcGVydHlEZXNjcmlwdG9yKCkKICAgICByZXR1cm4gb3V0cHV0RGV2aWNl
UHJvcGVydHk7CiB9OwogCi1QYXNzUmVmUHRyPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcj4gQXVkaW9I
YXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCitSZWY8QXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyPiBBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCkK
IHsKICAgICByZXR1cm4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpjcmVhdGUoY2xpZW50KTsK
IH0KIAotUGFzc1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IEF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQorUmVmPEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lck1hYz4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMoY2xp
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFj
KGNsaWVudCkpOwogfQogCiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaAppbmRleCA0
OTM1MDMwLi42MDU3ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFj
IDogcHVibGljIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdU
Rjo6UGFzc1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IGNyZWF0ZShDbGllbnQmKTsK
KyAgICBzdGF0aWMgV1RGOjpSZWY8QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBjcmVhdGUoQ2xp
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKENsaWVudCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFj
a1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmgKaW5kZXggOTkxMjU5Mi4uMjU2OTc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC00MSw5ICs0MSw5
IEBAIHB1YmxpYzoKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2
YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZh
dGU+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGUoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlKTsKICAgICB9
CiAKICAgICB2b2lkIHNldENsaWVudChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7
IG1fY2xpZW50ID0gY2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuaAppbmRleCA4MjQ2ZjQ3Li4xNjk1Y2EzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTEwOCwxMyArMTA4LDEz
IEBAIGNsYXNzIEJpdG1hcEltYWdlIGZpbmFsIDogcHVibGljIEltYWdlIHsKICAgICBmcmllbmQg
Y2xhc3MgR3JhZGllbnRJbWFnZTsKICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUoUGFzc05h
dGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlLCBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCisg
ICAgc3RhdGljIFJlZjxCaXRtYXBJbWFnZT4gY3JlYXRlKFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRp
dmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCaXRtYXBJbWFnZShuYXRpdmVJbWFnZSwgb2JzZXJ2ZXIpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQml0bWFwSW1hZ2UobmF0aXZlSW1hZ2UsIG9ic2Vy
dmVyKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpdG1hcEltYWdlPiBjcmVhdGUo
SW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQorICAgIHN0YXRpYyBSZWY8Qml0bWFwSW1hZ2U+
IGNyZWF0ZShJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IDApCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEJpdG1hcEltYWdlKG9ic2VydmVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEJpdG1hcEltYWdlKG9ic2VydmVyKSk7CiAgICAgfQogI2lmIFBMQVRGT1JN
KFdJTikKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKEhCSVRNQVAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggYWExMTY2OS4uYTlkNThjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5oCkBAIC0zOCw5ICszOCw5IEBAIGNsYXNzIENTU0Nyb3NzZmFkZVZhbHVlOwogCiBj
bGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBHZW5lcmF0ZWRJbWFn
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U+IGNyZWF0ZShJbWFnZSogZnJvbUltYWdlLCBJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2Vu
dGFnZSwgY29uc3QgRmxvYXRTaXplJiBjcm9zc2ZhZGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNp
emUpCisgICAgc3RhdGljIFJlZjxDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKEltYWdl
KiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBjb25zdCBGbG9h
dFNpemUmIGNyb3NzZmFkZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoZnJvbUltYWdl
LCB0b0ltYWdlLCBwZXJjZW50YWdlLCBjcm9zc2ZhZGVTaXplLCBzaXplKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFnZSwgdG9J
bWFnZSwgcGVyY2VudGFnZSwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOwogICAgIH0KIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250YWluZXJTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1
cmVTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1
cmVTZXR0aW5ncy5oCmluZGV4IGZmNjA3N2UuLmI0MDQ3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKQEAgLTQ5
LDkgKzQ5LDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgRm9udEZlYXR1cmVTZXR0aW5ncyA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8
Rm9udEZlYXR1cmVTZXR0aW5ncz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRm9udEZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRm9udEZlYXR1cmVTZXR0aW5ncyk7CiAgICAgfQogICAgIHZvaWQgYXBwZW5kKGNvbnN0
IEZvbnRGZWF0dXJlJiBmZWF0dXJlKSB7IG1fbGlzdC5hcHBlbmQoZmVhdHVyZSk7IH0KICAgICBz
aXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCAzZGRlOTJjLi4wZGY3ZTVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCkBAIC01Niw4ICs1
Niw4IEBAIEltYWdlOjp+SW1hZ2UoKQogSW1hZ2UqIEltYWdlOjpudWxsSW1hZ2UoKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIEltYWdlKiBudWxsSW1hZ2UgPSBC
aXRtYXBJbWFnZTo6Y3JlYXRlKCkubGVha1JlZigpOwotICAgIHJldHVybiBudWxsSW1hZ2U7Cisg
ICAgc3RhdGljIEltYWdlJiBudWxsSW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCkubGVha1Jl
ZigpOworICAgIHJldHVybiAmbnVsbEltYWdlOwogfQogCiBib29sIEltYWdlOjpzdXBwb3J0c1R5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMuaAppbmRleCAxYTZmZjkyLi45MWNlMTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtNTAsNyArNTAsNyBAQCBj
bGFzcyBDQVJpbmdCdWZmZXI7CiAKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIDog
cHVibGljIFJlZkNvdW50ZWQ8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+LCBwdWJsaWMgQXVk
aW9Tb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM+IGNyZWF0ZShBVlBsYXllckl0ZW0qKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBjcmVhdGUoQVZQbGF5ZXJJdGVtKik7
CiAgICAgdmlydHVhbCB+QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoKTsKIAogICAgIHZvaWQg
c2V0UGxheWVySXRlbShBVlBsYXllckl0ZW0gKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggMTViZTIyZS4uNTgxZjY1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtODQs
MTEgKzg0LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGRvdWJsZSBrUmluZ0J1
ZmZlckR1cmF0aW9uID0gMTsKIAotUGFzc1JlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qz4gQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0ZW0gKml0ZW0p
CitSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdGVtICppdGVtKQogewogICAgIGlmICghY2FuTG9hZE1U
QXVkaW9Qcm9jZXNzaW5nVGFwQ3JlYXRlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoaXRlbSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0p
KTsKIH0KIAogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDKEFWUGxheWVySXRlbSAqaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oCmluZGV4
IDg4ZThmNTAuLmI1ZTc4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaApAQCAtMjksOSAr
MjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpc3RhbnRMaWdodFNvdXJjZSA6
IHB1YmxpYyBMaWdodFNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGlz
dGFudExpZ2h0U291cmNlPiBjcmVhdGUoZmxvYXQgYXppbXV0aCwgZmxvYXQgZWxldmF0aW9uKQor
ICAgIHN0YXRpYyBSZWY8RGlzdGFudExpZ2h0U291cmNlPiBjcmVhdGUoZmxvYXQgYXppbXV0aCwg
ZmxvYXQgZWxldmF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXN0
YW50TGlnaHRTb3VyY2UoYXppbXV0aCwgZWxldmF0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERpc3RhbnRMaWdodFNvdXJjZShhemltdXRoLCBlbGV2YXRpb24pKTsKICAgICB9
CiAKICAgICBmbG9hdCBhemltdXRoKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNw
cAppbmRleCBiYWI5YmI4Li42MmYyZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgRkVC
bGVuZDo6RkVCbGVuZChGaWx0ZXIqIGZpbHRlciwgQmxlbmRNb2RlIG1vZGUpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8RkVCbGVuZD4gRkVCbGVuZDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBCbGVuZE1v
ZGUgbW9kZSkKK1JlZjxGRUJsZW5kPiBGRUJsZW5kOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIEJs
ZW5kTW9kZSBtb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVCbGVuZChmaWx0ZXIs
IG1vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRUJsZW5kKGZpbHRlciwgbW9kZSkp
OwogfQogCiBCbGVuZE1vZGUgRkVCbGVuZDo6YmxlbmRNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggZTc0
ODM1YS4uMzIzNDlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBGRUJsZW5kIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RkVCbGVuZD4gY3JlYXRlKEZpbHRlciosIEJsZW5kTW9kZSk7Cisg
ICAgc3RhdGljIFJlZjxGRUJsZW5kPiBjcmVhdGUoRmlsdGVyKiwgQmxlbmRNb2RlKTsKIAogICAg
IEJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdDsKICAgICBib29sIHNldEJsZW5kTW9kZShCbGVu
ZE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbG9yTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKaW5kZXggODMwZjY1OS4uZDc1ZmEzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0
cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29sb3JNYXRyaXguY3BwCkBAIC0zOSw5ICszOSw5IEBAIEZFQ29sb3JNYXRyaXg6OkZFQ29sb3JN
YXRyaXgoRmlsdGVyKiBmaWx0ZXIsIENvbG9yTWF0cml4VHlwZSB0eXBlLCBjb25zdCBWZWN0b3I8
CiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVDb2xvck1hdHJpeD4gRkVDb2xvck1hdHJpeDo6Y3JlYXRl
KEZpbHRlciogZmlsdGVyLCBDb2xvck1hdHJpeFR5cGUgdHlwZSwgY29uc3QgVmVjdG9yPGZsb2F0
PiYgdmFsdWVzKQorUmVmPEZFQ29sb3JNYXRyaXg+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZShGaWx0
ZXIqIGZpbHRlciwgQ29sb3JNYXRyaXhUeXBlIHR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZh
bHVlcykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQ29sb3JNYXRyaXgoZmlsdGVyLCB0
eXBlLCB2YWx1ZXMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRUNvbG9yTWF0cml4KGZp
bHRlciwgdHlwZSwgdmFsdWVzKSk7CiB9CiAKIENvbG9yTWF0cml4VHlwZSBGRUNvbG9yTWF0cml4
Ojp0eXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgKaW5kZXggZTNlMDhhOS4uMDViN2Y2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbG9yTWF0cml4LmgKQEAgLTM5LDcgKzM5LDcgQEAgZW51bSBDb2xvck1hdHJpeFR5cGUgewog
CiBjbGFzcyBGRUNvbG9yTWF0cml4IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RkVDb2xvck1hdHJpeD4gY3JlYXRlKEZpbHRlciosIENvbG9y
TWF0cml4VHlwZSwgY29uc3QgVmVjdG9yPGZsb2F0PiYpOworICAgIHN0YXRpYyBSZWY8RkVDb2xv
ck1hdHJpeD4gY3JlYXRlKEZpbHRlciosIENvbG9yTWF0cml4VHlwZSwgY29uc3QgVmVjdG9yPGZs
b2F0PiYpOwogCiAgICAgQ29sb3JNYXRyaXhUeXBlIHR5cGUoKSBjb25zdDsKICAgICBib29sIHNl
dFR5cGUoQ29sb3JNYXRyaXhUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCmlu
ZGV4IDEyNjQxMWQuLmIxNDJhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcApA
QCAtNDYsMTAgKzQ2LDEwIEBAIEZFQ29tcG9uZW50VHJhbnNmZXI6OkZFQ29tcG9uZW50VHJhbnNm
ZXIoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8RkVDb21wb25lbnRUcmFuc2Zlcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLCAK
K1JlZjxGRUNvbXBvbmVudFRyYW5zZmVyPiBGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUoRmls
dGVyKiBmaWx0ZXIsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIHJlZEZ1bmMsCiAg
ICAgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLCBjb25zdCBDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbiYgYWxwaGFGdW5jKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVDb21wb25l
bnRUcmFuc2ZlcihmaWx0ZXIsIHJlZEZ1bmMsIGdyZWVuRnVuYywgYmx1ZUZ1bmMsIGFscGhhRnVu
YykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFQ29tcG9uZW50VHJhbnNmZXIoZmlsdGVy
LCByZWRGdW5jLCBncmVlbkZ1bmMsIGJsdWVGdW5jLCBhbHBoYUZ1bmMpKTsKIH0KIAogQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbiBGRUNvbXBvbmVudFRyYW5zZmVyOjpyZWRGdW5jdGlvbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IDc3MTYyNmUuLjVjNDI5NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC02Miw4ICs2Miw4IEBAIHN0cnVjdCBDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uIHsKIAogY2xhc3MgRkVDb21wb25lbnRUcmFuc2ZlciA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFQ29t
cG9uZW50VHJhbnNmZXI+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJiByZWRGdW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1
bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGJsdWVGdW5jLCBjb25zdCBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uJiBhbHBoYUZ1bmMpOworICAgIHN0YXRpYyBSZWY8RkVDb21wb25lbnRU
cmFuc2Zlcj4gY3JlYXRlKEZpbHRlciosIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24m
IHJlZEZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biYgYWxwaGFGdW5jKTsKIAogICAgIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gcmVkRnVuY3Rp
b24oKSBjb25zdDsKICAgICB2b2lkIHNldFJlZEZ1bmN0aW9uKGNvbnN0IENvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggY2YxZGQ4My4uZjNmOThjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbXBvc2l0ZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgRkVDb21wb3NpdGU6OkZFQ29tcG9zaXRl
KEZpbHRlciogZmlsdGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBlLCBmbG8K
IHsKIH0KIAotUGFzc1JlZlB0cjxGRUNvbXBvc2l0ZT4gRkVDb21wb3NpdGU6OmNyZWF0ZShGaWx0
ZXIqIGZpbHRlciwgY29uc3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYgdHlwZSwgZmxvYXQgazEs
IGZsb2F0IGsyLCBmbG9hdCBrMywgZmxvYXQgazQpCitSZWY8RkVDb21wb3NpdGU+IEZFQ29tcG9z
aXRlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUm
IHR5cGUsIGZsb2F0IGsxLCBmbG9hdCBrMiwgZmxvYXQgazMsIGZsb2F0IGs0KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRkVDb21wb3NpdGUoZmlsdGVyLCB0eXBlLCBrMSwgazIsIGszLCBr
NCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFQ29tcG9zaXRlKGZpbHRlciwgdHlwZSwg
azEsIGsyLCBrMywgazQpKTsKIH0KIAogQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSBGRUNvbXBvc2l0
ZTo6b3BlcmF0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRleCBjMTMwMzA5Li5lYTgxNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUNvbXBvc2l0ZS5oCkBAIC00MSw3ICs0MSw3IEBAIGVudW0gQ29tcG9zaXRlT3BlcmF0aW9uVHlw
ZSB7CiAKIGNsYXNzIEZFQ29tcG9zaXRlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVDb21wb3NpdGU+IGNyZWF0ZShGaWx0ZXIqLCBjb25z
dCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwor
ICAgIHN0YXRpYyBSZWY8RkVDb21wb3NpdGU+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb21wb3Np
dGVPcGVyYXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogCiAgICAgQ29t
cG9zaXRlT3BlcmF0aW9uVHlwZSBvcGVyYXRpb24oKSBjb25zdDsKICAgICBib29sIHNldE9wZXJh
dGlvbihDb21wb3NpdGVPcGVyYXRpb25UeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCmlu
ZGV4IDY2ZWMxNDAuLjkwZWNjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcApAQCAtNDks
MTEgKzQ5LDExIEBAIEZFQ29udm9sdmVNYXRyaXg6OkZFQ29udm9sdmVNYXRyaXgoRmlsdGVyKiBm
aWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsCiAgICAgQVNTRVJUKG1fa2VybmVsU2l6
ZS5oZWlnaHQoKSA+IDApOwogfQogCi1QYXNzUmVmUHRyPEZFQ29udm9sdmVNYXRyaXg+IEZFQ29u
dm9sdmVNYXRyaXg6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgSW50U2l6ZSYga2VybmVs
U2l6ZSwKK1JlZjxGRUNvbnZvbHZlTWF0cml4PiBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoRmls
dGVyKiBmaWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUsCiAgICAgZmxvYXQgZGl2aXNv
ciwgZmxvYXQgYmlhcywgY29uc3QgSW50UG9pbnQmIHRhcmdldE9mZnNldCwgRWRnZU1vZGVUeXBl
IGVkZ2VNb2RlLAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIGtlcm5lbFVuaXRMZW5ndGgsIGJvb2wg
cHJlc2VydmVBbHBoYSwgY29uc3QgVmVjdG9yPGZsb2F0PiYga2VybmVsTWF0cml4KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRkVDb252b2x2ZU1hdHJpeChmaWx0ZXIsIGtlcm5lbFNpemUs
IGRpdmlzb3IsIGJpYXMsIHRhcmdldE9mZnNldCwgZWRnZU1vZGUsIGtlcm5lbFVuaXRMZW5ndGgs
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVDb252b2x2ZU1hdHJpeChmaWx0ZXIsIGtlcm5l
bFNpemUsIGRpdmlzb3IsIGJpYXMsIHRhcmdldE9mZnNldCwgZWRnZU1vZGUsIGtlcm5lbFVuaXRM
ZW5ndGgsCiAgICAgICAgIHByZXNlcnZlQWxwaGEsIGtlcm5lbE1hdHJpeCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9s
dmVNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5oCmluZGV4IDgxYWM4YmMuLjU2MjYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5oCkBAIC00MCw3ICs0MCw3IEBAIGVudW0gRWRnZU1vZGVUeXBlIHsKIAogY2xhc3MgRkVD
b252b2x2ZU1hdHJpeCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZFQ29udm9sdmVNYXRyaXg+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBJbnRT
aXplJiwKKyAgICBzdGF0aWMgUmVmPEZFQ29udm9sdmVNYXRyaXg+IGNyZWF0ZShGaWx0ZXIqLCBj
b25zdCBJbnRTaXplJiwKICAgICAgICAgICAgIGZsb2F0LCBmbG9hdCwgY29uc3QgSW50UG9pbnQm
LCBFZGdlTW9kZVR5cGUsIGNvbnN0IEZsb2F0UG9pbnQmLAogICAgICAgICAgICAgYm9vbCwgY29u
c3QgVmVjdG9yPGZsb2F0PiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwCmluZGV4IGEx
MTBjYWUuLmZmNjc0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuY3BwCkBAIC0zMywxMSAr
MzMsMTEgQEAgRkVEaWZmdXNlTGlnaHRpbmc6OkZFRGlmZnVzZUxpZ2h0aW5nKEZpbHRlciogZmls
dGVyLCBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xvciwKIHsKIH0KIAotUGFzc1JlZlB0cjxGRURp
ZmZ1c2VMaWdodGluZz4gRkVEaWZmdXNlTGlnaHRpbmc6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwg
Y29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sb3IsCitSZWY8RkVEaWZmdXNlTGlnaHRpbmc+IEZFRGlm
ZnVzZUxpZ2h0aW5nOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGlu
Z0NvbG9yLAogICAgIGZsb2F0IHN1cmZhY2VTY2FsZSwgZmxvYXQgZGlmZnVzZUNvbnN0YW50LCBm
bG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwKICAgICBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSwgUGFz
c1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGRURpZmZ1c2VMaWdodGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3IsIHN1cmZhY2VTY2Fs
ZSwgZGlmZnVzZUNvbnN0YW50LCBrZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFks
IGxpZ2h0U291cmNlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVEaWZmdXNlTGlnaHRp
bmcoZmlsdGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRpZmZ1c2VDb25zdGFudCwg
a2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBsaWdodFNvdXJjZSkpOwogfQog
CiBGRURpZmZ1c2VMaWdodGluZzo6fkZFRGlmZnVzZUxpZ2h0aW5nKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuaAppbmRleCBmNzhkYTYwLi4xYmNjMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5o
CkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIExpZ2h0U291cmNlOwogCiBjbGFzcyBGRURpZmZ1c2VM
aWdodGluZyA6IHB1YmxpYyBGRUxpZ2h0aW5nIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGRURpZmZ1c2VMaWdodGluZz4gY3JlYXRlKEZpbHRlciosIGNvbnN0IENvbG9yJiwgZmxv
YXQsIGZsb2F0LAorICAgIHN0YXRpYyBSZWY8RkVEaWZmdXNlTGlnaHRpbmc+IGNyZWF0ZShGaWx0
ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwKICAgICAgICAgZmxvYXQsIGZsb2F0LCBQ
YXNzUmVmUHRyPExpZ2h0U291cmNlPik7CiAgICAgdmlydHVhbCB+RkVEaWZmdXNlTGlnaHRpbmco
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcAppbmRleCBiNGFmYzBjLi5iYTAxYzAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlz
cGxhY2VtZW50TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmNwcApAQCAtNDAsMTAgKzQwLDEwIEBAIEZFRGlzcGxh
Y2VtZW50TWFwOjpGRURpc3BsYWNlbWVudE1hcChGaWx0ZXIqIGZpbHRlciwgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB4Q2hhbm5lCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVEaXNwbGFjZW1lbnRNYXA+IEZF
RGlzcGxhY2VtZW50TWFwOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIENoYW5uZWxTZWxlY3RvclR5
cGUgeENoYW5uZWxTZWxlY3RvciwKK1JlZjxGRURpc3BsYWNlbWVudE1hcD4gRkVEaXNwbGFjZW1l
bnRNYXA6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5l
bFNlbGVjdG9yLAogICAgIENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxv
YXQgc2NhbGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRURpc3BsYWNlbWVudE1hcChm
aWx0ZXIsIHhDaGFubmVsU2VsZWN0b3IsIHlDaGFubmVsU2VsZWN0b3IsIHNjYWxlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVEaXNwbGFjZW1lbnRNYXAoZmlsdGVyLCB4Q2hhbm5lbFNl
bGVjdG9yLCB5Q2hhbm5lbFNlbGVjdG9yLCBzY2FsZSkpOwogfQogCiBDaGFubmVsU2VsZWN0b3JU
eXBlIEZFRGlzcGxhY2VtZW50TWFwOjp4Q2hhbm5lbFNlbGVjdG9yKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1l
bnRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNw
bGFjZW1lbnRNYXAuaAppbmRleCBiZjhjODk5Li4wNDIwOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVu
dE1hcC5oCkBAIC0zOCw3ICszOCw3IEBAIGVudW0gQ2hhbm5lbFNlbGVjdG9yVHlwZSB7CiAKIGNs
YXNzIEZFRGlzcGxhY2VtZW50TWFwIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RkVEaXNwbGFjZW1lbnRNYXA+IGNyZWF0ZShGaWx0ZXIqLCBD
aGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENoYW5uZWxTZWxlY3RvclR5cGUg
eUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOworICAgIHN0YXRpYyBSZWY8RkVEaXNwbGFjZW1lbnRN
YXA+IGNyZWF0ZShGaWx0ZXIqLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3Is
IENoYW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOwogCiAgICAgQ2hh
bm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRY
Q2hhbm5lbFNlbGVjdG9yKGNvbnN0IENoYW5uZWxTZWxlY3RvclR5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
Y3BwCmluZGV4IDhmNWUwZmIuLjgyZjJjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTQyLDkg
KzQyLDkgQEAgRkVEcm9wU2hhZG93OjpGRURyb3BTaGFkb3coRmlsdGVyKiBmaWx0ZXIsIGZsb2F0
IHN0ZFgsIGZsb2F0IHN0ZFksIGZsb2F0IGR4LCBmbG8KIHsKIH0KIAotUGFzc1JlZlB0cjxGRURy
b3BTaGFkb3c+IEZFRHJvcFNoYWRvdzo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBmbG9hdCBzdGRY
LCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwgZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xv
ciwgZmxvYXQgc2hhZG93T3BhY2l0eSkKK1JlZjxGRURyb3BTaGFkb3c+IEZFRHJvcFNoYWRvdzo6
Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBmbG9hdCBzdGRYLCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwg
ZmxvYXQgZHksIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgZmxvYXQgc2hhZG93T3BhY2l0eSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFRHJvcFNoYWRvdyhmaWx0ZXIsIHN0ZFgsIHN0
ZFksIGR4LCBkeSwgc2hhZG93Q29sb3IsIHNoYWRvd09wYWNpdHkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGRURyb3BTaGFkb3coZmlsdGVyLCBzdGRYLCBzdGRZLCBkeCwgZHksIHNoYWRv
d0NvbG9yLCBzaGFkb3dPcGFjaXR5KSk7CiB9CiAKIHZvaWQgRkVEcm9wU2hhZG93OjpkZXRlcm1p
bmVBYnNvbHV0ZVBhaW50UmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaAppbmRleCA3N2E3NTk0Li5kNjE3MTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogY2xhc3MgRkVEcm9wU2hhZG93IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVEcm9wU2hhZG93PiBjcmVhdGUoRmlsdGVyKiwgZmxv
YXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOworICAgIHN0YXRp
YyBSZWY8RkVEcm9wU2hhZG93PiBjcmVhdGUoRmlsdGVyKiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwg
ZmxvYXQsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwogCiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RkWDsgfQogICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChmbG9h
dCBzdGRYKSB7IG1fc3RkWCA9IHN0ZFg7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwCmluZGV4IGM4YzMxMDEuLmJjZGIyMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVG
bG9vZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUZsb29kLmNwcApAQCAtMzYsOSArMzYsOSBAQCBGRUZsb29kOjpGRUZsb29kKEZpbHRlciogZmls
dGVyLCBjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQgZmxvb2RPcGFjaXR5KQogewogfQog
Ci1QYXNzUmVmUHRyPEZFRmxvb2Q+IEZFRmxvb2Q6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29u
c3QgQ29sb3ImIGZsb29kQ29sb3IsIGZsb2F0IGZsb29kT3BhY2l0eSkKK1JlZjxGRUZsb29kPiBG
RUZsb29kOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBmbG9vZENvbG9yLCBm
bG9hdCBmbG9vZE9wYWNpdHkpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRUZsb29kKGZp
bHRlciwgZmxvb2RDb2xvciwgZmxvb2RPcGFjaXR5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRkVGbG9vZChmaWx0ZXIsIGZsb29kQ29sb3IsIGZsb29kT3BhY2l0eSkpOwogfQogCiBDb2xv
ciBGRUZsb29kOjpmbG9vZENvbG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmgKaW5kZXggOTBiZjcxOS4uMWNhNGJmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZs
b29kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZs
b29kLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRUZs
b29kIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RkVGbG9vZD4gY3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb2xvciYsIGZsb2F0KTsK
KyAgICBzdGF0aWMgUmVmPEZFRmxvb2Q+IGNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29s
b3ImLCBmbG9hdCk7CiAKICAgICBDb2xvciBmbG9vZENvbG9yKCkgY29uc3Q7CiAgICAgYm9vbCBz
ZXRGbG9vZENvbG9yKGNvbnN0IENvbG9yICYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAppbmRleCAw
NTY3NGQzLi42MjJlZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcApAQCAtODUsOSArODUsOSBA
QCBGRUdhdXNzaWFuQmx1cjo6RkVHYXVzc2lhbkJsdXIoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IHgs
IGZsb2F0IHksIEVkZ2VNb2RlVHlwZSBlZAogewogfQogCi1QYXNzUmVmUHRyPEZFR2F1c3NpYW5C
bHVyPiBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBmbG9hdCB4LCBmbG9h
dCB5LCBFZGdlTW9kZVR5cGUgZWRnZU1vZGUpCitSZWY8RkVHYXVzc2lhbkJsdXI+IEZFR2F1c3Np
YW5CbHVyOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IHgsIGZsb2F0IHksIEVkZ2VNb2Rl
VHlwZSBlZGdlTW9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFR2F1c3NpYW5CbHVy
KGZpbHRlciwgeCwgeSwgZWRnZU1vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRUdh
dXNzaWFuQmx1cihmaWx0ZXIsIHgsIHksIGVkZ2VNb2RlKSk7CiB9CiAKIGZsb2F0IEZFR2F1c3Np
YW5CbHVyOjpzdGREZXZpYXRpb25YKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAppbmRleCA3YWY1
NDI5Li43YWIzYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVHYXVzc2lhbkJsdXIgOiBwdWJsaWMgRmlsdGVyRWZm
ZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4gY3Jl
YXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgRWRnZU1vZGVUeXBlKTsKKyAgICBzdGF0aWMgUmVm
PEZFR2F1c3NpYW5CbHVyPiBjcmVhdGUoRmlsdGVyKiwgZmxvYXQsIGZsb2F0LCBFZGdlTW9kZVR5
cGUpOwogCiAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3Rk
RGV2aWF0aW9uWChmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAppbmRleCA3ZmQ3NmY2Li42MGZhNTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5j
cHAKQEAgLTMzLDkgKzMzLDkgQEAgRkVNZXJnZTo6RkVNZXJnZShGaWx0ZXIqIGZpbHRlcikKIHsK
IH0KIAotUGFzc1JlZlB0cjxGRU1lcmdlPiBGRU1lcmdlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIp
CitSZWY8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRkVNZXJnZShmaWx0ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGRU1lcmdlKGZpbHRlcikpOwogfQogCiB2b2lkIEZFTWVyZ2U6OnBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTWVyZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNZXJnZS5oCmluZGV4IDBkNWVkNDQuLmU1YmNkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5oCkBAIC0zMCw3ICszMCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVNZXJnZSA6IHB1YmxpYyBGaWx0ZXJF
ZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFTWVyZ2U+IGNyZWF0ZShG
aWx0ZXIqKTsKKyAgICBzdGF0aWMgUmVmPEZFTWVyZ2U+IGNyZWF0ZShGaWx0ZXIqKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICNpZiBFTkFCTEUoT1BFTkNM
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1vcnBob2xvZ3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuY3BwCmluZGV4IGE1OGJmNjIuLmE5YWFiMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9n
eS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgRkVNb3JwaG9sb2d5OjpGRU1vcnBob2xvZ3koRmlsdGVy
KiBmaWx0ZXIsIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgdHlwZSwgZmxvYXQgcmEKIHsKIH0KIAot
UGFzc1JlZlB0cjxGRU1vcnBob2xvZ3k+IEZFTW9ycGhvbG9neTo6Y3JlYXRlKEZpbHRlciogZmls
dGVyLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJh
ZGl1c1kpCitSZWY8RkVNb3JwaG9sb2d5PiBGRU1vcnBob2xvZ3k6OmNyZWF0ZShGaWx0ZXIqIGZp
bHRlciwgTW9ycGhvbG9neU9wZXJhdG9yVHlwZSB0eXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCBy
YWRpdXNZKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVNb3JwaG9sb2d5KGZpbHRlciwg
dHlwZSwgcmFkaXVzWCwgcmFkaXVzWSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFTW9y
cGhvbG9neShmaWx0ZXIsIHR5cGUsIHJhZGl1c1gsIHJhZGl1c1kpKTsKIH0KIAogTW9ycGhvbG9n
eU9wZXJhdG9yVHlwZSBGRU1vcnBob2xvZ3k6Om1vcnBob2xvZ3lPcGVyYXRvcigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9y
cGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1v
cnBob2xvZ3kuaAppbmRleCA4NmUwNmIxLi4zM2E3MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTM1
LDcgKzM1LDcgQEAgZW51bSBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHsKIAogY2xhc3MgRkVNb3Jw
aG9sb2d5IDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RkVNb3JwaG9sb2d5PiBjcmVhdGUoRmlsdGVyKiwgTW9ycGhvbG9neU9wZXJhdG9yVHlw
ZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVzWSk7ICAKKyAgICBzdGF0aWMgUmVmPEZFTW9y
cGhvbG9neT4gY3JlYXRlKEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJh
ZGl1c1gsIGZsb2F0IHJhZGl1c1kpOwogICAgIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgbW9ycGhv
bG9neU9wZXJhdG9yKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRNb3JwaG9sb2d5T3BlcmF0b3IoTW9y
cGhvbG9neU9wZXJhdG9yVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5jcHAKaW5kZXggYjY3ZGZjMy4uZjE1M2RmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9m
ZnNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU9mZnNldC5jcHAKQEAgLTM3LDkgKzM3LDkgQEAgRkVPZmZzZXQ6OkZFT2Zmc2V0KEZpbHRlciog
ZmlsdGVyLCBmbG9hdCBkeCwgZmxvYXQgZHkpCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVPZmZzZXQ+
IEZFT2Zmc2V0OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IGR4LCBmbG9hdCBkeSkKK1Jl
ZjxGRU9mZnNldD4gRkVPZmZzZXQ6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgZHgsIGZs
b2F0IGR5KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVPZmZzZXQoZmlsdGVyLCBkeCwg
ZHkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU9mZnNldChmaWx0ZXIsIGR4LCBkeSkp
OwogfQogCiBmbG9hdCBGRU9mZnNldDo6ZHgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCmluZGV4IDBjZWVkMzcuLjJm
YmRlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFT2Zmc2V0LmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGRU9mZnNldCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZFT2Zmc2V0PiBjcmVhdGUoRmlsdGVyKiwgZmxvYXQgZHgsIGZsb2F0IGR5
KTsKKyAgICBzdGF0aWMgUmVmPEZFT2Zmc2V0PiBjcmVhdGUoRmlsdGVyKiwgZmxvYXQgZHgsIGZs
b2F0IGR5KTsKIAogICAgIGZsb2F0IGR4KCkgY29uc3Q7CiAgICAgdm9pZCBzZXREeChmbG9hdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
U3BlY3VsYXJMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKaW5kZXggNGY4OWY4YS4uOGE1MzZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1
bGFyTGlnaHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmNwcApAQCAtMzQsMTEgKzM0LDExIEBAIEZFU3BlY3Vs
YXJMaWdodGluZzo6RkVTcGVjdWxhckxpZ2h0aW5nKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb2xv
ciYgbGlnaHRpbmdDb2xvCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVTcGVjdWxhckxpZ2h0aW5nPiBG
RVNwZWN1bGFyTGlnaHRpbmc6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImIGxp
Z2h0aW5nQ29sb3IsCitSZWY8RkVTcGVjdWxhckxpZ2h0aW5nPiBGRVNwZWN1bGFyTGlnaHRpbmc6
OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sb3IsCiAgICAg
ZmxvYXQgc3VyZmFjZVNjYWxlLCBmbG9hdCBzcGVjdWxhckNvbnN0YW50LCBmbG9hdCBzcGVjdWxh
ckV4cG9uZW50LAogICAgIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0
TGVuZ3RoWSwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGRVNwZWN1bGFyTGlnaHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9y
LCBzdXJmYWNlU2NhbGUsIHNwZWN1bGFyQ29uc3RhbnQsIHNwZWN1bGFyRXhwb25lbnQsCisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVTcGVjdWxhckxpZ2h0aW5nKGZpbHRlciwgbGlnaHRpbmdD
b2xvciwgc3VyZmFjZVNjYWxlLCBzcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckV4cG9uZW50LAog
ICAgICAgICBrZXJuZWxVbml0TGVuZ3RoWCwga2VybmVsVW5pdExlbmd0aFksIGxpZ2h0U291cmNl
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVTcGVjdWxhckxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5oCmluZGV4IDc5ZDg2ZGUuLjA3ZmQ1NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVT
cGVjdWxhckxpZ2h0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEZFU3BlY3VsYXJMaWdodGluZyA6IHB1YmxpYyBGRUxpZ2h0aW5n
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRVNwZWN1bGFyTGlnaHRpbmc+IGNy
ZWF0ZShGaWx0ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9hdCwKKyAgICBzdGF0aWMgUmVm
PEZFU3BlY3VsYXJMaWdodGluZz4gY3JlYXRlKEZpbHRlciosIGNvbnN0IENvbG9yJiwgZmxvYXQs
IGZsb2F0LAogICAgICAgICBmbG9hdCwgZmxvYXQsIGZsb2F0LCBQYXNzUmVmUHRyPExpZ2h0U291
cmNlPik7CiAgICAgdmlydHVhbCB+RkVTcGVjdWxhckxpZ2h0aW5nKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAppbmRleCA1
ZTIxNzdjLi42MWU1OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCkBAIC0zNiw5ICszNiw5IEBAIEZFVGlsZTo6RkVUaWxl
KEZpbHRlciogZmlsdGVyKQogewogfQogCi1QYXNzUmVmUHRyPEZFVGlsZT4gRkVUaWxlOjpjcmVh
dGUoRmlsdGVyKiBmaWx0ZXIpCitSZWY8RkVUaWxlPiBGRVRpbGU6OmNyZWF0ZShGaWx0ZXIqIGZp
bHRlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFVGlsZShmaWx0ZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBGRVRpbGUoZmlsdGVyKSk7CiB9CiAKIHZvaWQgRkVUaWxlOjpw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKaW5kZXggMzA1NmFkYi4uYTA1MjBiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5oCkBAIC0y
OSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEZFVGlsZSA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFVGls
ZT4gY3JlYXRlKEZpbHRlciogZmlsdGVyKTsKKyAgICBzdGF0aWMgUmVmPEZFVGlsZT4gY3JlYXRl
KEZpbHRlciogZmlsdGVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCmluZGV4IGQy
MTZkNzUuLjBjZGU3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgRkVU
dXJidWxlbmNlOjpGRVR1cmJ1bGVuY2UoRmlsdGVyKiBmaWx0ZXIsIFR1cmJ1bGVuY2VUeXBlIHR5
cGUsIGZsb2F0IGJhc2VGcmVxdWUKIHsKIH0KIAotUGFzc1JlZlB0cjxGRVR1cmJ1bGVuY2U+IEZF
VHVyYnVsZW5jZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBUdXJidWxlbmNlVHlwZSB0eXBlLCBm
bG9hdCBiYXNlRnJlcXVlbmN5WCwgZmxvYXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVz
LCBmbG9hdCBzZWVkLCBib29sIHN0aXRjaFRpbGVzKQorUmVmPEZFVHVyYnVsZW5jZT4gRkVUdXJi
dWxlbmNlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIFR1cmJ1bGVuY2VUeXBlIHR5cGUsIGZsb2F0
IGJhc2VGcmVxdWVuY3lYLCBmbG9hdCBiYXNlRnJlcXVlbmN5WSwgaW50IG51bU9jdGF2ZXMsIGZs
b2F0IHNlZWQsIGJvb2wgc3RpdGNoVGlsZXMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
RVR1cmJ1bGVuY2UoZmlsdGVyLCB0eXBlLCBiYXNlRnJlcXVlbmN5WCwgYmFzZUZyZXF1ZW5jeVks
IG51bU9jdGF2ZXMsIHNlZWQsIHN0aXRjaFRpbGVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRkVUdXJidWxlbmNlKGZpbHRlciwgdHlwZSwgYmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVu
Y3lZLCBudW1PY3RhdmVzLCBzZWVkLCBzdGl0Y2hUaWxlcykpOwogfQogCiBUdXJidWxlbmNlVHlw
ZSBGRVR1cmJ1bGVuY2U6OnR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmgKaW5kZXggZThjMTAwNS4u
MTgwYjZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCkBAIC0zNyw3ICszNyw3IEBAIGVudW0gVHVyYnVsZW5j
ZVR5cGUgewogCiBjbGFzcyBGRVR1cmJ1bGVuY2UgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShGaWx0ZXIq
LCBUdXJidWxlbmNlVHlwZSwgZmxvYXQsIGZsb2F0LCBpbnQsIGZsb2F0LCBib29sKTsKKyAgICBz
dGF0aWMgUmVmPEZFVHVyYnVsZW5jZT4gY3JlYXRlKEZpbHRlciosIFR1cmJ1bGVuY2VUeXBlLCBm
bG9hdCwgZmxvYXQsIGludCwgZmxvYXQsIGJvb2wpOwogCiAgICAgVHVyYnVsZW5jZVR5cGUgdHlw
ZSgpIGNvbnN0OwogICAgIGJvb2wgc2V0VHlwZShUdXJidWxlbmNlVHlwZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25p
dG9ySU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TLmgKaW5kZXggYmFlMmE1Mi4uYmZjMGRiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JJT1MuaApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1v
bml0b3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUz4gY3JlYXRlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICBzdGF0aWMg
UmVmPERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUz4gY3JlYXRlKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlzcGxheVJlZnJl
c2hNb25pdG9ySU9TKGRpc3BsYXlJRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
aXNwbGF5UmVmcmVzaE1vbml0b3JJT1MoZGlzcGxheUlEKSk7CiAgICAgfQogICAgIAogICAgIHZp
cnR1YWwgfkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5o
CmluZGV4IGZmYjJiNjMuLmU0NjliNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgKQEAgLTcz
LDE0ICs3MywxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNsYXNzIENvbXBsZXhUZXh0UnVu
IDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcGxleFRleHRSdW4+IHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbXBsZXhUZXh0UnVuPiBjcmVhdGUoQ1RSdW5SZWYgY3RS
dW4sIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSwgY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCBzaXplX3Qgc3RyaW5nTGVuZ3RoLCBDRlJhbmdl
IHJ1blJhbmdlKQorICAgICAgICBzdGF0aWMgUmVmPENvbXBsZXhUZXh0UnVuPiBjcmVhdGUoQ1RS
dW5SZWYgY3RSdW4sIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YSwgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCBzaXplX3Qgc3RyaW5nTGVuZ3Ro
LCBDRlJhbmdlIHJ1blJhbmdlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENvbXBsZXhUZXh0UnVuKGN0UnVuLCBmb250RGF0YSwgY2hhcmFjdGVycywgc3RyaW5n
TG9jYXRpb24sIHN0cmluZ0xlbmd0aCwgcnVuUmFuZ2UpKTsKKyAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENvbXBsZXhUZXh0UnVuKGN0UnVuLCBmb250RGF0YSwgY2hhcmFjdGVycywg
c3RyaW5nTG9jYXRpb24sIHN0cmluZ0xlbmd0aCwgcnVuUmFuZ2UpKTsKICAgICAgICAgfQogCi0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbXBsZXhUZXh0UnVuPiBjcmVhdGUoY29uc3QgU2lt
cGxlRm9udERhdGEqIGZvbnREYXRhLCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQg
c3RyaW5nTG9jYXRpb24sIHNpemVfdCBzdHJpbmdMZW5ndGgsIGJvb2wgbHRyKQorICAgICAgICBz
dGF0aWMgUmVmPENvbXBsZXhUZXh0UnVuPiBjcmVhdGUoY29uc3QgU2ltcGxlRm9udERhdGEqIGZv
bnREYXRhLCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc3RyaW5nTG9jYXRpb24s
IHNpemVfdCBzdHJpbmdMZW5ndGgsIGJvb2wgbHRyKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IENvbXBsZXhUZXh0UnVuKGZvbnREYXRhLCBjaGFyYWN0ZXJzLCBz
dHJpbmdMb2NhdGlvbiwgc3RyaW5nTGVuZ3RoLCBsdHIpKTsKKyAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENvbXBsZXhUZXh0UnVuKGZvbnREYXRhLCBjaGFyYWN0ZXJzLCBzdHJpbmdM
b2NhdGlvbiwgc3RyaW5nTGVuZ3RoLCBsdHIpKTsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2ln
bmVkIGdseXBoQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2dseXBoQ291bnQ7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaAppbmRleCA4OTU0ZTljLi5hNzRkZDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
VVJMLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTQyLDE2ICs0MSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJhd0RhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxSYXdEYXRhPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3JlYXRlKFZlY3RvcjxjaGFyPiYmIGRhdGEpCisg
ICAgc3RhdGljIFJlZjxSYXdEYXRhPiBjcmVhdGUoVmVjdG9yPGNoYXI+JiYgZGF0YSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YSkpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YSkpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSYXdEYXRhPiBjcmVhdGUoY29uc3QgY2hh
ciogZGF0YSwgc2l6ZV90IHNpemUpCisgICAgc3RhdGljIFJlZjxSYXdEYXRhPiBjcmVhdGUoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBWZWN0b3I8Y2hhcj4g
ZGF0YVZlY3RvcihzaXplKTsKICAgICAgICAgbWVtY3B5KGRhdGFWZWN0b3IuZGF0YSgpLCBkYXRh
LCBzaXplKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXdEYXRhKFdURjo6bW92ZShk
YXRhVmVjdG9yKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSYXdEYXRhKFdURjo6
bW92ZShkYXRhVmVjdG9yKSkpOwogICAgIH0KIAogICAgIGNvbnN0IGNoYXIqIGRhdGEoKSBjb25z
dCB7IHJldHVybiBtX2RhdGEuZGF0YSgpOyB9CkBAIC0xMTgsOSArMTE3LDkgQEAgdHlwZWRlZiBW
ZWN0b3I8QmxvYkRhdGFJdGVtPiBCbG9iRGF0YUl0ZW1MaXN0OwogCiBjbGFzcyBCbG9iRGF0YSA6
IHB1YmxpYyBSZWZDb3VudGVkPEJsb2JEYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QmxvYkRhdGE+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxCbG9iRGF0YT4gY3JlYXRl
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYkRhdGEpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iRGF0YSk7CiAgICAgfQogCiAgICAgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFR5cGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZS5oCmluZGV4IDU4NGI0ZTYuLjgxN2Q3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaApAQCAtMzQsOSAr
MzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgcGF0aCkKKyAgICBzdGF0aWMgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpKTsKICAgICB9CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQu
Y3BwCmluZGV4IDIwYzc1MTAuLmEwMjY0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TY2hl
ZHVsZVBhaXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwCmluZGV4IGRiMTI2YzkuLmU3ZTZlY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwCkBAIC0z
MiwxMiArMzIsMTIgQEAgc3RydWN0IFNhbWVTaXplQXNCaWRpQ29udGV4dCA6IHB1YmxpYyBSZWZD
b3VudGVkPFNhbWVTaXplQXNCaWRpQ29udGV4dD4gewogCiBDT01QSUxFX0FTU0VSVChzaXplb2Yo
QmlkaUNvbnRleHQpID09IHNpemVvZihTYW1lU2l6ZUFzQmlkaUNvbnRleHQpLCBCaWRpQ29udGV4
dF9zaG91bGRfc3RheV9zbWFsbCk7CiAKLWlubGluZSBQYXNzUmVmUHRyPEJpZGlDb250ZXh0PiBC
aWRpQ29udGV4dDo6Y3JlYXRlVW5jYWNoZWQodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlIHNvdXJj
ZSwgQmlkaUNvbnRleHQqIHBhcmVudCkKK2lubGluZSBSZWY8QmlkaUNvbnRleHQ+IEJpZGlDb250
ZXh0OjpjcmVhdGVVbmNhY2hlZCh1bnNpZ25lZCBjaGFyIGxldmVsLCBVQ2hhckRpcmVjdGlvbiBk
aXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUsIEJpZGlFbWJlZGRpbmdTb3VyY2Ugc291cmNlLCBCaWRp
Q29udGV4dCogcGFyZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmlkaUNvbnRleHQo
bGV2ZWwsIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHNvdXJjZSwgcGFyZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQmlkaUNvbnRleHQobGV2ZWwsIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHNv
dXJjZSwgcGFyZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0
OjpjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0aW9uLCBi
b29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlIHNvdXJjZSwgQmlkaUNvbnRleHQqIHBh
cmVudCkKK1JlZjxCaWRpQ29udGV4dD4gQmlkaUNvbnRleHQ6OmNyZWF0ZSh1bnNpZ25lZCBjaGFy
IGxldmVsLCBVQ2hhckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUsIEJpZGlFbWJl
ZGRpbmdTb3VyY2Ugc291cmNlLCBCaWRpQ29udGV4dCogcGFyZW50KQogewogICAgIEFTU0VSVChk
aXJlY3Rpb24gPT0gKGxldmVsICUgMiA/IFVfUklHSFRfVE9fTEVGVCA6IFVfTEVGVF9UT19SSUdI
VCkpOwogCkBAIC00NywyMCArNDcsMjAgQEAgUGFzc1JlZlB0cjxCaWRpQ29udGV4dD4gQmlkaUNv
bnRleHQ6OmNyZWF0ZSh1bnNpZ25lZCBjaGFyIGxldmVsLCBVQ2hhckRpcmVjdGlvbgogICAgIEFT
U0VSVChsZXZlbCA8PSAxKTsKICAgICBpZiAoIWxldmVsKSB7CiAgICAgICAgIGlmICghb3ZlcnJp
ZGUpIHsKLSAgICAgICAgICAgIHN0YXRpYyBCaWRpQ29udGV4dCogbHRyQ29udGV4dCA9IGNyZWF0
ZVVuY2FjaGVkKDAsIFVfTEVGVF9UT19SSUdIVCwgZmFsc2UsIEZyb21TdHlsZU9yRE9NLCAwKS5s
ZWFrUmVmKCk7CisgICAgICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQmIGx0ckNvbnRleHQgPSBj
cmVhdGVVbmNhY2hlZCgwLCBVX0xFRlRfVE9fUklHSFQsIGZhbHNlLCBGcm9tU3R5bGVPckRPTSwg
MCkubGVha1JlZigpOwogICAgICAgICAgICAgcmV0dXJuIGx0ckNvbnRleHQ7CiAgICAgICAgIH0K
IAotICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQqIGx0ck92ZXJyaWRlQ29udGV4dCA9IGNyZWF0
ZVVuY2FjaGVkKDAsIFVfTEVGVF9UT19SSUdIVCwgdHJ1ZSwgRnJvbVN0eWxlT3JET00sIDApLmxl
YWtSZWYoKTsKKyAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBsdHJPdmVycmlkZUNvbnRleHQg
PSBjcmVhdGVVbmNhY2hlZCgwLCBVX0xFRlRfVE9fUklHSFQsIHRydWUsIEZyb21TdHlsZU9yRE9N
LCAwKS5sZWFrUmVmKCk7CiAgICAgICAgIHJldHVybiBsdHJPdmVycmlkZUNvbnRleHQ7CiAgICAg
fQogCiAgICAgaWYgKCFvdmVycmlkZSkgewotICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQqIHJ0
bENvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIGZhbHNlLCBGcm9t
U3R5bGVPckRPTSwgMCkubGVha1JlZigpOworICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQmIHJ0
bENvbnRleHQgPSBjcmVhdGVVbmNhY2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIGZhbHNlLCBGcm9t
U3R5bGVPckRPTSwgMCkubGVha1JlZigpOwogICAgICAgICByZXR1cm4gcnRsQ29udGV4dDsKICAg
ICB9CiAKLSAgICBzdGF0aWMgQmlkaUNvbnRleHQqIHJ0bE92ZXJyaWRlQ29udGV4dCA9IGNyZWF0
ZVVuY2FjaGVkKDEsIFVfUklHSFRfVE9fTEVGVCwgdHJ1ZSwgRnJvbVN0eWxlT3JET00sIDApLmxl
YWtSZWYoKTsKKyAgICBzdGF0aWMgQmlkaUNvbnRleHQmIHJ0bE92ZXJyaWRlQ29udGV4dCA9IGNy
ZWF0ZVVuY2FjaGVkKDEsIFVfUklHSFRfVE9fTEVGVCwgdHJ1ZSwgRnJvbVN0eWxlT3JET00sIDAp
LmxlYWtSZWYoKTsKICAgICByZXR1cm4gcnRsT3ZlcnJpZGVDb250ZXh0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKaW5kZXggOWE0MjczNi4uNjBiMTE4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaApAQCAtMzgs
NyArMzgsNyBAQCBlbnVtIEJpZGlFbWJlZGRpbmdTb3VyY2UgewogLy8gVXNlZCB0byBrZWVwIHRy
YWNrIG9mIGV4cGxpY2l0IGVtYmVkZGluZ3MuCiBjbGFzcyBCaWRpQ29udGV4dCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEJpZGlDb250ZXh0PiB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFBhc3NSZWZQdHI8QmlkaUNvbnRleHQ+IGNyZWF0ZSh1bnNpZ25lZCBjaGFyIGxldmVsLCBV
Q2hhckRpcmVjdGlvbiwgYm9vbCBvdmVycmlkZSA9IGZhbHNlLCBCaWRpRW1iZWRkaW5nU291cmNl
ID0gRnJvbVN0eWxlT3JET00sIEJpZGlDb250ZXh0KiBwYXJlbnQgPSAwKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPEJpZGlDb250ZXh0PiBjcmVhdGUodW5zaWduZWQgY2hhciBsZXZl
bCwgVUNoYXJEaXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUgPSBmYWxzZSwgQmlkaUVtYmVkZGluZ1Nv
dXJjZSA9IEZyb21TdHlsZU9yRE9NLCBCaWRpQ29udGV4dCogcGFyZW50ID0gMCk7CiAKICAgICBC
aWRpQ29udGV4dCogcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQuZ2V0KCk7IH0KICAg
ICB1bnNpZ25lZCBjaGFyIGxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9sZXZlbDsgfQpAQCAtNTcs
NyArNTcsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxCaWRpQ29udGV4dD4gY3JlYXRlVW5jYWNoZWQodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJE
aXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUsIEJpZGlFbWJlZGRpbmdTb3VyY2UsIEJpZGlDb250ZXh0
KiBwYXJlbnQpOworICAgIHN0YXRpYyBSZWY8QmlkaUNvbnRleHQ+IGNyZWF0ZVVuY2FjaGVkKHVu
c2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1i
ZWRkaW5nU291cmNlLCBCaWRpQ29udGV4dCogcGFyZW50KTsKIAogICAgIHVuc2lnbmVkIG1fbGV2
ZWwgOiA2OyAvLyBUaGUgbWF4aW1pdW0gYmlkaSBsZXZlbCBpcyA2MjogaHR0cDovL3VuaWNvZGUu
b3JnL3JlcG9ydHMvdHI5LyNFeHBsaWNpdF9MZXZlbHNfYW5kX0RpcmVjdGlvbnMKICAgICB1bnNp
Z25lZCBtX2RpcmVjdGlvbiA6IDU7IC8vIERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01N
aW1lVHlwZS5oCmluZGV4IGQzY2YwYTUuLjUwODNlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TU1pbWVUeXBlLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgRE9NUGx1Z2luOwogCiBjbGFzcyBE
T01NaW1lVHlwZSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTU1pbWVUeXBlPiwgcHVibGljIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9N
TWltZVR5cGU+IGNyZWF0ZShQYXNzUmVmUHRyPFBsdWdpbkRhdGE+IHBsdWdpbkRhdGEsIEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01NaW1lVHlw
ZShwbHVnaW5EYXRhLCBmcmFtZSwgaW5kZXgpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NTWltZVR5
cGU+IGNyZWF0ZShQYXNzUmVmUHRyPFBsdWdpbkRhdGE+IHBsdWdpbkRhdGEsIEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NTWltZVR5cGUocGx1
Z2luRGF0YSwgZnJhbWUsIGluZGV4KSk7IH0KICAgICB+RE9NTWltZVR5cGUoKTsKIAogICAgIGNv
bnN0IFN0cmluZyAmdHlwZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWlt
ZVR5cGVBcnJheS5jcHAKaW5kZXggN2QyMTIwZC4uNmIyYzQzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQ
dHI8RE9NTWltZVR5cGU+IERPTU1pbWVUeXBlQXJyYXk6Oml0ZW0odW5zaWduZWQgaW5kZXgpCiAg
ICAgY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtaW1lcyA9IGRhdGEtPm1pbWVzKCk7CiAg
ICAgaWYgKGluZGV4ID49IG1pbWVzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIERPTU1pbWVUeXBlOjpjcmVhdGUoZGF0YSwgbV9mcmFtZSwgaW5kZXgpLmdldCgpOworICAg
IHJldHVybiBET01NaW1lVHlwZTo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGluZGV4KTsKIH0KIAog
Ym9vbCBET01NaW1lVHlwZUFycmF5OjpjYW5HZXRJdGVtc0Zvck5hbWUoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpCkBAIC04Myw3ICs4Myw3IEBAIFBhc3NSZWZQdHI8RE9NTWltZVR5
cGU+IERPTU1pbWVUeXBlQXJyYXk6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIHByb3Bl
cnR5CiAgICAgY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtaW1lcyA9IGRhdGEtPm1pbWVz
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1pbWVzLnNpemUoKTsgKytpKSB7CiAg
ICAgICAgIGlmIChtaW1lc1tpXS50eXBlID09IHByb3BlcnR5TmFtZSkKLSAgICAgICAgICAgIHJl
dHVybiBET01NaW1lVHlwZTo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGkpLmdldCgpOworICAgICAg
ICAgICAgcmV0dXJuIERPTU1pbWVUeXBlOjpjcmVhdGUoZGF0YSwgbV9mcmFtZSwgaSk7CiAgICAg
fQogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9E
T01NaW1lVHlwZUFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJy
YXkuaAppbmRleCA1ODE2MWRmMjAuLjA2ZjBkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGVBcnJheS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIFBsdWdpbkRhdGE7CiAK
IGNsYXNzIERPTU1pbWVUeXBlQXJyYXkgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMg
UmVmQ291bnRlZDxET01NaW1lVHlwZUFycmF5PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01NaW1lVHlwZUFycmF5PiBjcmVhdGUo
RnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NTWltZVR5cGVBcnJheShmcmFt
ZSkpOyB9CisgICAgc3RhdGljIFJlZjxET01NaW1lVHlwZUFycmF5PiBjcmVhdGUoRnJhbWUqIGZy
YW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTU1pbWVUeXBlQXJyYXkoZnJhbWUpKTsgfQog
ICAgIH5ET01NaW1lVHlwZUFycmF5KCk7CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcAppbmRleCBlZjVhYjRjLi4zZmU5MTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NS
ZWZQdHI8RE9NTWltZVR5cGU+IERPTVBsdWdpbjo6aXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICBj
b25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbz4mIG1pbWVzID0gbV9wbHVnaW5EYXRhLT5taW1lcygp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtaW1lcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBpZiAobWltZXNbaV0gPT0gbWltZSAmJiBtX3BsdWdpbkRhdGEtPm1pbWVQbHVnaW5JbmRp
Y2VzKClbaV0gPT0gbV9pbmRleCkKLSAgICAgICAgICAgIHJldHVybiBET01NaW1lVHlwZTo6Y3Jl
YXRlKG1fcGx1Z2luRGF0YS5nZXQoKSwgbV9mcmFtZSwgaSkuZ2V0KCk7CisgICAgICAgICAgICBy
ZXR1cm4gRE9NTWltZVR5cGU6OmNyZWF0ZShtX3BsdWdpbkRhdGEuZ2V0KCksIG1fZnJhbWUsIGkp
OwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KQEAgLTg1LDcgKzg1LDcgQEAgUGFzc1JlZlB0cjxE
T01NaW1lVHlwZT4gRE9NUGx1Z2luOjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpCiAgICAgY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtaW1lcyA9IG1fcGx1
Z2luRGF0YS0+bWltZXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWltZXMuc2l6
ZSgpOyArK2kpCiAgICAgICAgIGlmIChtaW1lc1tpXS50eXBlID09IHByb3BlcnR5TmFtZSkKLSAg
ICAgICAgICAgIHJldHVybiBET01NaW1lVHlwZTo6Y3JlYXRlKG1fcGx1Z2luRGF0YS5nZXQoKSwg
bV9mcmFtZSwgaSkuZ2V0KCk7CisgICAgICAgICAgICByZXR1cm4gRE9NTWltZVR5cGU6OmNyZWF0
ZShtX3BsdWdpbkRhdGEuZ2V0KCksIG1fZnJhbWUsIGkpOwogICAgIHJldHVybiAwOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5oIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaAppbmRleCA5MDhiOTRmLi4xMjVjYTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NUGx1Z2luLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgUGx1Z2luRGF0
YTsKIAogY2xhc3MgRE9NUGx1Z2luIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJl
ZkNvdW50ZWQ8RE9NUGx1Z2luPiwgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NUGx1Z2luPiBjcmVhdGUoUGx1Z2luRGF0
YSogcGx1Z2luRGF0YSwgRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IERPTVBsdWdpbihwbHVnaW5EYXRhLCBmcmFtZSwgaW5kZXgpKTsgfQorICAgIHN0
YXRpYyBSZWY8RE9NUGx1Z2luPiBjcmVhdGUoUGx1Z2luRGF0YSogcGx1Z2luRGF0YSwgRnJhbWUq
IGZyYW1lLCB1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01QbHVnaW4o
cGx1Z2luRGF0YSwgZnJhbWUsIGluZGV4KSk7IH0KICAgICB+RE9NUGx1Z2luKCk7CiAKICAgICBT
dHJpbmcgbmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9E
T01QbHVnaW5BcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5
LmNwcAppbmRleCBkM2E2Mzc3Li44MTVlYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TVBsdWdpbkFycmF5LmNwcApAQCAtNTksNyArNTksNyBAQCBQYXNzUmVmUHRyPERPTVBsdWdpbj4g
RE9NUGx1Z2luQXJyYXk6Oml0ZW0odW5zaWduZWQgaW5kZXgpCiAgICAgY29uc3QgVmVjdG9yPFBs
dWdpbkluZm8+JiBwbHVnaW5zID0gZGF0YS0+cGx1Z2lucygpOwogICAgIGlmIChpbmRleCA+PSBw
bHVnaW5zLnNpemUoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIERPTVBsdWdpbjo6
Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGluZGV4KS5nZXQoKTsKKyAgICByZXR1cm4gRE9NUGx1Z2lu
OjpjcmVhdGUoZGF0YSwgbV9mcmFtZSwgaW5kZXgpOwogfQogCiBib29sIERPTVBsdWdpbkFycmF5
OjpjYW5HZXRJdGVtc0Zvck5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCkBA
IC04Myw3ICs4Myw3IEBAIFBhc3NSZWZQdHI8RE9NUGx1Z2luPiBET01QbHVnaW5BcnJheTo6bmFt
ZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lCiAgICAgY29uc3QgVmVjdG9y
PFBsdWdpbkluZm8+JiBwbHVnaW5zID0gZGF0YS0+cGx1Z2lucygpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBwbHVnaW5zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChwbHVnaW5z
W2ldLm5hbWUgPT0gcHJvcGVydHlOYW1lKQotICAgICAgICAgICAgcmV0dXJuIERPTVBsdWdpbjo6
Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGkpLmdldCgpOworICAgICAgICAgICAgcmV0dXJuIERPTVBs
dWdpbjo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGkpOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaAppbmRleCA0NDdjM2NmLi5lYTk2
NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIFBsdWdpbkRhdGE7CiAKIGNsYXNzIERPTVBsdWdpbkFycmF5IDogcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9NUGx1Z2luQXJyYXk+LCBwdWJs
aWMgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TVBsdWdpbkFycmF5PiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
RE9NUGx1Z2luQXJyYXkoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NUGx1Z2luQXJyYXk+
IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGx1Z2luQXJy
YXkoZnJhbWUpKTsgfQogICAgIH5ET01QbHVnaW5BcnJheSgpOwogCiAgICAgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCmluZGV4IDhkNDUyMzQu
LjFmMjY2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCkBAIC01MSw3ICs1MSw3
IEBAIHN0cnVjdCBQbHVnaW5JbmZvIHsKIC8vIEZJWE1FOiBtZXJnZSB3aXRoIFBsdWdpbkRhdGFi
YXNlIGluIHRoZSBmdXR1cmUKIGNsYXNzIFBsdWdpbkRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxQ
bHVnaW5EYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGx1Z2luRGF0YT4g
Y3JlYXRlKGNvbnN0IFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5EYXRh
KHBhZ2UpKTsgfQorICAgIHN0YXRpYyBSZWY8UGx1Z2luRGF0YT4gY3JlYXRlKGNvbnN0IFBhZ2Uq
IHBhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luRGF0YShwYWdlKSk7IH0KIAogICAg
IGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fcGx1
Z2luczsgfQogICAgIGNvbnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMoKSBjb25zdCB7
IHJldHVybiBtX21pbWVzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9w
ZXJhdGlvbi5oCmluZGV4IGI5MDkwNWYuLjBhYTBhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCkBAIC02Niw5ICs2Niw5IEBAIHByb3RlY3RlZDoK
IAogY2xhc3MgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24gZmluYWwgOiBwdWJsaWMgQ2xpcFBh
dGhPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlZmVyZW5jZUNs
aXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
ZnJhZ21lbnQpCisgICAgc3RhdGljIFJlZjxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbih1cmws
IGZyYWdtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlZmVyZW5jZUNsaXBQ
YXRoT3BlcmF0aW9uKHVybCwgZnJhZ21lbnQpKTsKICAgICB9CiAKICAgICBjb25zdCBTdHJpbmcm
IHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CkBAIC05Niw5ICs5Niw5IEBAIHByaXZhdGU6
CiAKIGNsYXNzIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24gZmluYWwgOiBwdWJsaWMgQ2xpcFBhdGhP
cGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXBlQ2xpcFBhdGhP
cGVyYXRpb24+IGNyZWF0ZShSZWY8QmFzaWNTaGFwZT4mJiBzaGFwZSkKKyAgICBzdGF0aWMgUmVm
PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShSZWY8QmFzaWNTaGFwZT4mJiBzaGFwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhcGVDbGlwUGF0aE9wZXJhdGlv
bihXVEY6Om1vdmUoc2hhcGUpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXBl
Q2xpcFBhdGhPcGVyYXRpb24oV1RGOjptb3ZlKHNoYXBlKSkpOwogICAgIH0KIAogICAgIGNvbnN0
IEJhc2ljU2hhcGUmIGJhc2ljU2hhcGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXBlOyB9CkBAIC0x
MzUsOSArMTM1LDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgQm94Q2xpcFBhdGhPcGVyYXRpb24gZmlu
YWwgOiBwdWJsaWMgQ2xpcFBhdGhPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEJveENsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoQ1NTQm94VHlwZSByZWZlcmVuY2VC
b3gpCisgICAgc3RhdGljIFJlZjxCb3hDbGlwUGF0aE9wZXJhdGlvbj4gY3JlYXRlKENTU0JveFR5
cGUgcmVmZXJlbmNlQm94KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCb3hD
bGlwUGF0aE9wZXJhdGlvbihyZWZlcmVuY2VCb3gpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQm94Q2xpcFBhdGhPcGVyYXRpb24ocmVmZXJlbmNlQm94KSk7CiAgICAgfQogCiAgICAg
Y29uc3QgUGF0aCBwYXRoRm9yUmVmZXJlbmNlUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgYm91bmRp
bmdSZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50
ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAKaW5k
ZXggNTkyZWVmMy4uMDFlYzlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NvdW50ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5v
ZGUuY3BwCkBAIC05MCw5ICs5MCw5IEBAIENvdW50ZXJOb2RlOjp+Q291bnRlck5vZGUoKQogICAg
IHJlc2V0UmVuZGVyZXJzKCk7CiB9CiAKLVBhc3NSZWZQdHI8Q291bnRlck5vZGU+IENvdW50ZXJO
b2RlOjpjcmVhdGUoUmVuZGVyRWxlbWVudCYgb3duZXIsIGJvb2wgaGFzUmVzZXRUeXBlLCBpbnQg
dmFsdWUpCitSZWY8Q291bnRlck5vZGU+IENvdW50ZXJOb2RlOjpjcmVhdGUoUmVuZGVyRWxlbWVu
dCYgb3duZXIsIGJvb2wgaGFzUmVzZXRUeXBlLCBpbnQgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDb3VudGVyTm9kZShvd25lciwgaGFzUmVzZXRUeXBlLCB2YWx1ZSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvdW50ZXJOb2RlKG93bmVyLCBoYXNSZXNldFR5cGUsIHZh
bHVlKSk7CiB9CiAKIENvdW50ZXJOb2RlKiBDb3VudGVyTm9kZTo6bmV4dEluUHJlT3JkZXJBZnRl
ckNoaWxkcmVuKGNvbnN0IENvdW50ZXJOb2RlKiBzdGF5V2l0aGluKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuaAppbmRleCA1Zjk1NTRiLi45OTdjMjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBS
ZW5kZXJFbGVtZW50OwogCiBjbGFzcyBDb3VudGVyTm9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPENv
dW50ZXJOb2RlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q291bnRlck5vZGU+
IGNyZWF0ZShSZW5kZXJFbGVtZW50JiwgYm9vbCBpc1Jlc2V0LCBpbnQgdmFsdWUpOworICAgIHN0
YXRpYyBSZWY8Q291bnRlck5vZGU+IGNyZWF0ZShSZW5kZXJFbGVtZW50JiwgYm9vbCBpc1Jlc2V0
LCBpbnQgdmFsdWUpOwogICAgIH5Db3VudGVyTm9kZSgpOwogICAgIGJvb2wgYWN0c0FzUmVzZXQo
KSBjb25zdCB7IHJldHVybiBtX2hhc1Jlc2V0VHlwZSB8fCAhbV9wYXJlbnQ7IH0KICAgICBib29s
IGhhc1Jlc2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzZXRUeXBlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCmluZGV4IDgwN2E3NGUuLjg2
MmFmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1No
YXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5o
CkBAIC0xNDcsNyArMTQ3LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgQmFzaWNTaGFwZUNpcmNsZSBm
aW5hbCA6IHB1YmxpYyBCYXNpY1NoYXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQmFzaWNT
aGFwZUNpcmNsZSk7IH0KKyAgICBzdGF0aWMgUmVmPEJhc2ljU2hhcGVDaXJjbGU+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmFzaWNTaGFwZUNpcmNsZSk7IH0KIAogICAgIGNvbnN0
IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJYKCkgY29uc3QgeyByZXR1cm4gbV9j
ZW50ZXJYOyB9CiAgICAgY29uc3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUmIGNlbnRlclko
KSBjb25zdCB7IHJldHVybiBtX2NlbnRlclk7IH0KQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRl
OgogCiBjbGFzcyBCYXNpY1NoYXBlRWxsaXBzZSBmaW5hbCA6IHB1YmxpYyBCYXNpY1NoYXBlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCYXNpY1NoYXBlRWxsaXBzZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2ljU2hhcGVFbGxpcHNlKTsgfQorICAgIHN0YXRp
YyBSZWY8QmFzaWNTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QmFzaWNTaGFwZUVsbGlwc2UpOyB9CiAKICAgICBjb25zdCBCYXNpY1NoYXBlQ2VudGVyQ29vcmRp
bmF0ZSYgY2VudGVyWCgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWDsgfQogICAgIGNvbnN0IEJh
c2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJZKCkgY29uc3QgeyByZXR1cm4gbV9jZW50
ZXJZOyB9CkBAIC0yMDAsNyArMjAwLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgQmFzaWNTaGFwZVBv
bHlnb24gZmluYWwgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8QmFzaWNTaGFwZVBvbHlnb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBCYXNpY1NoYXBlUG9seWdvbik7IH0KKyAgICBzdGF0aWMgUmVmPEJhc2ljU2hhcGVQb2x5Z29u
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEJhc2ljU2hhcGVQb2x5Z29uKTsgfQog
CiAgICAgY29uc3QgVmVjdG9yPExlbmd0aD4mIHZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWVzOyB9CiAgICAgY29uc3QgTGVuZ3RoJiBnZXRYQXQodW5zaWduZWQgaSkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZXNbMiAqIGldOyB9CkBAIC0yMjYsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogY2xh
c3MgQmFzaWNTaGFwZUluc2V0IGZpbmFsIDogcHVibGljIEJhc2ljU2hhcGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljU2hhcGVJbnNldD4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IEJhc2ljU2hhcGVJbnNldCk7IH0KKyAgICBzdGF0aWMgUmVmPEJhc2ljU2hh
cGVJbnNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBCYXNpY1NoYXBlSW5zZXQp
OyB9CiAKICAgICBjb25zdCBMZW5ndGgmIHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9CiAg
ICAgY29uc3QgTGVuZ3RoJiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oCmluZGV4IGExZDFmZTcuLjRi
M2UzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaApA
QCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxDdXJzb3JMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8Q3Vyc29yTGlzdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEN1cnNvckxpc3Q+
IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1cnNvckxpc3Qp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXJzb3JMaXN0KTsKICAgICB9CiAKICAg
ICBjb25zdCBDdXJzb3JEYXRhJiBvcGVyYXRvcltdKGludCBpKSBjb25zdCB7IHJldHVybiBtX3Zl
Y3RvcltpXTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lu
cHV0Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNv
ci5jcHAKaW5kZXggNzNiNDAyZi4uODg1ZGY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCkBAIC00OSw5ICs0OSw5IEBAIENhcHR1cmluZ0lu
cHV0Q3Vyc29yOjp+Q2FwdHVyaW5nSW5wdXRDdXJzb3IoKQogICAgIExPRyhXZWJSZXBsYXksICIl
LTMwc0Rlc3Ryb3llZCBjYXB0dXJlIGN1cnNvcj0lcC5cbiIsICJbUmVwbGF5Q29udHJvbGxlcl0i
LCB0aGlzKTsKIH0KIAotUGFzc1JlZlB0cjxDYXB0dXJpbmdJbnB1dEN1cnNvcj4gQ2FwdHVyaW5n
SW5wdXRDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiBzZWdt
ZW50KQorUmVmPENhcHR1cmluZ0lucHV0Q3Vyc29yPiBDYXB0dXJpbmdJbnB1dEN1cnNvcjo6Y3Jl
YXRlKFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+IHNlZ21lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDYXB0dXJpbmdJbnB1dEN1cnNvcihzZWdtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ2FwdHVyaW5nSW5wdXRDdXJzb3Ioc2VnbWVudCkpOwogfQogCiB2
b2lkIENhcHR1cmluZ0lucHV0Q3Vyc29yOjpzdG9yZUlucHV0KHN0ZDo6dW5pcXVlX3B0cjxOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlPiBpbnB1dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0Nh
cHR1cmluZ0lucHV0Q3Vyc29yLmgKaW5kZXggZWMyNWM4NC4uMDgwMTdhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmgKQEAgLTQyLDcgKzQyLDcgQEAg
Y2xhc3MgUmVwbGF5U2Vzc2lvblNlZ21lbnQ7CiBjbGFzcyBDYXB0dXJpbmdJbnB1dEN1cnNvciBm
aW5hbCA6IHB1YmxpYyBJbnB1dEN1cnNvciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2Fw
dHVyaW5nSW5wdXRDdXJzb3IpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhcHR1
cmluZ0lucHV0Q3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4p
OworICAgIHN0YXRpYyBSZWY8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IGNyZWF0ZShQYXNzUmVmUHRy
PFJlcGxheVNlc3Npb25TZWdtZW50Pik7CiAgICAgdmlydHVhbCB+Q2FwdHVyaW5nSW5wdXRDdXJz
b3IoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwCmluZGV4IDgxYmFlNjQu
LjBmZTMxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcApAQCAtMzgsOSArMzgsOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8U3RvcmFnZT4gU3RvcmFnZTo6
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEp
CitSZWY8U3RvcmFnZT4gU3RvcmFnZTo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9y
YWdlKGZyYW1lLCBzdG9yYWdlQXJlYSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3Jh
Z2UoZnJhbWUsIHN0b3JhZ2VBcmVhKSk7CiB9CiAKIFN0b3JhZ2U6OlN0b3JhZ2UoRnJhbWUqIGZy
YW1lLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlLmgKaW5kZXggMWU5ZmRhYi4uY2ViOWQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
LmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3Mg
U3RvcmFnZSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPFN0b3Jh
Z2U+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0b3JhZ2U+IGNyZWF0ZShGcmFtZSosIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+KTsK
KyAgICBzdGF0aWMgUmVmPFN0b3JhZ2U+IGNyZWF0ZShGcmFtZSosIFBhc3NSZWZQdHI8U3RvcmFn
ZUFyZWE+KTsKICAgICB+U3RvcmFnZSgpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoKEV4Y2VwdGlv
bkNvZGUmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNw
cAppbmRleCAxNjM0Y2FmLi41ODdiYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYUltcGwuY3BwCkBAIC02MiwxOCArNjIsMTggQEAgaW5saW5lIFN0b3JhZ2VBcmVhSW1w
bDo6U3RvcmFnZUFyZWFJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFNl
Y3UKICAgICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpOwogfQogCi1QYXNzUmVmUHRyPFN0b3Jh
Z2VBcmVhSW1wbD4gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUoU3RvcmFnZVR5cGUgc3RvcmFnZVR5
cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgUGFzc1JlZlB0cjxTdG9yYWdl
U3luY01hbmFnZXI+IHN5bmNNYW5hZ2VyLCB1bnNpZ25lZCBxdW90YSkKK1JlZjxTdG9yYWdlQXJl
YUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNN
YW5hZ2VyPiBzeW5jTWFuYWdlciwgdW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgUmVmUHRyPFN0b3Jh
Z2VBcmVhSW1wbD4gYXJlYSA9IGFkb3B0UmVmKG5ldyBTdG9yYWdlQXJlYUltcGwoc3RvcmFnZVR5
cGUsIG9yaWdpbiwgc3luY01hbmFnZXIsIHF1b3RhKSk7CisgICAgUmVmPFN0b3JhZ2VBcmVhSW1w
bD4gYXJlYSA9IGFkb3B0UmVmKCpuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VUeXBlLCBvcmln
aW4sIHN5bmNNYW5hZ2VyLCBxdW90YSkpOwogCiAgICAgLy8gRklYTUU6IElmIHRoZXJlJ3Mgbm8g
YmFja2luZyBzdG9yYWdlIGZvciBMb2NhbFN0b3JhZ2UsIHRoZSBkZWZhdWx0IFdlYktpdCBiZWhh
dmlvciBzaG91bGQgYmUgdGhhdCBvZiBwcml2YXRlIGJyb3dzaW5nLAogICAgIC8vIG5vdCBzaWxl
bnRseSBpZ25vcmluZyBpdC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI1ODk0CiAgICAgaWYgKGFyZWEtPm1fc3RvcmFnZVN5bmNNYW5hZ2VyKSB7Ci0gICAgICAgIGFy
ZWEtPm1fc3RvcmFnZUFyZWFTeW5jID0gU3RvcmFnZUFyZWFTeW5jOjpjcmVhdGUoYXJlYS0+bV9z
dG9yYWdlU3luY01hbmFnZXIsIGFyZWEuZ2V0KCksIGFyZWEtPm1fc2VjdXJpdHlPcmlnaW4tPmRh
dGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICAgICAgYXJlYS0+bV9zdG9yYWdlQXJlYVN5bmMgPSBT
dG9yYWdlQXJlYVN5bmM6OmNyZWF0ZShhcmVhLT5tX3N0b3JhZ2VTeW5jTWFuYWdlciwgYXJlYS5w
dHIoKSwgYXJlYS0+bV9zZWN1cml0eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAg
ICAgICBBU1NFUlQoYXJlYS0+bV9zdG9yYWdlQXJlYVN5bmMpOwogICAgIH0KIAotICAgIHJldHVy
biBhcmVhLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYXJlYTsKIH0KIAogUGFzc1JlZlB0cjxTdG9y
YWdlQXJlYUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y29weSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuaAppbmRleCA5MjNhNmY1Li44OTc2MWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU3Rv
cmFnZUFyZWFTeW5jOwogCiBjbGFzcyBTdG9yYWdlQXJlYUltcGwgOiBwdWJsaWMgU3RvcmFnZUFy
ZWEgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gY3Jl
YXRlKFN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgUGFzc1JlZlB0cjxT
dG9yYWdlU3luY01hbmFnZXI+LCB1bnNpZ25lZCBxdW90YSk7CisgICAgc3RhdGljIFJlZjxTdG9y
YWdlQXJlYUltcGw+IGNyZWF0ZShTdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4sIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiwgdW5zaWduZWQgcXVvdGEpOwogICAg
IHZpcnR1YWwgflN0b3JhZ2VBcmVhSW1wbCgpOwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5n
dGgoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cAppbmRleCA2MGM0MmNmLi40NjAyZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYVN5bmMuY3BwCkBAIC03MiwxMSArNzIsOSBAQCBpbmxpbmUgU3RvcmFnZUFyZWFTeW5j
OjpTdG9yYWdlQXJlYVN5bmMoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IHN0b3JhZ2VT
eQogICAgIH0pOwogfQogCi1QYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gU3RvcmFnZUFyZWFT
eW5jOjpjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IHN0b3JhZ2VTeW5jTWFu
YWdlciwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IHN0b3JhZ2VBcmVhLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlSWRlbnRpZmllcikKK1JlZjxTdG9yYWdlQXJlYVN5bmM+IFN0b3JhZ2VBcmVh
U3luYzo6Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01h
bmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBzdG9yYWdlQXJlYSwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpCiB7Ci0gICAgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4g
YXJlYSA9IGFkb3B0UmVmKG5ldyBTdG9yYWdlQXJlYVN5bmMoc3RvcmFnZVN5bmNNYW5hZ2VyLCBz
dG9yYWdlQXJlYSwgZGF0YWJhc2VJZGVudGlmaWVyKSk7Ci0KLSAgICByZXR1cm4gYXJlYS5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUFyZWFTeW5jKHN0b3JhZ2VT
eW5jTWFuYWdlciwgc3RvcmFnZUFyZWEsIGRhdGFiYXNlSWRlbnRpZmllcikpOwogfQogCiBTdG9y
YWdlQXJlYVN5bmM6On5TdG9yYWdlQXJlYVN5bmMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUFyZWFTeW5jLmgKaW5kZXggYjVhYTUwNS4uYmFlYWFjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFN0b3JhZ2VT
eW5jTWFuYWdlcjsKIAogY2xhc3MgU3RvcmFnZUFyZWFTeW5jIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFN0b3JhZ2VBcmVhU3luYz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0b3JhZ2VBcmVhU3luYz4gY3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2Vy
PiwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRl
bnRpZmllcik7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlQXJlYVN5bmM+IGNyZWF0ZShQYXNzUmVm
UHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4sIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpOwogICAgIH5TdG9yYWdlQXJlYVN5bmMoKTsK
IAogICAgIHZvaWQgc2NoZWR1bGVGaW5hbFN5bmMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VNYXAuY3BwCmluZGV4IGZiN2U0MzUuLjY3YjBhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTWFwLmNwcApAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6Y3JlYXRlKHVuc2lnbmVkIHF1b3Rh
KQorUmVmPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OmNyZWF0ZSh1bnNpZ25lZCBxdW90YSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3JhZ2VNYXAocXVvdGEpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdG9yYWdlTWFwKHF1b3RhKSk7CiB9CiAKIFN0b3JhZ2VNYXA6OlN0b3Jh
Z2VNYXAodW5zaWduZWQgcXVvdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5oCmluZGV4
IDhjM2Q1Y2YuLjVkZTE5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5oCkBAIC0z
Nyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFN0b3JhZ2VNYXAgOiBwdWJs
aWMgUmVmQ291bnRlZDxTdG9yYWdlTWFwPiB7CiBwdWJsaWM6CiAgICAgLy8gUXVvdGEgc2l6ZSBt
ZWFzdXJlZCBpbiBieXRlcy4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxT
dG9yYWdlTWFwPiBjcmVhdGUodW5zaWduZWQgcXVvdGFTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFN0b3JhZ2VNYXA+IGNyZWF0ZSh1bnNpZ25lZCBxdW90YVNpemUpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGtleSh1bnNpZ25lZCBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKaW5kZXggYmFlNzJhMC4uNjM3YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcApAQCAtMzMsOSAr
MzMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8U3RvcmFnZVN5bmNN
YW5hZ2VyPiBTdG9yYWdlU3luY01hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCitS
ZWY8U3RvcmFnZVN5bmNNYW5hZ2VyPiBTdG9yYWdlU3luY01hbmFnZXI6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlU3luY01hbmFn
ZXIocGF0aCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VTeW5jTWFuYWdlcihw
YXRoKSk7CiB9CiAKIFN0b3JhZ2VTeW5jTWFuYWdlcjo6U3RvcmFnZVN5bmNNYW5hZ2VyKGNvbnN0
IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVN5bmNNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdl
ci5oCmluZGV4IDQ4NjUxY2EuLjAyODc3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlU3luY01hbmFnZXIuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBTdG9yYWdlQXJlYVN5
bmM7CiAKIGNsYXNzIFN0b3JhZ2VTeW5jTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3Jh
Z2VTeW5jTWFuYWdlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VT
eW5jTWFuYWdlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgc3RhdGljIFJlZjxT
dG9yYWdlU3luY01hbmFnZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpOwogICAgIH5TdG9y
YWdlU3luY01hbmFnZXIoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2goY29uc3Qgc3RkOjpmdW5jdGlv
bjx2b2lkICgpPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBmZmU0MTY1Li4yMzA3ODA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNw
cApAQCAtMzksMTEgKzM5LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0
cjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6
OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5p
cXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0
aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNl
dHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW4pCiB7Ci0gICAgUmVmUHRyPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0g
YWRvcHRSZWYobmV3IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBX
VEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdpbikpOworICAgIFJlZjxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksIHRocmVh
ZCwgdG9wT3JpZ2luKSk7CiAgICAgY29udGV4dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lG
cm9tU3RyaW5nKGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlw
ZSk7Ci0gICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBjb250ZXh0Owog
fQogCiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9w
dHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFk
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYmZlN2I0
ZS4uMGQ3N2JlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyR2xv
YmFsU2NvcGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3JrZXJHbG9iYWxTY29w
ZSBCYXNlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVu
aXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4gdG9wT3JpZ2luKTsKKyAgICAgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVu
aXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4gdG9wT3JpZ2luKTsKICAgICAgICAgdmlydHVhbCB+RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAppbmRleCA2OTk3YTFkLi44YWU1N2Fh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQu
Y3BwCkBAIC0zOCw5ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0
cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNv
bnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBT
ZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0
UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikK
K1JlZjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3Jv
dXBTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2Jq
ZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYg
Y29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUg
Y29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdp
bikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlZGljYXRlZFdvcmtlclRocmVhZChzY3Jp
cHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5
LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERlZGljYXRlZFdvcmtlclRocmVhZChzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGlu
Z3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3Rh
cnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUs
IHRvcE9yaWdpbikpOwogfQogCiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtl
clRocmVhZChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdy
b3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxv
YWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9i
amVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmln
aW4pCkBAIC01Myw3ICs1Myw3IEBAIERlZGljYXRlZFdvcmtlclRocmVhZDo6fkRlZGljYXRlZFdv
cmtlclRocmVhZCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IERlZGlj
YXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4g
c2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGlu
Z3M+IHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKICAgICByZXR1cm4gRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNl
dHRpbmdzKSwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9s
aWN5VHlwZSwgdG9wT3JpZ2luKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlclRocmVhZC5oCmluZGV4IDRmODc1MDEuLjcyMjM5NmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtMzksMTIgKzM5LDEy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlclRocmVh
ZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5
JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1cml0eU9y
aWdpbiogdG9wT3JpZ2luKTsKKyAgICAgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ+IGNyZWF0ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxv
YWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNv
bnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OkhlYWRlclR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogICAgICAgICBX
b3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dv
cmtlck9iamVjdFByb3h5OyB9CiAgICAgICAgIHZpcnR1YWwgfkRlZGljYXRlZFdvcmtlclRocmVh
ZCgpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2Vy
R2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7Cisg
ICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRy
PEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiB0b3BPcmlnaW4pIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29w
KCkgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA1ZDMyNmVk
Li5hZjBlNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNTgsNyArNTgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNoYXJlZFdvcmtlclByb3h5IGZpbmFsIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFNoYXJlZFdvcmtlclByb3h5PiwgcHVibGljIFdvcmtlckxvYWRlclBy
b3h5LCBwdWJsaWMgV29ya2VyUmVwb3J0aW5nUHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYXJlZFdvcmtlclByb3h5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBVUkwmIHVybCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyUHJveHkobmFtZSwgdXJsLCBvcmlnaW4pKTsgfQor
ICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyUHJveHk+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFVSTCYgdXJsLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4pIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29ya2VyUHJveHkobmFtZSwgdXJsLCBvcmlnaW4p
KTsgfQogCiAgICAgdm9pZCBzZXRUaHJlYWQoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+
IHRocmVhZCkgeyBtX3RocmVhZCA9IHRocmVhZDsgfQogICAgIFNoYXJlZFdvcmtlclRocmVhZCog
dGhyZWFkKCkgeyByZXR1cm4gbV90aHJlYWQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggY2Q4YTc4ZC4uMGJi
NDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9i
YWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9i
YWxTY29wZS5jcHAKQEAgLTUyLDExICs1MiwxMSBAQCBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4g
Y3JlYXRlQ29ubmVjdEV2ZW50KFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IHBycFBvcnQpCiB9CiAK
IC8vIHN0YXRpYwotUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+
IHNldHRpbmdzLCBTaGFyZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQorUmVmPFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPiBTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0
aW5ncz4gc2V0dGluZ3MsIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiB7Ci0gICAgUmVmUHRyPFNoYXJlZFdvcmtlckds
b2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
KG5hbWUsIHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQpKTsKKyAg
ICBSZWY8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFNo
YXJlZFdvcmtlckdsb2JhbFNjb3BlKG5hbWUsIHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0
dGluZ3MpLCB0aHJlYWQpKTsKICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGlj
eUZyb21TdHJpbmcoY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlKTsKLSAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGNvbnRleHQ7
CiB9CiAKIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFyZWRXb3JrZXJU
aHJlYWQmIHRocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGUuaAppbmRleCBiNTQ0YzQzLi45OGQ0NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC00NCw3ICs0NCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSA6
IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVm
IFdvcmtlckdsb2JhbFNjb3BlIEJhc2U7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+
LCBTaGFyZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVR5cGUpOworICAgICAgICBzdGF0aWMgUmVmPFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBTaGFyZWRXb3JrZXJUaHJlYWQmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwogICAgICAgICB2aXJ0dWFs
IH5TaGFyZWRXb3JrZXJHbG9iYWxTY29wZSgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY1
NTcxYjIuLjFhNjllYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
clRocmVhZC5jcHAKQEAgLTM4LDkgKzM4LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVw
b3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUg
c3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCitSZWY8
U2hhcmVkV29ya2VyVGhyZWFkPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94
eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUs
IGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlclRocmVhZChuYW1lLCBzY3JpcHRVUkwsIHVzZXJBZ2Vu
dCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJSZXBvcnRp
bmdQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0
eVBvbGljeVR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRXb3JrZXJUaHJl
YWQobmFtZSwgc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3Jr
ZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKSk7CiB9CiAKIFNoYXJlZFdv
cmtlclRocmVhZDo6U2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiBz
ZXR0aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29y
a2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94
eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50
U2VjdXJpdHlQb2xpY3lUeXBlKQpAQCAtNTMsNyArNTMsNyBAQCBTaGFyZWRXb3JrZXJUaHJlYWQ6
On5TaGFyZWRXb3JrZXJUaHJlYWQoKQogewogfQogCi1QYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNj
b3BlPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0
dGluZ3M+IHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUs
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KQorUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBTaGFy
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNl
dHRpbmdzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+KQogewogICAgIHJldHVybiBTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZTo6Y3JlYXRlKG1fbmFtZSwgdXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksICp0
aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKaW5kZXggMWQy
MTRhOC4uNWU3OWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRX
b3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRo
cmVhZC5oCkBAIC0zOSwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgU2hhcmVkV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtlclRocmVhZCB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpIZWFkZXJUeXBlKTsKKyAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRXb3JrZXJUaHJlYWQ+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3Jr
ZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpIZWFkZXJUeXBlKTsKICAgICAgICAgdmlydHVhbCB+U2hhcmVkV29ya2VyVGhyZWFk
KCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVy
VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKKyAg
ICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8
R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHRvcE9yaWdpbikgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBTaGFyZWRXb3Jr
ZXJUaHJlYWQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCmluZGV4IDBiZDE5ZmMuLjhlNzRjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9p
ZCBXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dXJscywgRXhjZXB0aW9uQ29kZSYKICAgICBWZWN0b3I8VVJMPjo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gY29tcGxldGVkVVJMcy5lbmQoKTsKIAogICAgIGZvciAoVmVjdG9yPFVSTD46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gY29tcGxldGVkVVJMcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAg
ICAgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gc2NyaXB0TG9hZGVyKFdvcmtlclNjcmlw
dExvYWRlcjo6Y3JlYXRlKCkpOworICAgICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBzY3Jp
cHRMb2FkZXIgPSBXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpOwogICAgICAgICBzY3JpcHRM
b2FkZXItPmxvYWRTeW5jaHJvbm91c2x5KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKml0LCBB
bGxvd0Nyb3NzT3JpZ2luUmVxdWVzdHMpOwogCiAgICAgICAgIC8vIElmIHRoZSBmZXRjaGluZyBh
dHRlbXB0IGZhaWxlZCwgdGhyb3cgYSBORVRXT1JLX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IGFs
bCB0aGVzZSBzdGVwcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaAppbmRl
eCBlMGM4M2FiLi41ZGJlZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckxvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2NhdGlv
bi5oCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFdv
cmtlckxvY2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyTG9jYXRpb24+IHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtlckxvY2F0aW9uPiBjcmVhdGUo
Y29uc3QgVVJMJiB1cmwpCisgICAgICAgIHN0YXRpYyBSZWY8V29ya2VyTG9jYXRpb24+IGNyZWF0
ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXb3JrZXJMb2NhdGlvbih1cmwpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdvcmtlckxvY2F0aW9uKHVybCkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgVVJM
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggOWFhZjY2NC4uOWU2OTE3Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApAQCAtNDksOSArNDksOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGFibGVMb2FkZXJD
bGllbnQgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gY3JlYXRlKCkKKyAg
ICAgICAgc3RhdGljIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IGNyZWF0ZSgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV29ya2VyU2NyaXB0TG9hZGVyKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyU2NyaXB0TG9hZGVyKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZvaWQgbG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFVSTCYsIENyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCA3ODkyYTBlLi40MTg5ZWU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCAgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3Jp
Z2luKTsKIAogICAgICAgICAvLyBGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgd29y
a2VyIGNvbnRleHQgZm9yIHRoZSB0aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
b3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgY29u
c3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRy
PEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiB0b3BPcmlnaW4pID0gMDsKIAogICAgICAgICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBm
b3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVy
Zm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBlbnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KICAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL0RPTVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5oCmluZGV4
IGRkNzFiNGYuLmVhMmViYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmgKQEAgLTMwLDcgKzMwLDcg
QEAgY2xhc3MgRG9jdW1lbnQ7CiAKIGNsYXNzIERPTVBhcnNlciA6IHB1YmxpYyBSZWZDb3VudGVk
PERPTVBhcnNlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBhcnNlcj4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBhcnNlcik7IH0KKyAgICBzdGF0aWMg
UmVmPERPTVBhcnNlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01QYXJzZXIp
OyB9CiAKICAgICBQYXNzUmVmUHRyPERvY3VtZW50PiBwYXJzZUZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggODY2MWI2MC4uNDM0
YzEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaApAQCAt
MzUsNyArMzUsNyBAQCBjbGFzcyBOb2RlOwogCiBjbGFzcyBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIg
OiBwdWJsaWMgWFBhdGhOU1Jlc29sdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxOYXRpdmVYUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIobm9kZSkpOyB9CisgICAg
c3RhdGljIFJlZjxOYXRpdmVYUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+
IG5vZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlWFBhdGhOU1Jlc29sdmVyKG5vZGUp
KTsgfQogICAgIHZpcnR1YWwgfk5hdGl2ZVhQYXRoTlNSZXNvbHZlcigpOwogCiAgICAgdmlydHVh
bCBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDY1ZjNjNzIuLmI1NDBhMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTEyLDEyICsxMTIsMTEgQEAgc3Rh
dGljIHZvaWQgbG9nQ29uc29sZUVycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbWVzc2EKICAgICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7CiB9CiAKLVBhc3NS
ZWZQdHI8WE1MSHR0cFJlcXVlc3Q+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKK1JlZjxYTUxIdHRwUmVxdWVzdD4gWE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIFJlZlB0cjxY
TUxIdHRwUmVxdWVzdD4geG1sSHR0cFJlcXVlc3QoYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0
KGNvbnRleHQpKSk7CisgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiB4bWxIdHRwUmVxdWVzdCA9IGFk
b3B0UmVmKCpuZXcgWE1MSHR0cFJlcXVlc3QoY29udGV4dCkpOwogICAgIHhtbEh0dHBSZXF1ZXN0
LT5zdXNwZW5kSWZOZWVkZWQoKTsKLQotICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdC5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIHhtbEh0dHBSZXF1ZXN0OwogfQogCiBYTUxIdHRwUmVxdWVzdDo6WE1M
SHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZjk5Zjg1OC4uNjQ0YmVmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgVGhyZWFkYWJsZUxvYWRl
cjsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0IGZpbmFsIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwg
cHVibGljIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRo
SW5saW5lRGF0YSwgcHJpdmF0ZSBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxYTUxIdHRwUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKKyAgICBzdGF0aWMgUmVmPFhNTEh0dHBSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOwogICAgIH5YTUxIdHRwUmVxdWVzdCgpOwogCiAgICAgLy8gVGhlc2Ug
ZXhhY3QgbnVtZXJpYyB2YWx1ZXMgYXJlIGltcG9ydGFudCBiZWNhdXNlIEpTIGV4cGVjdHMgdGhl
bS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuY3BwCmluZGV4IDBmNjI0YTAuLmJjMWY5MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlLmNwcApAQCAtMTI4LDEzICsxMjgsMTMgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZTo6Zmx1c2hQcm9ncmVzc0V2ZW50KCkKIAogICAgIGlmICghaGFzRXZl
bnRUb0Rpc3BhdGNoKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5w
cm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3RvdGFsKTsKKyAg
ICBSZWY8RXZlbnQ+IGV2ZW50ID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQsIG1fbGVuZ3RoQ29tcHV0YWJsZSwgbV9sb2FkZWQs
IG1fdG90YWwpOwogICAgIG1faGFzVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCA9IGZhbHNlOwogCiAg
ICAgLy8gV2Ugc3RvcCB0aGUgdGltZXIgYXMgdGhpcyBpcyBjYWxsZWQgd2hlbiBubyBtb3JlIGV2
ZW50cyBhcmUgc3VwcG9zZWQgdG8gb2NjdXIuCiAgICAgc3RvcCgpOwogCi0gICAgZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgZGlzcGF0Y2hFdmVudChXVEY6Om1vdmUoZXZlbnQpKTsKIH0KIAog
dm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJl
ZEV2ZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5o
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaAppbmRleCA3YjJkYjA4Li5lZjVj
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgWE1MU2VyaWFsaXplciA6IHB1YmxpYyBSZWZD
b3VudGVkPFhNTFNlcmlhbGl6ZXI+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFhNTFNlcmlhbGl6ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxT
ZXJpYWxpemVyKTsgfQorICAgICAgICBzdGF0aWMgUmVmPFhNTFNlcmlhbGl6ZXI+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWE1MU2VyaWFsaXplcik7IH0KICAgICAgICAgCiAgICAg
ICAgIFN0cmluZyBzZXJpYWxpemVUb1N0cmluZyhOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgKaW5kZXggM2RlM2VjNi4uNjQ0ODIy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgWFBhdGhFdmFsdWF0b3IgOiBwdWJsaWMgUmVm
Q291bnRlZDxYUGF0aEV2YWx1YXRvcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8WFBhdGhFdmFsdWF0b3I+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBY
UGF0aEV2YWx1YXRvcik7IH0KKyAgICAgICAgc3RhdGljIFJlZjxYUGF0aEV2YWx1YXRvcj4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUGF0aEV2YWx1YXRvcik7IH0KICAgICAgICAg
CiAgICAgICAgIFBhc3NSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBjcmVhdGVFeHByZXNzaW9uKGNv
bnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgWFBhdGhOU1Jlc29sdmVyKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgICAgICBQYXNzUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlTlNSZXNvbHZlcihO
b2RlKiBub2RlUmVzb2x2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAppbmRleCBhZmZjMDc2
Li5hMjE0MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaApAQCAtNTMsNyArNTMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBGSVJTVF9PUkRFUkVEX05PREVfVFlQRSA9
IDkKICAgICAgICAgfTsKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhQYXRo
UmVzdWx0PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBYUGF0aDo6VmFsdWUmIHZh
bHVlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWFBhdGhSZXN1bHQoZG9jdW1lbnQsIHZhbHVlKSk7
IH0KKyAgICAgICAgc3RhdGljIFJlZjxYUGF0aFJlc3VsdD4gY3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgWFBhdGg6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBY
UGF0aFJlc3VsdChkb2N1bWVudCwgdmFsdWUpKTsgfQogICAgICAgICB+WFBhdGhSZXN1bHQoKTsK
ICAgICAgICAgCiAgICAgICAgIHZvaWQgY29udmVydFRvKHVuc2lnbmVkIHNob3J0IHR5cGUsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNo
ZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmluZGV4IDU3ZmNmNWIu
LjNhM2I5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgPGxpYnhtbC9wYXJzZXIuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3RyYW5zZm9y
bS5oPgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MSwyNCArNDEsMjQgQEAgY2xhc3MgWFNMSW1wb3J0UnVsZTsKICAgICAKIGNsYXNzIFhTTFN0eWxl
U2hlZXQgZmluYWwgOiBwdWJsaWMgU3R5bGVTaGVldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8WFNMU3R5bGVTaGVldD4gY3JlYXRlKFhTTEltcG9ydFJ1bGUqIHBhcmVudEltcG9y
dCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgVVJMJiBmaW5hbFVSTCkKKyAgICBz
dGF0aWMgUmVmPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZShYU0xJbXBvcnRSdWxlKiBwYXJlbnRJbXBv
cnQsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmluYWxVUkwpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0eWxlU2hlZXQocGFyZW50SW1wb3J0
LCBvcmlnaW5hbFVSTCwgZmluYWxVUkwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
WFNMU3R5bGVTaGVldChwYXJlbnRJbXBvcnQsIG9yaWdpbmFsVVJMLCBmaW5hbFVSTCkpOwogICAg
IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxYU0xTdHlsZVNoZWV0PiBjcmVhdGUoUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKiBwYXJlbnROb2RlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25z
dCBVUkwmIGZpbmFsVVJMKQorICAgIHN0YXRpYyBSZWY8WFNMU3R5bGVTaGVldD4gY3JlYXRlKFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiogcGFyZW50Tm9kZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVS
TCwgY29uc3QgVVJMJiBmaW5hbFVSTCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgWFNMU3R5bGVTaGVldChwYXJlbnROb2RlLCBvcmlnaW5hbFVSTCwgZmluYWxVUkwsIGZhbHNl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFN0eWxlU2hlZXQocGFyZW50Tm9k
ZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxYU0xTdHlsZVNoZWV0PiBjcmVhdGVFbWJlZGRlZChQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24qIHBhcmVudE5vZGUsIGNvbnN0IFVSTCYgZmluYWxVUkwpCisgICAgc3RhdGljIFJlZjxYU0xT
dHlsZVNoZWV0PiBjcmVhdGVFbWJlZGRlZChQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHBhcmVudE5v
ZGUsIGNvbnN0IFVSTCYgZmluYWxVUkwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFhTTFN0eWxlU2hlZXQocGFyZW50Tm9kZSwgZmluYWxVUkwuc3RyaW5nKCksIGZpbmFsVVJM
LCB0cnVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFN0eWxlU2hlZXQocGFy
ZW50Tm9kZSwgZmluYWxVUkwuc3RyaW5nKCksIGZpbmFsVVJMLCB0cnVlKSk7CiAgICAgfQogCiAg
ICAgLy8gVGFraW5nIGFuIGFyYml0cmFyeSBub2RlIGlzIHVuc2FmZSwgYmVjYXVzZSBvd25lciBu
b2RlIHBvaW50ZXIgY2FuIGJlY29tZSBzdGFsZS4KICAgICAvLyBYU0xUUHJvY2Vzc29yIGVuc3Vy
ZXMgdGhhdCB0aGUgc3R5bGVzaGVldCBkb2Vzbid0IG91dGxpdmUgaXRzIHBhcmVudCwgaW4gcGFy
dCBieSBub3QgZXhwb3NpbmcgaXQgdG8gSmF2YVNjcmlwdC4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxYU0xTdHlsZVNoZWV0PiBjcmVhdGVGb3JYU0xUUHJvY2Vzc29yKE5vZGUqIHBhcmVudE5vZGUs
IGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmluYWxVUkwpCisgICAgc3Rh
dGljIFJlZjxYU0xTdHlsZVNoZWV0PiBjcmVhdGVGb3JYU0xUUHJvY2Vzc29yKE5vZGUqIHBhcmVu
dE5vZGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmluYWxVUkwpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFN0eWxlU2hlZXQocGFyZW50Tm9k
ZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9yaWdpbmFsVVJMLCBmaW5hbFVSTCwg
ZmFsc2UpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5YU0xTdHlsZVNoZWV0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3IuaAppbmRleCA1MThlMWUyLi4yYmMwODA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xUUHJvY2Vzc29yLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgRG9jdW1lbnRGcmFnbWVu
dDsKIAogY2xhc3MgWFNMVFByb2Nlc3NvciA6IHB1YmxpYyBSZWZDb3VudGVkPFhTTFRQcm9jZXNz
b3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxYU0xUUHJvY2Vzc29yPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWFNMVFByb2Nlc3Nvcik7IH0KKyAgICBzdGF0aWMg
UmVmPFhTTFRQcm9jZXNzb3I+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFNMVFBy
b2Nlc3Nvcik7IH0KICAgICB+WFNMVFByb2Nlc3NvcigpOwogCiAgICAgdm9pZCBzZXRYU0xTdHls
ZVNoZWV0KFBhc3NSZWZQdHI8WFNMU3R5bGVTaGVldD4gc3R5bGVTaGVldCkgeyBtX3N0eWxlc2hl
ZXQgPSBzdHlsZVNoZWV0OyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243737</attachid>
            <date>2014-12-24 21:44:25 -0800</date>
            <delta_ts>2014-12-24 23:50:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139939-3.diff</filename>
            <type>text/plain</type>
            <size>304850</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDRkMWQzLi45YjQzYWVmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MzggQEAKKzIwMTQtMTItMjQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisg
ICAgICAgIENvbnZlcnQgbW9yZSBjcmVhdG9yIGZ1bmN0aW9ucyB0byByZXR1cm4gUmVmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTkzOT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0
IGEgc2xldyBvZiBmdW5jdGlvbnMgdG8gcmV0dXJuIFJlZjxUPiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHI8VD4KKyAgICAgICAgd2hlcmUgdGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIG5ldmVyIGJl
IG51bGwuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVzOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50Ojppc29sYXRlZFdvcmxkKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5hbHlzZXJOb2RlOjpj
cmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0J1ZmZlcjo6Y3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OmNyZWF0
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmg6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnZvbHZlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9EZWxheU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5Tm9kZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNzQ29tcHJlc3Nvck5vZGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbU5vZGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlBUklBR3JpZDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RC
b3g6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJv
eC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6
Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5U1ZHUm9vdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTVkdSb290Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6Y3Jl
YXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNyZWF0ZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlTcGluQnV0dG9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVNwaW5CdXR0b25QYXJ0OjpjcmVhdGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b24uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmNyZWF0
ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDb2x1bW46OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvRE9NV3JhcHBlcldv
cmxkLmg6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpnZXRKU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Q0luc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXlQYWlyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlQYWlyOjpjcmVhdGUpOgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tl
eUhNQUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9LZXlSU0E6OmdlbmVyYXRlUGFpcik6CisgICAgICAgICogY3NzL0RPTVdpbmRvd0NTUy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dDU1M6OmNyZWF0ZSk6CisgICAgICAgICogY3Nz
L0RPTVdpbmRvd0NTUy5oOgorICAgICAgICAqIGNzcy9EYXNoYm9hcmRSZWdpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhc2hib2FyZFJlZ2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvRm9u
dExvYWRlci5oOgorICAgICAgICAqIGRvbS9ET01FcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6
RE9NRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RPTVN0cmluZ0xpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVN0cmluZ0xpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RhdGFU
cmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKToKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmg6CisgICAgICAgICogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uRGF0
YTo6QWNjZWxlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9u
RGF0YTo6Um90YXRpb25SYXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vRGV2aWNlTW90aW9uRGF0YS5oOgorICAg
ICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25EYXRhOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkRhdGEuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZURldGFpbHM6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpE
aWN0YXRpb25NYXJrZXJEZXRhaWxzOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQnJl
YWtCbG9ja3F1b3RlQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6QnJlYWtCbG9ja3F1b3Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUxpbmtD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bk1hcmtlclN1cHBsaWVyOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGlu
Z1N0eWxlOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmFwcGx5UGFyYWdyYXBoU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3JtYXRCbG9ja0NvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGluZUJyZWFr
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFu
ZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5jcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVjcmVhc2VTZWxlY3Rp
b25MaXN0TGV2ZWxDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW1vdmVGb3JtYXRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldE5v
ZGVBdHRyaWJ1dGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU2V0U2VsZWN0
aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0U2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxpZnlNYXJrdXBDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwbGl0RWxlbWVudENv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6U3BsaXRUZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1VubGlua0Nv
bW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVubGlua0NvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmg6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25Db21tYW5kSU9TOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5o
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2I6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNsaWNlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJT
eW5jLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyU3luYzo6Y3JlYXRlKToKKyAgICAg
ICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvRE9N
VVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL0RPTVVSTC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwbHVnSW5JbWFnZUVsZW1lbnRJc29sYXRlZFdvcmxkKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzR3JhZGllbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUGF0
dGVybi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQYXR0ZXJuOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9ET01QYXRoLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKiBo
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tM
aXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9EYXRhQ3VlLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21tYW5kTGlu
ZUFQSUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9z
dC5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3RhdGU6OmNyZWF0ZSk6CisgICAgICAgICogbG9h
ZGVyL0Zvcm1TdGF0ZS5oOgorICAgICAgICAqIGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uaDoKKyAgICAgICAgKiBsb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyOjpjcmVhdGUpOgorICAgICAg
ICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2FyY2hp
dmUvQXJjaGl2ZVJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RW51bUNhbGxiYWNrOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6T2JqZWN0Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvblJlY29yZC5oOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAqIG1hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1h
dGhFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
OgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFRl
eHRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQmFyUHJvcC5oOgorICAgICAgICAoV2ViQ29yZTo6QmFyUHJvcDo6
Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5oOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVNlY3VyaXR5UG9saWN5OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uv
RE9NU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd0V4
dGVuc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9uOjpjcmVhdGUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpj
cmVhdGVCdWZmZXJGcm9tUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0
ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNy
ZWF0ZUJ5TWl4aW5nVG9Nb25vKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZlYXR1cmVTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZTo6bnVsbEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzdGFudExpZ2h0U291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5k
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGRUNvbG9yTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGRUNvbXBvbmVudFRyYW5zZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RkVDb21wb3NpdGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b252b2x2ZU1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbnZvbHZlTWF0cml4Ojpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1h
dHJpeC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGln
aHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaWZmdXNlTGlnaHRpbmc6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUZsb29kOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRU1lcmdl
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVPZmZz
ZXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNl
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxpZ2h0
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFU3BlY3VsYXJMaWdodGluZzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3VsYXJMaWdodGluZy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFVGlsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5jZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6Y3JlYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVu
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJhd0RhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpjcmVhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCaWRpQ29udGV4dDo6Y3JlYXRlVW5jYWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qmlk
aUNvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5o
OgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1pbWVUeXBlOjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTU1pbWVUeXBlQXJyYXk6Om5hbWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lu
cy9ET01NaW1lVHlwZUFycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZUFycmF5
OjpjcmVhdGUpOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBsdWdpbjo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01QbHVnaW46Om5h
bWVkSXRlbSk6CisgICAgICAgICogcGx1Z2lucy9ET01QbHVnaW4uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBsdWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjppdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpuYW1lZEl0ZW0pOgorICAgICAgICAqIHBsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpjcmVh
dGUpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRp
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q291bnRlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NvdW50ZXJO
b2RlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNv
ckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmluZ0lucHV0Q3Vyc29yOjpjcmVhdGUpOgorICAg
ICAgICAqIHJlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oOgorICAgICAgICAqIHN0b3JhZ2Uv
U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlOjpjcmVhdGUpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFn
ZUFyZWFTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRl
KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpjcmVhdGUp
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZVN5bmNNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oOgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgICog
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHA6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
KToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAg
ICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkV29ya2VyVGhyZWFkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
VGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9TaGFy
ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvY2F0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJMb2NhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogeG1sL0RPTVBhcnNl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NUGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAqIHht
bC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZVhQYXRo
TlNSZXNvbHZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpmbHVzaFByb2dyZXNzRXZlbnQpOgorICAgICAgICAqIHhtbC9YTUxT
ZXJpYWxpemVyLmg6CisgICAgICAgIChXZWJDb3JlOjpYTUxTZXJpYWxpemVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhF
dmFsdWF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogeG1sL1hQYXRoUmVzdWx0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYUGF0aFJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVT
aGVldC5oOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpYU0xUUHJvY2Vzc29yOjpjcmVhdGUpOgorCiAyMDE0LTEyLTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgUmVuZGVyU3R5bGU6OmludmFsaWRD
b2xvcigpIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0Nvb3JkaW5hdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmgKaW5kZXggZmIxMzRhNS4uNWNiM2NmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaApAQCAtMzMsOSArMzMsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvb3JkaW5hdGVzIDogcHVibGljIFJlZkNv
dW50ZWQ8Q29vcmRpbmF0ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29y
ZGluYXRlcz4gY3JlYXRlKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91Ymxl
IHNwZWVkKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZXMobGF0aXR1ZGUsIGxvbmdp
dHVkZSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0
dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywg
cHJvdmlkZXNTcGVlZCwgc3BlZWQpKTsgfQorICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNy
ZWF0ZShkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRp
bmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhsYXRpdHVkZSwgbG9uZ2l0dWRlLCBwcm92
aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92aWRlc1Nw
ZWVkLCBzcGVlZCkpOyB9CiAKLSAgICBQYXNzUmVmUHRyPENvb3JkaW5hdGVzPiBpc29sYXRlZENv
cHkoKSBjb25zdAorICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKG1fbGF0aXR1ZGUsIG1fbG9u
Z2l0dWRlLCBtX2NhblByb3ZpZGVBbHRpdHVkZSwgbV9hbHRpdHVkZSwgbV9hY2N1cmFjeSwgbV9j
YW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgbV9hbHRpdHVkZUFjY3VyYWN5LCBtX2NhblByb3Zp
ZGVIZWFkaW5nLCBtX2hlYWRpbmcsIG1fY2FuUHJvdmlkZVNwZWVkLCBtX3NwZWVkKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCmluZGV4IDg3MmE1
NGUuLjA4MjM5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
Y3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdElt
cGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzCiB2b2lkIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYg
ZXJyb3IpCiB7CiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKLSAgICAgICAgbV9lcnJvckNhbGxi
YWNrLT5oYW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5nZXQoKSk7CisgICAgICAg
IG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNyZWF0ZShlcnJvcikucHRy
KCkpOwogCiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IDJkNDI1MTMu
LmQxMGQxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFJU
Q1N0YXRzUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTdGF0c1Jl
c3BvbnNlQmFzZT4gcmVzcAogdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVk
KGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKLSAgICAg
ICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5n
ZXQoKSk7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNy
ZWF0ZShlcnJvcikucHRyKCkpOwogCiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApp
bmRleCAxMTYxMTU4Li5kOTA3NTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0U3VjY2VlZGVkKCkKIHZvaWQgUlRD
Vm9pZFJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjay5nZXQoKSkKLSAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5o
YW5kbGVFdmVudChET01FcnJvcjo6Y3JlYXRlKGVycm9yKS5nZXQoKSk7CisgICAgICAgIG1fZXJy
b3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXJyb3I6OmNyZWF0ZShlcnJvcikucHRyKCkpOwog
CiAgICAgY2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCA0ZDJjYzQ3Li4y
YjVjNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC0xNDUsNyArMTQ1LDcgQEAgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoSFRNTFAKIAogRE9NV3JhcHBlcldvcmxkJiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aXNvbGF0ZWRXb3JsZCgpCiB7Ci0gICAgc3RhdGljIERPTVdyYXBwZXJXb3Js
ZCYgaXNvbGF0ZWRXb3JsZCA9ICpET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6
Y29tbW9uVk0oKSkubGVha1JlZigpOworICAgIHN0YXRpYyBET01XcmFwcGVyV29ybGQmIGlzb2xh
dGVkV29ybGQgPSBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KSkubGVha1JlZigpOwogICAgIHJldHVybiBpc29sYXRlZFdvcmxkOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAppbmRleCAyOTBjNjdhLi42
MzVlNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJO
b2RlLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmFs
eXNlck5vZGUgOiBwdWJsaWMgQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEFuYWx5c2VyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPEFuYWx5c2VyTm9kZT4gY3Jl
YXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQW5hbHlzZXJOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUp
KTsgICAgICAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5hbHlzZXJOb2RlKGNvbnRl
eHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5BbmFseXNlck5vZGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAKaW5k
ZXggZTJmZjFjNi4uMzFkYTk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5jcHAKQEAgLTQzLDE5ICs0MywxOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGUodW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1w
bGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICBpZiAoc2FtcGxlUmF0ZSA8IDIyMDUwIHx8IHNhbXBsZVJhdGUgPiA5NjAwMCB8
fCBudW1iZXJPZkNoYW5uZWxzID4gQXVkaW9Db250ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkg
fHwgIW51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVmZmVyKG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9m
RnJhbWVzLCBzYW1wbGVSYXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9CdWZm
ZXIobnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKTsKIH0KIAot
UGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9CdWZmZXI6OmNyZWF0ZUZyb21BdWRpb0ZpbGVE
YXRhKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZs
b2F0IHNhbXBsZVJhdGUpCitSZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGVG
cm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wg
bWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gYnVz
ID0gY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGRhdGEsIGRhdGFTaXplLCBtaXhUb01v
bm8sIHNhbXBsZVJhdGUpOwogICAgIGlmIChidXMuZ2V0KCkpCi0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQXVkaW9CdWZmZXIoYnVzLmdldCgpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEF1ZGlvQnVmZmVyKGJ1cy5nZXQoKSkpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgKaW5kZXgg
MGNlMzI2MS4uZTczYmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXIuaApAQCAtNDMsMTAgKzQzLDEwIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiAKIGNsYXNzIEF1ZGlvQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXVkaW9CdWZmZXI+
IHsKIHB1YmxpYzogICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRl
KHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQg
c2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlKHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxl
UmF0ZSk7CiAKICAgICAvLyBSZXR1cm5zIDAgaWYgZGF0YSBpcyBub3QgYSB2YWxpZCBhdWRpbyBm
aWxlLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVGcm9tQXVkaW9G
aWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25v
LCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVh
dGVGcm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJv
b2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIEZvcm1hdAogICAgIHNp
emVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3Bw
CmluZGV4IDQ1ZmRjYjcuLjEzYmNhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTQ5LDkgKzQ5
LDkgQEAgY29uc3QgZG91YmxlIERlZmF1bHRHcmFpbkR1cmF0aW9uID0gMC4wMjA7IC8vIDIwbXMK
IC8vIHRvIG1pbmltaXplIGxpbmVhciBpbnRlcnBvbGF0aW9uIGFsaWFzaW5nLgogY29uc3QgZG91
YmxlIE1heFJhdGUgPSAxMDI0OwogCi1QYXNzUmVmUHRyPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4g
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9h
dCBzYW1wbGVSYXRlKQorUmVmPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4gQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlOjpjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQs
IHNhbXBsZVJhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkpOwogfQogCiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OkF1ZGlvQnVmZmVyU291cmNlTm9kZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBs
ZVJhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCBmYzBmYWQ1Li4yMDQ5MTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQXVkaW9Db250ZXh0OwogCiBjbGFzcyBBdWRpb0J1
ZmZlclNvdXJjZU5vZGUgOiBwdWJsaWMgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlclNvdXJjZU5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvQnVm
ZmVyU291cmNlTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCosIGZsb2F0IHNhbXBsZVJhdGUpOwog
CiAgICAgdmlydHVhbCB+QXVkaW9CdWZmZXJTb3VyY2VOb2RlKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA3ZjM2ZTI2Li43
Nzg2ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBBdWRpb0NvbnRleHQ6OmlzU2FtcGxl
UmF0ZVJhbmdlR29vZChmbG9hdCBzYW1wbGVSYXRlKQogY29uc3QgdW5zaWduZWQgTWF4SGFyZHdh
cmVDb250ZXh0cyA9IDQ7CiB1bnNpZ25lZCBBdWRpb0NvbnRleHQ6OnNfaGFyZHdhcmVDb250ZXh0
Q291bnQgPSAwOwogICAgIAotUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+IEF1ZGlvQ29udGV4dDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8QXVk
aW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDEyM2QzOTEuLjYyODEz
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aApAQCAtNzcsMTAgKzc3LDcgQEAgY2xhc3MgUGVyaW9kaWNXYXZlOwogY2xhc3MgQXVkaW9Db250
ZXh0IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEF1ZGlvQ29udGV4dD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMg
TWVkaWFDYW5TdGFydExpc3RlbmVyLCBwdWJsaWMgQXVkaW9Qcm9kdWNlciB7CiBwdWJsaWM6CiAg
ICAgLy8gQ3JlYXRlIGFuIEF1ZGlvQ29udGV4dCBmb3IgcmVuZGVyaW5nIHRvIHRoZSBhdWRpbyBo
YXJkd2FyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+IGNyZWF0ZShEb2N1
bWVudCYsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIC8vIENyZWF0ZSBhbiBBdWRpb0NvbnRleHQg
Zm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkgcmVuZGVyaW5nLgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEF1ZGlvQ29udGV4dD4gY3JlYXRlT2ZmbGluZUNvbnRleHQoRG9jdW1lbnQqLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJh
dGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQ29udGV4dD4gY3Jl
YXRlKERvY3VtZW50JiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVhbCB+QXVkaW9Db250
ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9MaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmgKaW5kZXggMDlmYWQ2MC4uMzc5MzA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0xpc3RlbmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXVk
aW9MaXN0ZW5lcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvTGlzdGVu
ZXI+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxBdWRpb0xpc3RlbmVyPiBjcmVhdGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb0xpc3RlbmVyKCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb0xpc3RlbmVyKTsKICAgICB9CiAKICAgICAvLyBQ
b3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaApp
bmRleCA5YjQ3ZWE4Li5kNGU0MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBEZWZhdWx0U21vb3RoaW5nQ29uc3RhbnQ7CiAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSBTbmFwVGhyZXNob2xkOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9QYXJhbT4g
Y3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUg
ZGVmYXVsdFZhbHVlLCBkb3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQg
dW5pdHMgPSAwKQorICAgIHN0YXRpYyBSZWY8QXVkaW9QYXJhbT4gY3JlYXRlKEF1ZGlvQ29udGV4
dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZGVmYXVsdFZhbHVlLCBkb3Vi
bGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQgdW5pdHMgPSAwKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1BhcmFtKGNvbnRleHQsIG5hbWUsIGRl
ZmF1bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCB1bml0cykpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBdWRpb1BhcmFtKGNvbnRleHQsIG5hbWUsIGRlZmF1bHRWYWx1ZSwgbWlu
VmFsdWUsIG1heFZhbHVlLCB1bml0cykpOwogICAgIH0KIAogICAgIC8vIEF1ZGlvU3VtbWluZ0p1
bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZEZpbHRlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmls
dGVyTm9kZS5oCmluZGV4IGRkZTJhZWMuLjRmZjQxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5oCkBAIC00Niw5ICs0Niw5IEBA
IHB1YmxpYzoKICAgICAgICAgQUxMUEFTUyA9IDcKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QmlxdWFkRmlsdGVyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxv
YXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPEJpcXVhZEZpbHRlck5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEJpcXVhZEZpbHRlck5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkp
OyAgICAgIAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaXF1YWRGaWx0ZXJOb2RlKGNv
bnRleHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAKICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaAppbmRl
eCA0NDE3YTAxLi5lMGQzNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnZvbHZlck5vZGUuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBSZXZlcmI7CiAgICAg
CiBjbGFzcyBDb252b2x2ZXJOb2RlIDogcHVibGljIEF1ZGlvTm9kZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q29udm9sdmVyTm9kZT4gY3JlYXRlKEF1ZGlvQ29udGV4dCogY29u
dGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKKyAgICBzdGF0aWMgUmVmPENvbnZvbHZlck5vZGU+IGNy
ZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbnZvbHZlck5vZGUoY29udGV4dCwgc2FtcGxlUmF0
ZSkpOyAgICAgIAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb252b2x2ZXJOb2RlKGNv
bnRleHQsIHNhbXBsZVJhdGUpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+Q29udm9sdmVy
Tm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxh
eU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlOb2RlLmgKaW5k
ZXggZGE2MWU2OS4uNzY4NjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0RlbGF5Tm9kZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9CYXNpY1Byb2Nl
c3Nvck5vZGUuaCIKICNpbmNsdWRlICJEZWxheVByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIEF1
ZGlvUGFyYW07CiAKIGNsYXNzIERlbGF5Tm9kZSA6IHB1YmxpYyBBdWRpb0Jhc2ljUHJvY2Vzc29y
Tm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGVsYXlOb2RlPiBjcmVhdGUo
QXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCBkb3VibGUgbWF4RGVsYXlU
aW1lLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICBzdGF0aWMgUmVmPERlbGF5Tm9kZT4gY3JlYXRl
KEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgZG91YmxlIG1heERlbGF5
VGltZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERlbGF5Tm9kZShjb250ZXh0LCBzYW1wbGVSYXRlLCBtYXhEZWxheVRpbWUsIGVjKSk7ICAg
ICAgCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGF5Tm9kZShjb250ZXh0LCBzYW1w
bGVSYXRlLCBtYXhEZWxheVRpbWUsIGVjKSk7CiAgICAgfQogCiAgICAgQXVkaW9QYXJhbSogZGVs
YXlUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RHluYW1pY3NDb21wcmVzc29yTm9kZS5oCmluZGV4IDEyM2MwY2EuLjFiMmQzYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVz
c29yTm9kZS5oCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIER5bmFtaWNzQ29tcHJlc3NvcjsKIAog
Y2xhc3MgRHluYW1pY3NDb21wcmVzc29yTm9kZSA6IHB1YmxpYyBBdWRpb05vZGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPER5bmFtaWNzQ29tcHJlc3Nvck5vZGU+IGNyZWF0ZShB
dWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgc3RhdGljIFJlZjxE
eW5hbWljc0NvbXByZXNzb3JOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9h
dCBzYW1wbGVSYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEeW5hbWlj
c0NvbXByZXNzb3JOb2RlKGNvbnRleHQsIHNhbXBsZVJhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRHluYW1pY3NDb21wcmVzc29yTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+RHluYW1pY3NDb21wcmVzc29yTm9kZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3Jh
cHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9u
V3JhcHBlci5oCmluZGV4IGFlMzhiZjUuLjg3NzBlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFw
cGVyIDogcHVibGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q2hhbmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG9s
ZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3
IENoYW5nZVZlcnNpb25XcmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0
YXRpYyBSZWY8Q2hhbmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG9sZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
aGFuZ2VWZXJzaW9uV3JhcHBlcihvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKSk7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBwZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uQmFja2VuZCopOwogICAg
IHZpcnR1YWwgYm9vbCBwZXJmb3JtUG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VBdXRob3JpemVyLmNwcAppbmRleCBlYWJhMWY0Li5jZDkzMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIu
Y3BwCkBAIC0zNCw5ICszNCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0
cjxEYXRhYmFzZUF1dGhvcml6ZXI+IERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VJbmZvVGFibGVOYW1lKQorUmVmPERhdGFiYXNlQXV0aG9yaXplcj4gRGF0
YWJhc2VBdXRob3JpemVyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUluZm9UYWJsZU5h
bWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhYmFzZUF1dGhvcml6ZXIoZGF0YWJh
c2VJbmZvVGFibGVOYW1lKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VBdXRo
b3JpemVyKGRhdGFiYXNlSW5mb1RhYmxlTmFtZSkpOwogfQogCiBEYXRhYmFzZUF1dGhvcml6ZXI6
OkRhdGFiYXNlQXV0aG9yaXplcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
QXV0aG9yaXplci5oCmluZGV4IDcyZGYzZjEuLmVlNDA4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuaApAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIE5vQWNjZXNzTWFzayA9IDEgPDwgMgogICAg
IH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhYmFzZUF1dGhvcml6ZXI+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFtZSk7CisgICAgc3RhdGljIFJlZjxEYXRh
YmFzZUF1dGhvcml6ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlSW5mb1RhYmxlTmFt
ZSk7CiAKICAgICBpbnQgY3JlYXRlVGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpOwogICAg
IGludCBjcmVhdGVUZW1wVGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCmluZGV4
IDdhOGE2ZWIuLjc1NWE3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01l
c3NhZ2VRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtNTAsNyArNDksNyBA
QCBjbGFzcyBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yOwogCiBjbGFzcyBEYXRhYmFzZVRocmVh
ZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEYXRhYmFzZVRocmVhZD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFiYXNlVGhyZWFkPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgRGF0YWJhc2VUaHJlYWQpOyB9CisgICAgc3RhdGljIFJlZjxEYXRhYmFz
ZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhYmFzZVRocmVhZCk7
IH0KICAgICB+RGF0YWJhc2VUaHJlYWQoKTsKIAogICAgIGJvb2wgc3RhcnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGIwM2QxZDQuLjgzYzY4MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNDk4LDcg
KzQ5OCw3IEBAIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6CiAgICAgICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgY29udGV4dC5pc0RvY3VtZW50KCkpOwogICAgICAgICBBU1NFUlQocGVlcik7CiAK
LSAgICAgICAgcGVlci0+c2VuZCgqQmxvYjo6ZGVzZXJpYWxpemUoY2FwdHVyZWRVUkwudXJsKCks
IGNhcHR1cmVkVHlwZS5zdHJpbmcoKSwgc2l6ZSkpOworICAgICAgICBwZWVyLT5zZW5kKEJsb2I6
OmRlc2VyaWFsaXplKGNhcHR1cmVkVVJMLnVybCgpLCBjYXB0dXJlZFR5cGUuc3RyaW5nKCksIHNp
emUpKTsKICAgICB9KTsKIAogICAgIFJlZjxCcmlkZ2U+IHByb3RlY3QoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMDk3YjNi
My4uYTAwYjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCkBAIC0yNjYsNyArMjY2LDcgQEAgYm9vbCBub2RlSGFzUm9sZShOb2RlKiBub2Rl
LCBjb25zdCBTdHJpbmcmIHJvbGUpCiAgICAgcmV0dXJuIFNwYWNlU3BsaXRTdHJpbmcocm9sZVZh
bHVlLCB0cnVlKS5jb250YWlucyhyb2xlKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CitzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogewogICAgIC8vIEZJWE1FOiBIb3cgY291bGQgcmVuZGVyZXIt
Pm5vZGUoKSBldmVyIG5vdCBiZSBhbiBFbGVtZW50PwogICAgIE5vZGUqIG5vZGUgPSByZW5kZXJl
ci0+bm9kZSgpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyCiAg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNyZWF0ZShyZW5kZXJlcik7CiB9
CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21Ob2Rl
KE5vZGUqIG5vZGUpCitzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21O
b2RlKE5vZGUqIG5vZGUpCiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpj
cmVhdGUobm9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKaW5kZXggOWFkYjgxZi4uNjVjMGFhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcApAQCAtNDksOSArNDksOSBAQCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6On5BY2Nlc3Np
YmlsaXR5QVJJQUdyaWQoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZD4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
K1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ+IEFjY2Vzc2liaWxpdHlBUklBR3JpZDo6Y3JlYXRl
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWQocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQocmVuZGVyZXIpKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWQ6OmFkZFRhYmxlQ2VsbENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNoaWxkLCBI
YXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3QqPiYgYXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29s
dW1uQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5QVJJQUdyaWQuaAppbmRleCA4MmVlZTg5Li5mMTZjYjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgKQEAgLTM5
LDcgKzM5LDcgQEAgY2xhc3MgQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyOwogCiBj
bGFzcyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRh
YmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdy
aWQ+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlB
UklBR3JpZD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlBUklBR3JpZCgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKaW5kZXggMTA0YzhhNi4uN2QzYzU3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZENlbGwuY3BwCkBAIC00NCw5ICs0NCw5IEBAIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6
On5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsPiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsPiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwocmVuZGVy
ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
KHJlbmRlcmVyKSk7CiB9CiAKIEFjY2Vzc2liaWxpdHlUYWJsZSogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbDo6cGFyZW50VGFibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaAppbmRleCA1NTg2YjA3
Li4xNzcwMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZENlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsIGZpbmFsIDog
cHVibGljIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsK
KyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsKCk7CiAgICAg
CiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFuZCByb3cgc3BhbiBvZiBjZWxs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5jcHAKaW5kZXggYjcyNWExNy4uNjllZTUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
LmNwcApAQCAtNDQsOSArNDQsOSBAQCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6On5BY2Nlc3Np
YmlsaXR5QVJJQUdyaWRSb3coKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdz4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c+IEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cocmVuZGVyZXIpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmlzQVJJQVRyZWVHcmlkUm93KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUFSSUFHcmlkUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdy5oCmluZGV4IDQ3YjE2YjEuLmJmMWExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaApA
QCAtMzcsNyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGU7CiAgICAgCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVRhYmxl
Um93IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRSb3c+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxp
dHlBUklBR3JpZFJvdz4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlBUklBR3JpZFJvdygpOwogICAgIAogICAgIHZvaWQgZGlzY2xvc2VkUm93cyhBY2Nl
c3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwCmluZGV4IDlhOWFm
YjQuLjk2YmMxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcApAQCAtNDksOSArNDksOSBAQCBBY2Nl
c3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjp+QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpCiB7CiB9
ICAgIAogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms+IEFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbms6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaz4g
QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpKTsKIH0KIAogQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6cGFyZW50T2JqZWN0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKaW5kZXggN2U3YzkxNi4uNjlhN2UyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluayBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
az4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rPiBj
cmVhdGUoKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKCk7CiAgICAg
CiAgICAgdm9pZCBzZXRIVE1MQXJlYUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50KiBlbGVtZW50KSB7
IG1fYXJlYUVsZW1lbnQgPSBlbGVtZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuY3BwCmluZGV4IDMyN2QyYTEuLmIyNzAzYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwCkBAIC00OSw5ICs0OSw5IEBAIEFjY2Vzc2liaWxpdHlMaXN0Ojp+QWNjZXNzaWJpbGl0eUxp
c3QoKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlMaXN0PiBBY2Nlc3NpYmlsaXR5
TGlzdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eUxp
c3Q+IEFjY2Vzc2liaWxpdHlMaXN0OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlMaXN0KHJlbmRlcmVyKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eUxpc3QocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5TGlzdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdC5oCmluZGV4IDk3NmUyYmQuLmMyZTViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgQWNjZXNzaWJpbGl0eUxpc3QgZmluYWwgOiBwdWJs
aWMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eUxpc3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgUmVmPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eUxpc3QoKTsKICAgICAKICAgICBib29sIGlzVW5vcmRlcmVkTGlz
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlMaXN0Qm94LmNwcAppbmRleCBhMzYwZGQzLi43ZmM2OGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcApA
QCAtNDksMTAgKzQ5LDEwIEBAIEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpBY2Nlc3NpYmlsaXR5TGlz
dEJveChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogQWNjZXNzaWJpbGl0eUxpc3RCb3g6On5BY2Nl
c3NpYmlsaXR5TGlzdEJveCgpCiB7CiB9Ci0gICAgCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlM
aXN0Qm94PiBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCisKK1JlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gQWNjZXNzaWJpbGl0eUxpc3RCb3g6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QWNjZXNzaWJpbGl0eUxpc3RCb3gocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBY2Nlc3NpYmlsaXR5TGlzdEJveChyZW5kZXJlcikpOwogfQogICAgIAogYm9vbCBBY2Nlc3Np
YmlsaXR5TGlzdEJveDo6Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94
LmgKaW5kZXggMTVjOTg0NS4uYWQyZGYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaApAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlMaXN0Qm94IGZpbmFsIDogcHVi
bGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlMaXN0Qm94PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAg
c3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0Qm94KCk7CiAgICAgCiAgICAgdmlydHVhbCBi
b29sIGNhblNldFNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAKaW5kZXggY2FhNmRiMC4uMTE4OGVjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5jcHAKQEAgLTU0LDkgKzU0LDkgQEAgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246On5B
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbigpCiB7CiB9ICAgIAogICAgIAotUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNy
ZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24+IEFjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24oKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24oKSk7CiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlMaXN0Qm94
T3B0aW9uOjppc0VuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCmluZGV4IDRiZWE3MTku
LjMxYzQzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSFRN
TFNlbGVjdEVsZW1lbnQ7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gY3JlYXRlKCk7CisgICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbj4gY3JlYXRlKCk7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24oKTsKICAgICAKICAgICB2b2lkIHNldEhUTUxF
bGVtZW50KEhUTUxFbGVtZW50KiBlbGVtZW50KSB7IG1fb3B0aW9uRWxlbWVudCA9IGVsZW1lbnQ7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9scy5jcHAKaW5kZXggODg3YmI5OS4uYTU5ZDE2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9s
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bDo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewog
fQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogewogICAgIEFTU0VSVChyZW5kZXJlci0+bm9kZSgpKTsKIApAQCAtNjksNyArNjks
NyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OmNyZWF0ZShSZW5kZXJPYmplY3QqCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbChy
ZW5kZXJlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sKHJlbmRlcmVyKSk7CiAgICAgfQogfQogCkBAIC0yMjIsOSArMjIyLDkgQEAgQWNj
ZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRy
b2xzQ29udGFpbmVyKFJlbmRlck8KIHsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0eU1l
ZGlhQ29udHJvbHNDb250YWluZXI6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWlu
ZXIocmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sc0NvbnRhaW5lcihyZW5kZXJlcikpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJpbGl0
eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0
CkBAIC0yNjYsOSArMjY2LDkgQEAgQWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OkFjY2Vzc2li
aWxpdHlNZWRpYVRpbWVsaW5lKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gQWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmNy
ZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lKHJl
bmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eU1lZGlhVGlt
ZWxpbmUocmVuZGVyZXIpKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5l
Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTI5Niw5ICsyOTYsOSBAQCBBY2Nlc3NpYmls
aXR5TWVkaWFUaW1lRGlzcGxheTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVuZGVy
T2JqZWN0KiByZW5kZQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJl
cikKK1JlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxh
eTo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheShyZW5kZXJlcikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5KHJlbmRlcmVyKSk7
CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OmNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuaAppbmRleCBiYzZiZDU0Li5h
MGNlNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2wgOiBwdWJsaWMgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJl
ZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbCgpIHsgfQogCiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTYzLDcgKzYzLDcgQEAg
cHJpdmF0ZToKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lIGZpbmFsIDogcHVibGlj
IEFjY2Vzc2liaWxpdHlTbGlkZXIgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBS
ZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1
YWwgfkFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5lKCkgeyB9CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBoZWxwVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgog
Y2xhc3MgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIgZmluYWwgOiBwdWJsaWMg
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbCB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3Rh
dGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAg
dmlydHVhbCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXIoKSB7IH0KIAogICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gVG9vbGJhclJvbGU7IH0KQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlN
ZWRpYUNvbnRyb2wgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNz
aWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5KCkgeyB9CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFwcGxpY2F0aW9uVGlt
ZXJSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXggYTlkZjFkOC4uMTQ3YWNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNw
cApAQCAtMzcsOSArMzcsOSBAQCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OkFjY2Vzc2liaWxpdHlN
ZW51TGlzdChSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0PiBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZShSZW5kZXJN
ZW51TGlzdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eU1lbnVMaXN0PiBBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OmNyZWF0ZShSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QocmVuZGVyZXIpKTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OnByZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oCmluZGV4IGJjNzVj
MTcuLmMwODFhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBSZW5kZXJNZW51
TGlzdDsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0IGZpbmFsIDogcHVibGljIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlNZW51TGlzdD4gY3JlYXRlKFJlbmRlck1lbnVMaXN0KiByZW5kZXJlcik7Cisg
ICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3Q+IGNyZWF0ZShSZW5kZXJNZW51TGlz
dCogcmVuZGVyZXIpOwogCiAgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIHByZXNzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaAppbmRleCBlMTNjNWZiLi5iNjgxNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKQEAgLTM1
LDcgKzM1LDcgQEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
KTsgfQorICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbik7IH0K
IAogICAgIHZvaWQgc2V0RWxlbWVudChIVE1MRWxlbWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgK
aW5kZXggMmIzNTMwZS4uNmI0ZDIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtMzcsNyArMzcs
NyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAogY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXApOyB9
CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cD4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCk7IH0KIAogICAg
IHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNPZmZTY3JlZW4oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggNWIx
Zjc2Yi4uNWNmOWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTExNyw5ICsxMTcsOSBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppbml0KCkKICAgICBtX3JvbGUgPSBkZXRlcm1pbmVB
Y2Nlc3NpYmlsaXR5Um9sZSgpOwogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0PiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Y3JlYXRlKE5vZGUqIG5vZGUpCitSZWY8QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q+IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpjcmVhdGUoTm9k
ZSogbm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0KG5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdChub2RlKSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGFjaChB
Y2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDEzODNkY2EuLjNlNzU3MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
QEAgLTYyLDcgKzYyLDcgQEAgZW51bSBNb3VzZUJ1dHRvbkxpc3RlbmVyUmVzdWx0RmlsdGVyIHsK
IAogY2xhc3MgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU9i
amVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q+IGNyZWF0ZShOb2RlKik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdD4gY3JlYXRlKE5vZGUqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluaXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yLmNwcAppbmRleCBhYWYwYzZjLi5mM2ExM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJ
bmRpY2F0b3IuY3BwCkBAIC0zOCw5ICszOCw5IEBAIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvcjo6QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yKFJlbmRlclByb2dyZXNzKiByCiB7
CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBBY2Nlc3Np
YmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJQcm9ncmVzcyogcmVuZGVyZXIp
CitSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yPiBBY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3I6OmNyZWF0ZShSZW5kZXJQcm9ncmVzcyogcmVuZGVyZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IocmVuZGVyZXIp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0
b3IocmVuZGVyZXIpKTsKIH0KICAgICAKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKQEAgLTQ5
LDkgKzQ5LDkgQEAgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yOjpBY2Nlc3NpYmlsaXR5
UHJvZ3Jlc3NJbmRpY2F0b3IoUmVuZGVyTWV0ZXIqIHJlbmQKIHsKIH0KIAotUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGlj
YXRvcjo6Y3JlYXRlKFJlbmRlck1ldGVyKiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5UHJv
Z3Jlc3NJbmRpY2F0b3I+IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcjo6Y3JlYXRlKFJl
bmRlck1ldGVyKiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2li
aWxpdHlQcm9ncmVzc0luZGljYXRvcihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvcihyZW5kZXJlcikpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVByb2dyZXNzSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oCmluZGV4IDBjNDgwZjYuLmY1OGYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNz
SW5kaWNhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaApAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBSZW5kZXJQcm9n
cmVzczsKICAgICAKIGNsYXNzIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvciBmaW5hbCA6
IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IGNyZWF0ZShSZW5kZXJQ
cm9ncmVzcyopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9y
PiBjcmVhdGUoUmVuZGVyUHJvZ3Jlc3MqKTsKICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3I+IGNyZWF0
ZShSZW5kZXJNZXRlciopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVByb2dyZXNzSW5k
aWNhdG9yPiBjcmVhdGUoUmVuZGVyTWV0ZXIqKTsKICNlbmRpZgogICAgIHZpcnR1YWwgRWxlbWVu
dCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA4
NGQ4Y2NjLi43Y2FlN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEzMiw5ICsxMzIsOSBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluaXQoKQogICAgIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppbml0KCk7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdD4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KHJlbmRlcmVyKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChyZW5kZXJlcikp
OwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGFjaChBY2Nlc3NpYmls
aXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaAppbmRleCA2YTNjMWViLi5lOTU4MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApA
QCAtNTgsNyArNTgsNyBAQCBjbGFzcyBXaWRnZXQ7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUo
UmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluaXQoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAK
aW5kZXggZTJhZDAwZi4uMmI2MmQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgQWNj
ZXNzaWJpbGl0eVNWR1Jvb3Q6On5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IEFjY2Vzc2liaWxpdHlTVkdSb290OjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gQWNjZXNz
aWJpbGl0eVNWR1Jvb3Q6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNWR1Jvb3QocmVuZGVyZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U1ZHUm9vdChyZW5kZXJlcikpOwogfQog
ICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6OnBhcmVudE9i
amVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTVkdSb290LmgKaW5kZXggMGI4MmZlZS4uNDRlZWRjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTVkdS
b290IGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTVkdSb290PiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U1ZHUm9vdD4gY3JlYXRlKFJl
bmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTVkdSb290KCk7CiAgICAg
CiAgICAgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KSB7IG1fcGFy
ZW50ID0gcGFyZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IGM5MDAwOTguLjJlNTY2ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuY3BwCkBAIC01NCw5ICs1NCw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXc6OmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUs
CiAgICAgbV9zY3JvbGxWaWV3ID0gbnVsbHB0cjsKIH0KIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5U2Nyb2xsVmlldz4gQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmNyZWF0ZShTY3JvbGxWaWV3
KiB2aWV3KQorUmVmPEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3PiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldzo6Y3JlYXRlKFNjcm9sbFZpZXcqIHZpZXcpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyh2aWV3KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcodmlldykpOwogfQogICAgIAogQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnNjcm9sbEJhcihBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggOTE1MTljOC4uYzYyYzc1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBTY3JvbGxWaWV3OwogICAg
IAogY2xhc3MgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJp
bGl0eU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXc+IGNyZWF0ZShTY3JvbGxWaWV3Kik7ICAgIAorICAgIHN0YXRpYyBSZWY8QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXc+IGNyZWF0ZShTY3JvbGxWaWV3Kik7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTY3Jv
bGxBcmVhUm9sZTsgfQogICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbFZpZXc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAKaW5kZXggZWVkYzI2OS4uOGY4MWU4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6
OkFjY2Vzc2liaWxpdHlTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAgQVNTRVJU
KHNjcm9sbGJhcik7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNjcm9sbGJhcj4gQWNj
ZXNzaWJpbGl0eVNjcm9sbGJhcjo6Y3JlYXRlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQorUmVmPEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXI+IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI6OmNyZWF0ZShTY3Jv
bGxiYXIqIHNjcm9sbGJhcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxp
dHlTY3JvbGxiYXIoc2Nyb2xsYmFyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNz
aWJpbGl0eVNjcm9sbGJhcihzY3JvbGxiYXIpKTsKIH0KICAgICAKIExheW91dFJlY3QgQWNjZXNz
aWJpbGl0eVNjcm9sbGJhcjo6ZWxlbWVudFJlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAppbmRleCA0Mzcw
NDQ5Li4yYWYzYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTY3JvbGxi
YXI7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIgZmluYWwgOiBwdWJsaWMgQWNjZXNz
aWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlTY3JvbGxiYXI+IGNyZWF0ZShTY3JvbGxiYXIqKTsKKyAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXI+IGNyZWF0ZShTY3JvbGxiYXIqKTsKIAogICAgIFNjcm9sbGJh
ciogc2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNl
YXJjaEZpZWxkQnV0dG9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuY3BwCmluZGV4IDNkNGU3MGMuLmNhZmE3MzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNlYXJj
aEZpZWxkQnV0dG9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uPiBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OmNyZWF0ZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbj4gQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uOjpjcmVhdGUoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2li
aWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihyZW5kZXJlcikp
OwogfQogCiBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OkFjY2Vzc2liaWxp
dHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmll
bGRCdXR0b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
ZWFyY2hGaWVsZEJ1dHRvbnMuaAppbmRleCA5NmY1OGJlLi5lYjY0YTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRv
bnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFy
Y2hGaWVsZEJ1dHRvbnMuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbiBmaW5hbCA6IHB1Ymxp
YyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b24+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbj4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+Jikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
bGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmNwcAppbmRleCA2Yjg3MGE2Li5kN2JhOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKQEAgLTQ1LDkgKzQ1LDkg
QEAgQWNjZXNzaWJpbGl0eVNsaWRlcjo6QWNjZXNzaWJpbGl0eVNsaWRlcihSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogewogfQogCi1QYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTbGlkZXI+IEFjY2Vz
c2liaWxpdHlTbGlkZXI6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vz
c2liaWxpdHlTbGlkZXI+IEFjY2Vzc2liaWxpdHlTbGlkZXI6OmNyZWF0ZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eVNsaWRl
cihyZW5kZXJlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTbGlk
ZXIocmVuZGVyZXIpKTsKIH0KIAogQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIEFjY2Vzc2liaWxp
dHlTbGlkZXI6Om9yaWVudGF0aW9uKCkgY29uc3QKQEAgLTE0Niw5ICsxNDYsOSBAQCBBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWI6OkFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYigpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iPiBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1
bWI6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iPiBBY2Nlc3NpYmlsaXR5
U2xpZGVyVGh1bWI6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWIoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJp
bGl0eVNsaWRlclRodW1iKCkpOwogfQogICAgIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5U2xp
ZGVyVGh1bWI6OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKaW5kZXggYjBkZDAyMC4uMWYyZTU3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xp
ZGVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIAogY2xhc3Mg
QWNjZXNzaWJpbGl0eVNsaWRlciA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBjcmVh
dGUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5U2xpZGVyPiBj
cmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRlcigp
IHsgfQogCiBwcm90ZWN0ZWQ6CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlTbGlkZXJUaHVtYiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09i
amVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNsaWRl
clRodW1iPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVt
Yj4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iKCkgeyB9
CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNsaWRlclRodW1iUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAppbmRleCAzY2U5
NDE5Li4wYzUzMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uOjpjcmVhdGUoKQorUmVmPEFjY2Vzc2liaWxpdHlTcGluQnV0
dG9uPiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbik7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5U3Bp
bkJ1dHRvbjo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oKQpAQCAtMTA5LDkgKzEwOSw5IEBAIEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydDo6QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0KCkK
IHsKIH0KICAgICAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0PiBBY2Nl
c3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVNwaW5C
dXR0b25QYXJ0PiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ6OmNyZWF0ZSgpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydCk7CiB9CiAKIExh
eW91dFJlY3QgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0OjplbGVtZW50UmVjdCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
cGluQnV0dG9uLmgKaW5kZXggY2U2YTliZC4uZTBjYjZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5
U3BpbkJ1dHRvbiBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IGNyZWF0
ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24+IGNyZWF0ZSgpOwog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTcGluQnV0dG9uKCk7CiAgICAgCiAgICAgdm9pZCBz
ZXRTcGluQnV0dG9uRWxlbWVudChTcGluQnV0dG9uRWxlbWVudCogc3BpbkJ1dHRvbikgeyBtX3Nw
aW5CdXR0b25FbGVtZW50ID0gc3BpbkJ1dHRvbjsgfQpAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRl
OgogICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQgZmluYWwgOiBwdWJsaWMg
QWNjZXNzaWJpbGl0eU1vY2tPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxB
Y2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQ+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkFjY2Vz
c2liaWxpdHlTcGluQnV0dG9uUGFydCgpIHsgfQogICAgIAogICAgIGJvb2wgaXNJbmNyZW1lbnRv
cigpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmNyZW1lbnRvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDY5NmQwNzYu
LmJlMWM0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZS5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFi
bGU6OmluaXQoKQogICAgIG1faXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSA9IGNvbXB1
dGVJc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKTsKIH0KIAotUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGFibGU+IEFjY2Vzc2liaWxpdHlUYWJsZTo6Y3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCitSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBBY2Nlc3NpYmlsaXR5VGFi
bGU6OmNyZWF0ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRlcmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWNjZXNzaWJpbGl0eVRhYmxlKHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eVRhYmxlOjpoYXNBUklBUm9sZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCBjZDViYmU3Li4xZWZkNjIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUmVuZGVyVGFibGVTZWN0aW9uOwogICAgIAogY2xh
c3MgQWNjZXNzaWJpbGl0eVRhYmxlIDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJsZT4gY3Jl
YXRlKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlPiBj
cmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdCgpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAK
aW5kZXggNjYwMmQwNy4uN2NkYWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCkBAIC01MSw5ICs1MSw5IEBA
IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6On5BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCkKIHsKIH0K
IAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK1JlZjxBY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsPiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwo
cmVuZGVyZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsKHJlbmRlcmVyKSk7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaAppbmRleCA2ODc1OGI1Li44
NTlhMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUYWJsZUNlbGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5
VGFibGU7CiAgICAgCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsIDogcHVibGljIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2
aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKCk7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGlzVGFibGVDZWxsKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5jcHAKaW5k
ZXggYjUxZWI3NS4uMDJjNGUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uLmNwcApAQCAtNDksOSArNDksOSBA
QCBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW46On5BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKQog
ewogfSAgICAKIAotUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+IEFjY2Vzc2li
aWxpdHlUYWJsZUNvbHVtbjo6Y3JlYXRlKCkKK1JlZjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+
IEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbigpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uOjpzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVD
b2x1bW4uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uLmgKaW5kZXggNjdjNDRiOC4uMGRhYzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCkBAIC0zOSw3
ICszOSw3IEBAIGNsYXNzIFJlbmRlclRhYmxlU2VjdGlvbjsKIAogY2xhc3MgQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uIGZpbmFsIDogcHVibGljIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4+IGNy
ZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVRhYmxlQ29sdW1uPiBjcmVhdGUo
KTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4oKTsKICAgICAKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVy
Q29udGFpbmVyLmNwcAppbmRleCAzZDAzMDdmLi5lMzAxMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXIuY3BwCkBAIC00Miw5ICs0Miw5IEBAIEFjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lcjo6fkFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcigpCiB7CiB9
CiAKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyPiBBY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNyZWF0ZSgpCitSZWY8QWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyPiBBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXI6OmNy
ZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWNjZXNzaWJpbGl0eVRh
YmxlSGVhZGVyQ29udGFpbmVyKCkpOwogfQogICAgIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5
VGFibGVIZWFkZXJDb250YWluZXI6OmVsZW1lbnRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFp
bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhl
YWRlckNvbnRhaW5lci5oCmluZGV4IDI2NmQxNGMuLmU0Y2U3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVI
ZWFkZXJDb250YWluZXIuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBB
Y2Nlc3NpYmlsaXR5TW9ja09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMg
UmVmPEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcj4gY3JlYXRlKCk7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKCk7CiAgICAgCiAgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBUYWJsZUhlYWRlckNvbnRhaW5lclJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAppbmRleCA2NjUyOTVlLi44
NmI4ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVSb3cuY3BwCkBAIC01MSw5ICs1MSw5IEBAIEFjY2Vzc2liaWxpdHlUYWJs
ZVJvdzo6fkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpCiB7CiB9CiAKLVBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVRhYmxlUm93PiBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmNyZWF0ZShSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQorUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRh
YmxlUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhyZW5kZXJlcikpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFjY2Vzc2liaWxpdHlUYWJsZVJvdyhyZW5kZXJlcikpOwogfQogCiBBY2Nl
c3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5oCmluZGV4IGYwODkxYmUuLmFhMWZkNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaApAQCAtMzcs
NyArMzcsNyBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VGFibGU7CiAKIGNsYXNzIEFjY2Vzc2liaWxp
dHlUYWJsZVJvdyA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+IGNyZWF0ZShSZW5k
ZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gY3JlYXRl
KFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpOwog
CiAgICAgLy8gcmV0cmlldmVzIHRoZSAicm93IiBoZWFkZXIgKGEgdGggdGFnIGluIHRoZSByaWdo
dG1vc3QgY29sdW1uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDE1YjE4MTQu
LjI2NzE2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTkxLDcgKzkxLDcg
QEAgc3RydWN0IF9XZWJLaXRBY2Nlc3NpYmxlUHJpdmF0ZSB7CiAKIHN0YXRpYyBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBmYWxsYmFja09iamVjdCgpCiB7Ci0gICAgc3RhdGljIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCA9IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpjcmVhdGUoKS5sZWFr
UmVmKCk7CisgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9ICZBY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbjo6Y3JlYXRlKCkubGVha1JlZigpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4IGI5NWZkYzguLjJhMjI4ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyLCBwdWJsaWMg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyPiBj
cmVhdGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihjYWNoZWRTY3JpcHQpKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI+IGNyZWF0ZShDYWNoZWRTY3JpcHQqIGNhY2hl
ZFNjcmlwdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
cihjYWNoZWRTY3JpcHQpKTsgfQogCiAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXIoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RP
TVdyYXBwZXJXb3JsZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldv
cmxkLmgKaW5kZXggYjNmMzY5YS4uZjg4ZTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmgKQEAgLTM1LDkgKzM1LDkgQEAgdHlwZWRlZiBIYXNoTWFw
PHZvaWQqLCBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4+IERPTU9iamVjdFdyYXBwZXJNYXA7CiAK
IGNsYXNzIERPTVdyYXBwZXJXb3JsZCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVdyYXBwZXJXb3Js
ZD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gY3Jl
YXRlKEpTQzo6Vk0mIHZtLCBib29sIGlzTm9ybWFsID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxE
T01XcmFwcGVyV29ybGQ+IGNyZWF0ZShKU0M6OlZNJiB2bSwgYm9vbCBpc05vcm1hbCA9IGZhbHNl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01XcmFwcGVyV29ybGQodm0s
IGlzTm9ybWFsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERPTVdyYXBwZXJXb3Js
ZCh2bSwgaXNOb3JtYWwpKTsKICAgICB9CiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdyYXBwZXJX
b3JsZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAppbmRleCBlNmM4MzczLi5kY2E1NjAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTIx
MjcsNiArMjEyNywxMiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdG9KUyhtX2V4ZWMsIGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fZ2xvYmFsT2JqZWN0KSwgbmF0aXZlT2JqKTsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIEpTVmFsdWUgZ2V0SlNWYWx1ZShUJiBu
YXRpdmVPYmopCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZSgmbmF0aXZlT2JqKTsK
KyAgICB9CisKICAgICBKU1ZhbHVlIHJlYWRUZXJtaW5hbCgpCiAgICAgewogICAgICAgICBTZXJp
YWxpemF0aW9uVGFnIHRhZyA9IHJlYWRUYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDFkYWI5YTAu
LjU5YmQ3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBh
dGhOU1Jlc29sdmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERP
TUN1c3RvbVhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlKGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+IGN1
c3RvbVJlc29sdmVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyKGN1c3RvbVJlc29sdmVyKSk7IH0KKyAgICAgICAgc3RhdGljIFJlZjxET01DdXN0b21YUGF0
aE5TUmVzb2x2ZXI+IGNyZWF0ZShpZCA8RE9NWFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZl
cikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIoY3VzdG9t
UmVzb2x2ZXIpKTsgfQogICAgICAgICB2aXJ0dWFsIH5ET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIo
KTsKIAogICAgICAgICB2aXJ0dWFsIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3Ry
aW5nJiBwcmVmaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4NTk1ZDE5Li5kM2Y1ZDM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQxMyw5
ICszNDEzLDkgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAicHVibGljOlxuIik7CiAKICAgICAjIFRoZSBzdGF0aWMgY3JlYXRlKCkgbWV0aG9k
LgotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8JGNsYXNz
TmFtZT4gY3JlYXRlKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KVxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
UmVmPCRjbGFzc05hbWU+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAge1xuIik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyAkY2xhc3NOYW1lKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKTtcbiIpOworICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3ICRjbGFzc05h
bWUoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpO1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB9XG5cbiIpOwogCiAgICAgIyBTY3JpcHRFeGVjdXRpb25Db250ZXh0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmgKaW5kZXggODU5NjQwNS4uZGI5ZDEwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBDQ2xhc3M7
CiAKIGNsYXNzIENJbnN0YW5jZSA6IHB1YmxpYyBJbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q0luc3RhbmNlPiBjcmVhdGUoTlBPYmplY3QqIG9iamVjdCwgUGFzc1Jl
ZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0KQorICAgIHN0YXRpYyBSZWY8Q0luc3RhbmNlPiBj
cmVhdGUoTlBPYmplY3QqIG9iamVjdCwgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDSW5zdGFuY2Uob2JqZWN0LCBy
b290T2JqZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENJbnN0YW5jZShvYmpl
Y3QsIHJvb3RPYmplY3QpKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCBzZXRHbG9iYWxFeGNl
cHRpb24oU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9L
ZXlQYWlyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5oCmluZGV4IDli
Yzc2ZDMuLmZiMjdjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9L
ZXlQYWlyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuaApAQCAt
MzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0tleVBhaXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG9LZXlQYWlyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q3J5cHRvS2V5UGFpcj4gY3JlYXRlKFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBw
dWJsaWNLZXksIFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQorICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvS2V5UGFpcj4gY3JlYXRlKFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwdWJsaWNLZXks
IFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlQYWlyKHB1YmxpY0tleSwgcHJpdmF0ZUtleSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9LZXlQYWlyKHB1YmxpY0tleSwgcHJpdmF0
ZUtleSkpOwogICAgIH0KICAgICB+Q3J5cHRvS2V5UGFpcigpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCmluZGV4IDBiN2JiNjEuLjE4YjAxYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCkBAIC0zNiw5ICszNiw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5QUVTIGZpbmFsIDogcHVibGljIENy
eXB0b0tleSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRvS2V5QUVTPiBj
cmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYga2V5LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKKyAg
ICBzdGF0aWMgUmVmPENyeXB0b0tleUFFUz4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENyeXB0b0tleUFFUyhhbGdvcml0aG0sIGtleSwgZXh0cmFjdGFibGUsIHVzYWdlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0tleUFFUyhhbGdvcml0aG0sIGtleSwg
ZXh0cmFjdGFibGUsIHVzYWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkNyeXB0b0tleUFFUygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFD
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmgKaW5kZXggYjc4
M2M2Ni4uY2E1MTMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5SE1BQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhN
QUMuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0
b0tleUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvS2V5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDcnlwdG9LZXlITUFDPiBjcmVhdGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBr
ZXksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UgdXNhZ2UpCisgICAgc3RhdGljIFJlZjxDcnlwdG9LZXlITUFDPiBjcmVhdGUo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFz
aCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tleUhNQUMoa2V5LCBoYXNoLCBleHRyYWN0YWJs
ZSwgdXNhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvS2V5SE1BQyhr
ZXksIGhhc2gsIGV4dHJhY3RhYmxlLCB1c2FnZSkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Dcnlw
dG9LZXlITUFDKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleVJTQS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgK
aW5kZXggMWZjNDIzMS4uMWFhNTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5UlNBLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgY2xhc3MgUHJvbWlzZVdyYXBwZXI7CiAKIGNs
YXNzIENyeXB0b0tleVJTQSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9LZXkgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENyeXB0b0tleVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgQ3J5cHRvS2V5VHlwZSB0eXBlLCBQbGF0Zm9ybVJTQUtleSBw
bGF0Zm9ybUtleSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCisgICAg
c3RhdGljIFJlZjxDcnlwdG9LZXlSU0E+IGNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIsIENyeXB0b0tleVR5cGUgdHlwZSwgUGxhdGZvcm1SU0FLZXkgcGxhdGZvcm1L
ZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlSU0EoaWRlbnRpZmllciwgdHlwZSwgcGxh
dGZvcm1LZXksIGV4dHJhY3RhYmxlLCB1c2FnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDcnlwdG9LZXlSU0EoaWRlbnRpZmllciwgdHlwZSwgcGxhdGZvcm1LZXksIGV4dHJhY3Rh
YmxlLCB1c2FnZSkpOwogICAgIH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+
IGNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNB
Q29tcG9uZW50cyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKICAgICB2aXJ0
dWFsIH5DcnlwdG9LZXlSU0EoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvS2V5UlNBTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRv
S2V5UlNBTWFjLmNwcAppbmRleCAwZmExNzRjLi5iNTZhYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9p
ZCBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFs
Z29yaXRobSwgdW5zaWduZWQgbW8KICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+IHB1Ymxp
Y0tleSA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKGFsZ29yaXRobSwgQ3J5cHRvS2V5VHlwZTo6UHVi
bGljLCBjY1B1YmxpY0tleSwgdHJ1ZSwgdXNhZ2UpOwogICAgICAgICAgICAgUmVmUHRyPENyeXB0
b0tleVJTQT4gcHJpdmF0ZUtleSA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKGFsZ29yaXRobSwgQ3J5
cHRvS2V5VHlwZTo6UHJpdmF0ZSwgY2NQcml2YXRlS2V5LCBleHRyYWN0YWJsZSwgdXNhZ2UpOwot
ICAgICAgICAgICAgKCpsb2NhbENhbGxiYWNrKSgqQ3J5cHRvS2V5UGFpcjo6Y3JlYXRlKHB1Ymxp
Y0tleS5yZWxlYXNlKCksIHByaXZhdGVLZXkucmVsZWFzZSgpKSk7CisgICAgICAgICAgICAoKmxv
Y2FsQ2FsbGJhY2spKENyeXB0b0tleVBhaXI6OmNyZWF0ZShwdWJsaWNLZXkucmVsZWFzZSgpLCBw
cml2YXRlS2V5LnJlbGVhc2UoKSkpOwogICAgICAgICAgICAgZGVsZXRlIGxvY2FsQ2FsbGJhY2s7
CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RP
TVdpbmRvd0NTUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmNwcAppbmRl
eCA1YmM4M2MyLi41ODc4MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2lu
ZG93Q1NTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmNwcApAQCAt
MzYsOSArMzYsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NV2lu
ZG93Q1NTPiBET01XaW5kb3dDU1M6OmNyZWF0ZSgpCitSZWY8RE9NV2luZG93Q1NTPiBET01XaW5k
b3dDU1M6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01XaW5kb3dDU1Mo
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93Q1NTKTsKIH0KIAogc3RhdGlj
IFN0cmluZyB2YWx1ZVdpdGhvdXRJbXBvcnRhbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01XaW5kb3dDU1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01XaW5kb3dDU1MuaAppbmRleCA3OWQ1ZDk3Li4xMDVlY2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NV2luZG93Q1NTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTVdpbmRvd0NTUy5oCkBAIC0zMSwxNCArMzEsMTQgQEAKICNkZWZpbmUgRE9NV2luZG93Q1NT
X2gKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01XaW5kb3dDU1MgOiBwdWJsaWMgUmVmQ291
bnRlZDxET01XaW5kb3dDU1M+IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UGFzc1JlZlB0cjxET01XaW5kb3dDU1M+IGNyZWF0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8RE9NV2luZG93Q1NTPiBjcmVhdGUoKTsKIAogICAgIGJvb2wgc3VwcG9ydHMoY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAgICAgYm9v
bCBzdXBwb3J0cyhjb25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rhc2hib2FyZFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0Rhc2hib2FyZFJlZ2lvbi5oCmluZGV4IDViNWYwYmQuLjJhMzFiNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9EYXNoYm9hcmRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRGFzaGJvYXJkUmVnaW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBEYXNoYm9hcmRSZWdpb24gOiBwdWJsaWMgUmVjdEJhc2UsIHB1YmxpYyBS
ZWZDb3VudGVkPERhc2hib2FyZFJlZ2lvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERhc2hib2FyZFJlZ2lvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhc2hi
b2FyZFJlZ2lvbik7IH0KKyAgICBzdGF0aWMgUmVmPERhc2hib2FyZFJlZ2lvbj4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXNoYm9hcmRSZWdpb24pOyB9CiAgICAgYm9vbCBlcXVh
bHMoY29uc3QgRGFzaGJvYXJkUmVnaW9uJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX2xhYmVsID09IG90aGVyLm1fbGFiZWwgJiYgbV9nZW9tZXRyeVR5cGUgPT0gb3RoZXIu
bV9nZW9tZXRyeVR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCmluZGV4IGI2ZDZkOTEuLjM3ZTdh
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBGb250TG9hZGVyIGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8Rm9udExvYWRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVu
dFRhcmdldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udExvYWRlcj4gY3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPEZvbnRMb2FkZXI+IGNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWY8Rm9u
dExvYWRlcj4obmV3IEZvbnRMb2FkZXIoZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmPEZvbnRMb2FkZXI+KCpuZXcgRm9udExvYWRlcihkb2N1bWVudCkpOwogICAgIH0KICAgICB2
aXJ0dWFsIH5Gb250TG9hZGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgKaW5kZXggZTlmM2QwYi4u
ZTZjODUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYg
RE9NRXJyb3JfaAogI2RlZmluZSBET01FcnJvcl9oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTM0LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBET01FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUVycm9yPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCisg
ICAgc3RhdGljIFJlZjxET01FcnJvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRXJyb3IobmFtZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBET01FcnJvcihuYW1lKSk7CiAgICAgfQogICAgIHZpcnR1YWwg
fkRPTUVycm9yKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJp
bmdMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5oCmluZGV4IGQzNjU3
OTkuLjViNDUxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaApAQCAtMzcsOSArMzcs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAgICAgICAgdGhhbiBjcmVhdGluZyB0aGUgbGlz
dCBzdGF0aWNhbGx5IGFzIGlzIGN1cnJlbnRseSB0aGUgb25seSBvcHRpb24uCiBjbGFzcyBET01T
dHJpbmdMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RE9NU3RyaW5nTGlzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFJlZjxET01TdHJpbmdMaXN0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBET01TdHJpbmdMaXN0KCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
T01TdHJpbmdMaXN0KTsKICAgICB9CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBtX3N0cmluZ3MuaXNFbXB0eSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmlu
ZGV4IDM4NGM4NWYuLjg1ZmNlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBA
IC03Miw5ICs3Miw5IEBAIERhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeSBwb2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0CiAjZW5kaWYKIH0KIAotUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXI+IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3kpCitSZWY8RGF0YVRyYW5zZmVyPiBEYXRh
VHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kg
cG9saWN5KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVyKHBvbGljeSwg
cG9saWN5ID09IERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6V3JpdGFibGUgPyBQYXN0ZWJvYXJk
OjpjcmVhdGVQcml2YXRlKCkgOiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIHBvbGljeSA9
PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlID8gUGFzdGVib2FyZDo6Y3JlYXRl
UHJpdmF0ZSgpIDogUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpKTsKIH0KIAog
RGF0YVRyYW5zZmVyOjp+RGF0YVRyYW5zZmVyKCkKQEAgLTIyOSwxNCArMjI5LDE0IEBAIHZvaWQg
RGF0YVRyYW5zZmVyOjpzZXREcmFnSW1hZ2UoRWxlbWVudCosIGludCwgaW50KQogCiAjZWxzZQog
Ci1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcCgpCitSZWY8RGF0YVRyYW5zZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2ZlcihEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpLCBEcmFnQW5kRHJvcCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2Zl
cihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlLCBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpLCBEcmFnQW5kRHJvcCkpOwogfQogCi1QYXNzUmVmUHRyPERhdGFUcmFu
c2Zlcj4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nl
c3NQb2xpY3kgcG9saWN5LCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitSZWY8RGF0YVRyYW5z
ZmVyPiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vz
c1BvbGljeSBwb2xpY3ksIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKGRyYWdEYXRhKSwgRHJhZ0FuZERyb3AsIGRyYWdEYXRhLmNvbnRhaW5zRmlsZXMo
KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFUcmFuc2Zlcihwb2xpY3ksIFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgRHJhZ0FuZERyb3AsIGRyYWdE
YXRhLmNvbnRhaW5zRmlsZXMoKSkpOwogfQogCiBib29sIERhdGFUcmFuc2Zlcjo6Y2FuU2V0RHJh
Z0ltYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCBjYTgzYjlmLi44
NGEzMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC00NCw3ICs0NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERhdGFUcmFuc2ZlciA6IHB1YmxpYyBSZWZD
b3VudGVkPERhdGFUcmFuc2Zlcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGF0YVRyYW5zZmVyPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5KTsKKyAgICAgICAgc3RhdGljIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckNv
cHlBbmRQYXN0ZShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kpOwogCiAgICAgICAgIFdFQkNPUkVf
RVhQT1JUIH5EYXRhVHJhbnNmZXIoKTsKIApAQCAtODIsOCArODIsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQoKSB7IHJldHVybiAqbV9wYXN0
ZWJvYXJkOyB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRy
YW5zZmVyQWNjZXNzUG9saWN5LCBjb25zdCBEcmFnRGF0YSYpOworICAgICAgICBzdGF0aWMgUmVm
PERhdGFUcmFuc2Zlcj4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICAgICAgc3RhdGljIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSwgY29uc3QgRHJhZ0RhdGEmKTsKIAogICAgICAgICBib29sIGRyb3BFZmZlY3RJc1VuaW5p
dGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2Ryb3BFZmZlY3QgPT0gInVuaW5pdGlhbGl6ZWQi
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcAppbmRleCA0NDFjODBk
Li44M2FjMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwCkBAIC0y
OCwxMSArMjgsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERldmlj
ZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbj4gRGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9u
OjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlWCwgZG91YmxlIHgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBjYW5Qcm92aWRlWSwgZG91YmxlIHksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBjYW5Qcm92aWRlWiwgZG91YmxlIHopCitSZWY8RGV2aWNlTW90aW9uRGF0YTo6QWNj
ZWxlcmF0aW9uPiBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb246OmNyZWF0ZShib29sIGNh
blByb3ZpZGVYLCBkb3VibGUgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuUHJvdmlkZVks
IGRvdWJsZSB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlWiwgZG91YmxlIHop
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRp
b24oY2FuUHJvdmlkZVgsIHgsIGNhblByb3ZpZGVZLCB5LCBjYW5Qcm92aWRlWiwgeikpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbihjYW5Q
cm92aWRlWCwgeCwgY2FuUHJvdmlkZVksIHksIGNhblByb3ZpZGVaLCB6KSk7CiB9CiAKIERldmlj
ZU1vdGlvbkRhdGE6OkFjY2VsZXJhdGlvbjo6QWNjZWxlcmF0aW9uKGJvb2wgY2FuUHJvdmlkZVgs
IGRvdWJsZSB4LCBib29sIGNhblByb3ZpZGVZLCBkb3VibGUgeSwgYm9vbCBjYW5Qcm92aWRlWiwg
ZG91YmxlIHopCkBAIC00NiwxMSArNDYsMTEgQEAgRGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0
aW9uOjpBY2NlbGVyYXRpb24oYm9vbCBjYW5Qcm92aWRlWCwgZG91YmxlIHgsIGJvb2wgY2EKIHsK
IH0KIAotUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IERldmljZU1v
dGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3Vi
bGUgYWxwaGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlQmV0YSwg
ZG91YmxlIGJldGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5Qcm92aWRlR2Ft
bWEsIGRvdWJsZSBnYW1tYSkKK1JlZjxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGU+IERl
dmljZU1vdGlvbkRhdGE6OlJvdGF0aW9uUmF0ZTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhh
LCBkb3VibGUgYWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhblByb3ZpZGVCZXRhLCBk
b3VibGUgYmV0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3Vi
bGUgZ2FtbWEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25EYXRhOjpS
b3RhdGlvblJhdGUoY2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEs
IGNhblByb3ZpZGVHYW1tYSwgZ2FtbWEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZp
Y2VNb3Rpb25EYXRhOjpSb3RhdGlvblJhdGUoY2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJv
dmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVHYW1tYSwgZ2FtbWEpKTsKIH0KIAogRGV2aWNlTW90
aW9uRGF0YTo6Um90YXRpb25SYXRlOjpSb3RhdGlvblJhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEs
IGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2Fu
UHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCkBAIC02MywxNSArNjMsMTUgQEAgRGV2aWNlTW90
aW9uRGF0YTo6Um90YXRpb25SYXRlOjpSb3RhdGlvblJhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEs
IGRvdWJsZSBhbHBoYSwKIHsKIH0KIAotUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBEZXZp
Y2VNb3Rpb25EYXRhOjpjcmVhdGUoKQorUmVmPERldmljZU1vdGlvbkRhdGE+IERldmljZU1vdGlv
bkRhdGE6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VNb3Rpb25E
YXRhKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VNb3Rpb25EYXRhKTsKIH0KIAot
UGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25EYXRhPiBEZXZpY2VNb3Rpb25EYXRhOjpjcmVhdGUoUGFz
c1JlZlB0cjxBY2NlbGVyYXRpb24+IGFjY2VsZXJhdGlvbiwgUGFzc1JlZlB0cjxBY2NlbGVyYXRp
b24+IGFjY2VsZXJhdGlvbkluY2x1ZGluZ0dyYXZpdHksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFJvdGF0aW9uUmF0ZT4g
cm90YXRpb25SYXRlLCBib29sIGNhblByb3ZpZGVJbnRlcnZhbCwgZG91YmxlIGludGVydmFsKQor
UmVmPERldmljZU1vdGlvbkRhdGE+IERldmljZU1vdGlvbkRhdGE6OmNyZWF0ZShQYXNzUmVmUHRy
PEFjY2VsZXJhdGlvbj4gYWNjZWxlcmF0aW9uLCBQYXNzUmVmUHRyPEFjY2VsZXJhdGlvbj4gYWNj
ZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxSb3RhdGlvblJhdGU+IHJvdGF0aW9uUmF0ZSwg
Ym9vbCBjYW5Qcm92aWRlSW50ZXJ2YWwsIGRvdWJsZSBpbnRlcnZhbCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERldmljZU1vdGlvbkRhdGEoYWNjZWxlcmF0aW9uLCBhY2NlbGVyYXRpb25J
bmNsdWRpbmdHcmF2aXR5LCByb3RhdGlvblJhdGUsIGNhblByb3ZpZGVJbnRlcnZhbCwgaW50ZXJ2
YWwpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXZpY2VNb3Rpb25EYXRhKGFjY2VsZXJh
dGlvbiwgYWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eSwgcm90YXRpb25SYXRlLCBjYW5Qcm92
aWRlSW50ZXJ2YWwsIGludGVydmFsKSk7CiB9CiAKIERldmljZU1vdGlvbkRhdGE6OkRldmljZU1v
dGlvbkRhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25EYXRhLmgKaW5kZXggZjE0MWEz
NS4uZmRlZDc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkRh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRGF0YS5oCkBAIC0zNiw3
ICszNiw3IEBAIGNsYXNzIERldmljZU1vdGlvbkRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXZp
Y2VNb3Rpb25EYXRhPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgQWNjZWxlcmF0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiB7CiAgICAgcHVibGlj
OgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxBY2NlbGVyYXRpb24+
IGNyZWF0ZShib29sIGNhblByb3ZpZGVYLCBkb3VibGUgeCwgYm9vbCBjYW5Qcm92aWRlWSwgZG91
YmxlIHksIGJvb2wgY2FuUHJvdmlkZVosIGRvdWJsZSB6KTsKKyAgICAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxBY2NlbGVyYXRpb24+IGNyZWF0ZShib29sIGNhblByb3ZpZGVYLCBkb3Vi
bGUgeCwgYm9vbCBjYW5Qcm92aWRlWSwgZG91YmxlIHksIGJvb2wgY2FuUHJvdmlkZVosIGRvdWJs
ZSB6KTsKIAogICAgICAgICBib29sIGNhblByb3ZpZGVYKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Q
cm92aWRlWDsgfQogICAgICAgICBib29sIGNhblByb3ZpZGVZKCkgY29uc3QgeyByZXR1cm4gbV9j
YW5Qcm92aWRlWTsgfQpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBSb3Rh
dGlvblJhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXZpY2VNb3Rpb25EYXRhOjpSb3RhdGlvblJh
dGU+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVm
UHRyPFJvdGF0aW9uUmF0ZT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxw
aGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsICBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2Ft
bWEsIGRvdWJsZSBnYW1tYSk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8Um90
YXRpb25SYXRlPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9v
bCBjYW5Qcm92aWRlQmV0YSwgIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91
YmxlIGdhbW1hKTsKIAogICAgICAgICBib29sIGNhblByb3ZpZGVBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FuUHJvdmlkZUFscGhhOyB9CiAgICAgICAgIGJvb2wgY2FuUHJvdmlkZUJldGEoKSBj
b25zdCB7IHJldHVybiBtX2NhblByb3ZpZGVCZXRhOyB9CkBAIC04Miw5ICs4Miw5IEBAIHB1Ymxp
YzoKICAgICAgICAgYm9vbCBtX2NhblByb3ZpZGVHYW1tYTsKICAgICB9OwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKCk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8
QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb24sIFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2Nl
bGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFJvdGF0aW9uUmF0ZT4gcm90YXRpb25SYXRlLCBi
b29sIGNhblByb3ZpZGVJbnRlcnZhbCwgZG91YmxlIGludGVydmFsKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPERldmljZU1vdGlvbkRhdGE+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBS
ZWY8RGV2aWNlTW90aW9uRGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2Nl
bGVyYXRpb24sIFBhc3NSZWZQdHI8QWNjZWxlcmF0aW9uPiBhY2NlbGVyYXRpb25JbmNsdWRpbmdH
cmF2aXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8Um90YXRpb25SYXRlPiByb3RhdGlvblJhdGUsIGJvb2wgY2FuUHJvdmlkZUludGVydmFsLCBk
b3VibGUgaW50ZXJ2YWwpOwogCiAgICAgY29uc3QgQWNjZWxlcmF0aW9uKiBhY2NlbGVyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGlvbi5nZXQoKTsgfQogICAgIGNvbnN0IEFjY2Vs
ZXJhdGlvbiogYWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAppbmRleCBkNmE1ZjJjLi41NDY1Y2E5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcApAQCAtMjgsMjEg
KzI4LDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxEZXZpY2VPcmll
bnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKCkKK1JlZjxEZXZpY2VP
cmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU9yaWVudGF0aW9uRGF0YSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGV2aWNlT3JpZW50YXRpb25EYXRhKTsKIH0KIAogI2lmIFBMQVRGT1JNKElP
UykKIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVjb25jaWxlIHRoZSBpT1MgYW5kIE9wZW5Tb3VyY2Ug
ZGlmZmVyZW5jZXMuCi1QYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gRGV2aWNlT3Jp
ZW50YXRpb25EYXRhOjpjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwg
Ym9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBk
b3VibGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFz
c0hlYWRpbmcsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91YmxlIGNvbXBhc3NB
Y2N1cmFjeSkKK1JlZjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0
YTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJv
dmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1h
LCBib29sIGNhblByb3ZpZGVDb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBi
b29sIGNhblByb3ZpZGVDb21wYXNzQWNjdXJhY3ksIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXZpY2VPcmllbnRhdGlvbkRhdGEoY2FuUHJvdmlk
ZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVHYW1tYSwgZ2Ft
bWEsIGNhblByb3ZpZGVDb21wYXNzSGVhZGluZywgY29tcGFzc0hlYWRpbmcsIGNhblByb3ZpZGVD
b21wYXNzQWNjdXJhY3ksIGNvbXBhc3NBY2N1cmFjeSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERldmljZU9yaWVudGF0aW9uRGF0YShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92
aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSwgY2FuUHJvdmlkZUNvbXBhc3NI
ZWFkaW5nLCBjb21wYXNzSGVhZGluZywgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgY29tcGFz
c0FjY3VyYWN5KSk7CiB9CiAjZWxzZQotUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+
IERldmljZU9yaWVudGF0aW9uRGF0YTo6Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3Vi
bGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3Zp
ZGVHYW1tYSwgZG91YmxlIGdhbW1hLCBib29sIGNhblByb3ZpZGVBYnNvbHV0ZSwgYm9vbCBhYnNv
bHV0ZSkKK1JlZjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IERldmljZU9yaWVudGF0aW9uRGF0YTo6
Y3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlk
ZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hLCBi
b29sIGNhblByb3ZpZGVBYnNvbHV0ZSwgYm9vbCBhYnNvbHV0ZSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IERldmljZU9yaWVudGF0aW9uRGF0YShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBj
YW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSwgY2FuUHJvdmlkZUFi
c29sdXRlLCBhYnNvbHV0ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERldmljZU9yaWVu
dGF0aW9uRGF0YShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwg
Y2FuUHJvdmlkZUdhbW1hLCBnYW1tYSwgY2FuUHJvdmlkZUFic29sdXRlLCBhYnNvbHV0ZSkpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuaApp
bmRleCA0OGE3YWFjLi5jZDlmZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRGF0YS5oCkBAIC0yNiwxOCArMjYsMTggQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRp
b25EYXRhX2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25EYXRhX2gKIAotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RGV2aWNlT3JpZW50YXRpb25EYXRhPiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBjcmVhdGUo
KTsKKyAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRGF0YT4gY3JlYXRlKCk7CiAjaWYg
UExBVEZPUk0oSU9TKQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uRGF0YT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxw
aGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1t
YSwgZG91YmxlIGdhbW1hLCBib29sIGNhblByb3ZpZGVDb21wYXNzSGVhZGluZywgZG91YmxlIGNv
bXBhc3NIZWFkaW5nLCBib29sIGNhblByb3ZpZGVDb21wYXNzQWNjdXJhY3ksIGRvdWJsZSBjb21w
YXNzQWNjdXJhY3kpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50
YXRpb25EYXRhPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9v
bCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3Vi
bGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGJvb2wgY2FuUHJvdmlkZUNvbXBhc3NBY2N1cmFjeSwgZG91YmxlIGNvbXBhc3NBY2N1
cmFjeSk7CiAjZWxzZQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uRGF0YT4gY3JlYXRlKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxw
aGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1t
YSwgZG91YmxlIGdhbW1hLCBib29sIGNhblByb3ZpZGVBYnNvbHV0ZSA9IGZhbHNlLCBib29sIGFi
c29sdXRlID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RGV2aWNlT3Jp
ZW50YXRpb25EYXRhPiBjcmVhdGUoYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwg
Ym9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBk
b3VibGUgZ2FtbWEsIGJvb2wgY2FuUHJvdmlkZUFic29sdXRlID0gZmFsc2UsIGJvb2wgYWJzb2x1
dGUgPSBmYWxzZSk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhbHBoYSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAKaW5kZXggY2VjNTliZC4uMDVmMDgwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIERvY3VtZW50
TWFya2VyRGV0YWlsczo6fkRvY3VtZW50TWFya2VyRGV0YWlscygpCiAKIGNsYXNzIERvY3VtZW50
TWFya2VyRGVzY3JpcHRpb24gOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBjcmVh
dGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIFJlZjxEb2N1bWVudE1hcmtlckRlc2NyaXB0
aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0Rlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTMsOSAr
NTMsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOwogfTsKIAotUGFzc1Jl
ZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9u
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK1JlZjxEb2N1bWVudE1hcmtlckRl
c2NyaXB0aW9uPiBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2Vy
RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1
bWVudE1hcmtlckRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSk7CiB9CiAKIGlubGluZSBEb2N1bWVu
dE1hcmtlckRlc2NyaXB0aW9uKiB0b0RvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oRG9jdW1lbnRN
YXJrZXJEZXRhaWxzKiBkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggNmQ3M2NhZS4uOWJjZWJhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIuY3BwCkBAIC01Miw5ICs1Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0
b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHMgOiBwdWJsaWMgQWx0ZXJuYXRpdmVUZXh0RGV0
YWlscyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXV0b2NvcnJlY3Rpb25BbHRl
cm5hdGl2ZURldGFpbHM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKQor
ICAgIHN0YXRpYyBSZWY8QXV0b2NvcnJlY3Rpb25BbHRlcm5hdGl2ZURldGFpbHM+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBdXRvY29ycmVjdGlvbkFsdGVybmF0aXZlRGV0YWlscyhyZXBsYWNlbWVudFN0
cmluZykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdXRvY29ycmVjdGlvbkFsdGVy
bmF0aXZlRGV0YWlscyhyZXBsYWNlbWVudFN0cmluZykpOwogICAgIH0KICAgICAKICAgICBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBsYWNlbWVu
dFN0cmluZzsgfQpAQCAtNjgsOSArNjgsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEaWN0YXRpb25B
bHRlcm5hdGl2ZURldGFpbHMgOiBwdWJsaWMgQWx0ZXJuYXRpdmVUZXh0RGV0YWlscyB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGljdGF0aW9uQWx0ZXJuYXRpdmVEZXRhaWxzPiBj
cmVhdGUodWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlv
bkFsdGVybmF0aXZlRGV0YWlscz4gY3JlYXRlKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3RhdGlvbkFsdGVybmF0aXZlRGV0
YWlscyhkaWN0YXRpb25Db250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERp
Y3RhdGlvbkFsdGVybmF0aXZlRGV0YWlscyhkaWN0YXRpb25Db250ZXh0KSk7CiAgICAgfQogCiAg
ICAgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGljdGF0aW9u
Q29udGV4dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuaAppbmRleCBiMTA2YWM1Li4xMjMyMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaApAQCAtNjIsOSArNjIs
OSBAQCBzdHJ1Y3QgQWx0ZXJuYXRpdmVUZXh0SW5mbyB7CiAKIGNsYXNzIERpY3RhdGlvbk1hcmtl
ckRldGFpbHMgOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEaWN0YXRpb25NYXJrZXJEZXRhaWxzPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBvcmlnaW5hbFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCisgICAgc3RhdGlj
IFJlZjxEaWN0YXRpb25NYXJrZXJEZXRhaWxzPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvcmlnaW5h
bFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERpY3RhdGlvbk1hcmtlckRldGFpbHMob3JpZ2luYWxUZXh0LCBkaWN0YXRp
b25Db250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbk1hcmtl
ckRldGFpbHMob3JpZ2luYWxUZXh0LCBkaWN0YXRpb25Db250ZXh0KSk7CiAgICAgfQogICAgIGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbFRleHQ7
IH0KICAgICB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kaWN0
YXRpb25Db250ZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKaW5kZXggMTg1NGZkMi4uZDY0YjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCisg
ICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUp
KTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmgKaW5kZXggMTBmNjE1NC4uZTk5ZTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtNDgsMjEgKzQ4LDIxIEBAIHB1YmxpYzoKICAgICBl
bnVtIEVBZGRTdHlsZWRFbGVtZW50IHsgQWRkU3R5bGVkRWxlbWVudCwgRG9Ob3RBZGRTdHlsZWRF
bGVtZW50IH07CiAgICAgdHlwZWRlZiBib29sICgqSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5j
dGlvbikoY29uc3QgRWxlbWVudCopOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHls
ZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSog
c3R5bGUsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0ZXMsIEVQ
cm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQorICAgIHN0YXRpYyBSZWY8QXBw
bHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdT
dHlsZSogc3R5bGUsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJpYnV0
ZXMsIEVQcm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUs
IGFjdGlvbiwgbGV2ZWwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbHlTdHls
ZUNvbW1hbmQoZG9jdW1lbnQsIHN0eWxlLCBhY3Rpb24sIGxldmVsKSk7CiAgICAgfQotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEFwcGx5U3R5bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNv
bnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0
dHJpYnV0ZXMsIEVQcm9wZXJ0eUxldmVsIGxldmVsID0gUHJvcGVydHlEZWZhdWx0KQorICAgIHN0
YXRpYyBSZWY8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9z
aXRpb24mIGVuZCwgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRl
cywgRVByb3BlcnR5TGV2ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGx5U3R5bGVDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwg
c3RhcnQsIGVuZCwgYWN0aW9uLCBsZXZlbCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIHN0YXJ0LCBlbmQsIGFjdGlvbiwg
bGV2ZWwpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSA9IGZh
bHNlLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQorICAg
IHN0YXRpYyBSZWY8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSA9IGZhbHNlLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVk
aXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBcHBseVN0eWxlQ29tbWFuZChlbGVtZW50LCByZW1vdmVPbmx5LCBhY3Rpb24pKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbHlTdHlsZUNvbW1hbmQoZWxlbWVudCwgcmVt
b3ZlT25seSwgYWN0aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGx5U3R5
bGVDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUq
IHN0eWxlLCBJc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRv
UmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvbkNoYW5nZUF0dHJp
YnV0ZXMpCisgICAgc3RhdGljIFJlZjxBcHBseVN0eWxlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgSXNJbmxpbmVFbGVtZW50VG9S
ZW1vdmVGdW5jdGlvbiBpc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uLCBFZGl0QWN0aW9u
IGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGlzSW5s
aW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24sIGFjdGlvbikpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBcHBseVN0eWxlQ29tbWFuZChkb2N1bWVudCwgc3R5bGUsIGlzSW5saW5lRWxl
bWVudFRvUmVtb3ZlRnVuY3Rpb24sIGFjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgKaW5kZXggNDM4
ZTE1YS4uN2NlZDk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Js
b2NrcXVvdGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2Nr
cXVvdGVDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBCcmVha0Jsb2NrcXVvdGVDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5k
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCcmVha0Jsb2NrcXVvdGVDb21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8QnJlYWtCbG9ja3F1
b3RlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQnJlYWtCbG9ja3F1b3RlQ29tbWFuZChkb2N1bWVudCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmVha0Jsb2NrcXVvdGVDb21tYW5kKGRvY3VtZW50
KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzNzJiNTU3Li42ZTAzM2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNzYsMTAgKzc2
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBFZGl0Q29tbWFuZENvbXBvc2l0
aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LAorUmVmPEVkaXRDb21tYW5kQ29tcG9zaXRp
b24+IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsCiAg
ICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRWRpdENvbW1hbmRDb21wb3NpdGlvbihkb2N1bWVudCwg
c3RhcnRpbmdTZWxlY3Rpb24sIGVuZGluZ1NlbGVjdGlvbiwgZWRpdEFjdGlvbikpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEVkaXRDb21tYW5kQ29tcG9zaXRpb24oZG9jdW1lbnQsIHN0YXJ0
aW5nU2VsZWN0aW9uLCBlbmRpbmdTZWxlY3Rpb24sIGVkaXRBY3Rpb24pKTsKIH0KIAogRWRpdENv
bW1hbmRDb21wb3NpdGlvbjo6RWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCA1ZmY4
ODYyLi5jMmI0ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIEVkaXRDb21t
YW5kQ29tcG9zaXRpb24gOiBwdWJsaWMgVW5kb1N0ZXAgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgRWRpdEFjdGlvbik7
CisgICAgc3RhdGljIFJlZjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjcmVhdGUoRG9jdW1lbnQm
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEVkaXRB
Y3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVhcHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DcmVh
dGVMaW5rQ29tbWFuZC5oCmluZGV4IDkyYjNkYzcuLjg4Y2VjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDcmVhdGVMaW5rQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVF
ZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3JlYXRlTGlua0Nv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbGlua1VSTCkK
KyAgICBzdGF0aWMgUmVmPENyZWF0ZUxpbmtDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGxpbmtVUkwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENyZWF0ZUxpbmtDb21tYW5kKGRvY3VtZW50LCBsaW5rVVJMKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENyZWF0ZUxpbmtDb21tYW5kKGRvY3VtZW50LCBsaW5rVVJMKSk7
CiAgICAgfQogCiAgICAgYm9vbCBpc0NyZWF0ZUxpbmtDb21tYW5kKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCA4ZDFmNjczLi4yNDkxZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsOSArMzQsOSBA
QCBjbGFzcyBUZXh0OwogCiBjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggMTk2NjdkMC4uZTViZjUxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAg
LTM0LDEzICszNCwxMyBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBz
dGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
ID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6
ZU1hcmt1cCkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWxldGVTZWxlY3Rpb25D
b21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNt
YXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJv
b2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNl
LCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJv
b2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1
ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0g
ZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFy
a3VwKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcAppbmRleCA4ODg2NmU4Li5jMTczZGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJpdmF0
ZToKIAogY2xhc3MgRGljdGF0aW9uTWFya2VyU3VwcGxpZXIgOiBwdWJsaWMgVGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaWN0YXRp
b25NYXJrZXJTdXBwbGllcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2
ZT4mIGFsdGVybmF0aXZlcykKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbk1hcmtlclN1cHBsaWVy
PiBjcmVhdGUoY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJuYXRpdmVz
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaWN0YXRpb25NYXJrZXJTdXBw
bGllcihhbHRlcm5hdGl2ZXMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0
aW9uTWFya2VyU3VwcGxpZXIoYWx0ZXJuYXRpdmVzKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2
b2lkIGFkZE1hcmtlcnNUb1RleHROb2RlKFRleHQqIHRleHROb2RlLCB1bnNpZ25lZCBvZmZzZXRP
Zkluc2VydGlvbiwgY29uc3QgU3RyaW5nJiB0ZXh0VG9CZUluc2VydGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaAppbmRleCBkNGY2ZDQ1Li4yMmZlYjE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuaApAQCAtMzksOSArMzksOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgaW5zZXJ0VGV4dChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcywg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogICAgIHZpcnR1YWwgYm9vbCBpc0RpY3RhdGlvbkNv
bW1hbmQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiBwcml2YXRlOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERpY3RhdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJu
YXRpdmVzKQorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0
ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERpY3RhdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHRleHQsIGFsdGVybmF0aXZlcykpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25Db21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBhbHRlcm5hdGl2ZXMpKTsKICAgICB9CiAKICAgICBEaWN0YXRpb25Db21tYW5kKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+
JiBhbHRlcm5hdGl2ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXgg
OGVlNzU1MC4uOTU0MWNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCkBA
IC03MCwyOSArNzAsMjkgQEAgcHVibGljOgogICAgIGVudW0gU2hvdWxkRXh0cmFjdE1hdGNoaW5n
U3R5bGUgeyBFeHRyYWN0TWF0Y2hpbmdTdHlsZSwgRG9Ob3RFeHRyYWN0TWF0Y2hpbmdTdHlsZSB9
OwogICAgIHN0YXRpYyBmbG9hdCBOb0ZvbnREZWx0YTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEVkaXRpbmdTdHlsZT4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEVkaXRpbmdTdHlsZT4gY3Jl
YXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFZGl0aW5nU3R5bGUpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gY3JlYXRlKE5vZGUqIG5vZGUsIFBy
b3BlcnRpZXNUb0luY2x1ZGUgcHJvcGVydGllc1RvSW5jbHVkZSA9IE9ubHlFZGl0aW5nSW5oZXJp
dGFibGVQcm9wZXJ0aWVzKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxlPiBjcmVhdGUoTm9k
ZSogbm9kZSwgUHJvcGVydGllc1RvSW5jbHVkZSBwcm9wZXJ0aWVzVG9JbmNsdWRlID0gT25seUVk
aXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEVkaXRpbmdTdHlsZShub2RlLCBwcm9wZXJ0aWVzVG9JbmNsdWRlKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZShub2RlLCBwcm9wZXJ0aWVzVG9JbmNs
dWRlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBjcmVh
dGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRp
ZXNUb0luY2x1ZGUgPSBPbmx5RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllcykKKyAgICBzdGF0
aWMgUmVmPEVkaXRpbmdTdHlsZT4gY3JlYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgUHJv
cGVydGllc1RvSW5jbHVkZSBwcm9wZXJ0aWVzVG9JbmNsdWRlID0gT25seUVkaXRpbmdJbmhlcml0
YWJsZVByb3BlcnRpZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVkaXRp
bmdTdHlsZShwb3NpdGlvbiwgcHJvcGVydGllc1RvSW5jbHVkZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBFZGl0aW5nU3R5bGUocG9zaXRpb24sIHByb3BlcnRpZXNUb0luY2x1ZGUp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IGNyZWF0ZShj
b25zdCBTdHlsZVByb3BlcnRpZXMqIHN0eWxlKQorICAgIHN0YXRpYyBSZWY8RWRpdGluZ1N0eWxl
PiBjcmVhdGUoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZShzdHlsZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gY3JlYXRlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPEVkaXRpbmdTdHlsZT4gY3JlYXRl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRWRpdGluZ1N0eWxlKHByb3BlcnR5SUQsIHZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVkaXRpbmdTdHlsZShwcm9wZXJ0eUlE
LCB2YWx1ZSkpOwogICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIH5FZGl0aW5nU3R5bGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA1ZDczNDE3Li43ZDg0MDAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC04OTUsNyArODk1LDcgQEAgdm9pZCBFZGl0b3I6OmFw
cGx5U3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246OlJhbmdlU2VsZWN0
aW9uOgogICAgICAgICBpZiAoc3R5bGUpCi0gICAgICAgICAgICBhcHBseUNvbW1hbmQoQXBwbHlT
dHlsZUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHls
ZSkuZ2V0KCksIGVkaXRpbmdBY3Rpb24pKTsKKyAgICAgICAgICAgIGFwcGx5Q29tbWFuZChBcHBs
eVN0eWxlQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6Y3JlYXRlKHN0
eWxlKS5wdHIoKSwgZWRpdGluZ0FjdGlvbikpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC05MTQsNyArOTE0LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQ
cm9wZXJ0aWVzKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW8KICAgICBjYXNlIFZpc2li
bGVTZWxlY3Rpb246OkNhcmV0U2VsZWN0aW9uOgogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6
UmFuZ2VTZWxlY3Rpb246CiAgICAgICAgIGlmIChzdHlsZSkKLSAgICAgICAgICAgIGFwcGx5Q29t
bWFuZChBcHBseVN0eWxlQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIEVkaXRpbmdTdHlsZTo6
Y3JlYXRlKHN0eWxlKS5nZXQoKSwgZWRpdGluZ0FjdGlvbiwgQXBwbHlTdHlsZUNvbW1hbmQ6OkZv
cmNlQmxvY2tQcm9wZXJ0aWVzKSk7CisgICAgICAgICAgICBhcHBseUNvbW1hbmQoQXBwbHlTdHls
ZUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSku
cHRyKCksIGVkaXRpbmdBY3Rpb24sIEFwcGx5U3R5bGVDb21tYW5kOjpGb3JjZUJsb2NrUHJvcGVy
dGllcykpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Gb3JtYXRCbG9ja0NvbW1hbmQuaAppbmRleCBiNDVkZWQzLi44YzAxYzAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmgKQEAgLTQwLDkgKzQwLDkgQEAg
Y2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCiBjbGFzcyBGb3JtYXRCbG9ja0NvbW1hbmQgOiBwdWJs
aWMgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGb3JtYXRCbG9ja0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCisgICAgc3RhdGljIFJlZjxGb3JtYXRCbG9ja0NvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvcm1hdEJsb2NrQ29tbWFu
ZChkb2N1bWVudCwgdGFnTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGb3Jt
YXRCbG9ja0NvbW1hbmQoZG9jdW1lbnQsIHRhZ05hbWUpKTsKICAgICB9CiAgICAgCiAgICAgdmly
dHVhbCBib29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCmluZGV4IGRl
OTJhNzAuLjkyYTQyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50
T3V0ZGVudENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRl
bnRDb21tYW5kLmgKQEAgLTM0LDkgKzM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
SW5kZW50T3V0ZGVudENvbW1hbmQgOiBwdWJsaWMgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kIHsK
IHB1YmxpYzoKICAgICBlbnVtIEVJbmRlbnRUeXBlIHsgSW5kZW50LCBPdXRkZW50IH07Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SW5kZW50T3V0ZGVudENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIEVJbmRlbnRUeXBlIHR5cGUsIGludCBtYXJnaW5JblBpeGVscyA9IDApCisgICAg
c3RhdGljIFJlZjxJbmRlbnRPdXRkZW50Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgRUluZGVudFR5cGUgdHlwZSwgaW50IG1hcmdpbkluUGl4ZWxzID0gMCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZW50T3V0ZGVudENvbW1hbmQoZG9jdW1lbnQsIHR5
cGUsIG1hcmdpbkluUGl4ZWxzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluZGVu
dE91dGRlbnRDb21tYW5kKGRvY3VtZW50LCB0eXBlLCBtYXJnaW5JblBpeGVscykpOwogICAgIH0K
IAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKaW5kZXggZjI4NjRmNS4uMzEwYmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDkgKzM0LDkg
QEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1Ymxp
YyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oCmluZGV4IDcwMGE5NjguLjVmOGFj
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFu
ZC5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zZXJ0TGluZUJyZWFrQ29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPEluc2VydExpbmVCcmVha0NvbW1hbmQ+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEluc2VydExpbmVCcmVha0NvbW1hbmQoZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZChkb2N1bWVudCkpOwogICAgIH0K
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaAppbmRleCAxYjAxZGM1Li5kNGI3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0zMiwxMCArMzIsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1
YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9J
bnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICBzdGF0aWMg
UmVmPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCiAgICAgICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAg
IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKaW5kZXggYjI5N2QwYS4uMTI4MWYwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmgKQEAgLTM0LDkgKzM0LDkgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBj
bGFzcyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVk
aXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1Vu
cXVvdGVkQXJlYSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEgPSBmYWxzZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNl
RGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEp
KTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmgKaW5kZXggMzlmMWY3NS4uZjEwZDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDgsMTUgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICAg
ICAgUmViYWxhbmNlQWxsV2hpdGVzcGFjZXMKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwKKyAgICBzdGF0aWMg
UmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCiAgICAgICAgIFJl
YmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1do
aXRlc3BhY2VzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3Vt
ZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVm
UHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgc3Rh
dGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRp
b25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBw
bGllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChk
b2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21t
YW5kLmgKaW5kZXggNWE1ZGQ3Mi4uNjM4ODI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaApAQCAtMzIsOSArMzIs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lcmdlSWRlbnRpY2FsRWxlbWVudHND
b21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8RWxlbWVudD4gZWxlbWVudDEsIFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudDIpCisgICAg
c3RhdGljIFJlZjxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8RWxlbWVudD4gZWxlbWVudDEsIFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudDIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21t
YW5kKGVsZW1lbnQxLCBlbGVtZW50MikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZChlbGVtZW50MSwgZWxlbWVudDIpKTsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuaAppbmRleCAzNjdhZjY0Li5lZDY5NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgKQEAgLTU3LDkgKzU3LDkg
QEAgcHJpdmF0ZToKICAgICBlbnVtIFR5cGUgeyBJbmhlcml0ZWRMaXN0VHlwZSwgT3JkZXJlZExp
c3QsIFVub3JkZXJlZExpc3QgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlPiBpbmNyZWFz
ZVNlbGVjdGlvbkxpc3RMZXZlbChEb2N1bWVudCosIFR5cGUpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBUeXBlIHR5cGUpCisgICAgc3RhdGljIFJlZjxJbmNyZWFzZVNlbGVjdGlvbkxp
c3RMZXZlbENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFR5cGUgdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxDb21tYW5kKGRvY3VtZW50LCB0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsQ29tbWFuZChkb2N1bWVudCwgdHlwZSkpOwogICAg
IH0KICAgICAKICAgICBJbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQoRG9jdW1lbnQm
LCBUeXBlKTsKQEAgLTc3LDkgKzc3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlY3Jl
YXNlU2VsZWN0aW9uTGlzdExldmVsKERvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8RGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQoZG9jdW1l
bnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVjcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxDb21tYW5kKGRvY3VtZW50KSk7CiAgICAgfQogCiAgICAgZXhwbGljaXQgRGVjcmVhc2VT
ZWxlY3Rpb25MaXN0TGV2ZWxDb21tYW5kKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggMTQ5NDNiNS4uYWMwOTk5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMzQs
OSArMzQsOSBAQCBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogCiBjbGFzcyBNb3ZlU2VsZWN0aW9u
Q29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8TW92ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIGJvb2wg
c21hcnRJbnNlcnQgPSBmYWxzZSwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlKQorICAgIHN0YXRp
YyBSZWY8TW92ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIGJvb2wgc21hcnRJbnNl
cnQgPSBmYWxzZSwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNb3ZlU2VsZWN0aW9uQ29tbWFuZChmcmFnbWVudCwgcG9zaXRpb24s
IHNtYXJ0SW5zZXJ0LCBzbWFydERlbGV0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNb3ZlU2VsZWN0aW9uQ29tbWFuZChmcmFnbWVudCwgcG9zaXRpb24sIHNtYXJ0SW5zZXJ0LCBz
bWFydERlbGV0ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oCmluZGV4IDAwNDU3ZmQuLmUzMjMwMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuaApAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBTdHlsZWRFbGVtZW50OwogCiBjbGFzcyBSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZD4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxTdHlsZWRFbGVtZW50PiBlbGVtZW50LCBD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPFN0eWxlZEVsZW1l
bnQ+IGVsZW1lbnQsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZChkb2N1bWVudCwgZWxlbWVu
dCwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlQ1NTUHJv
cGVydHlDb21tYW5kKGRvY3VtZW50LCBlbGVtZW50LCBwcm9wZXJ0eSkpOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmgKaW5k
ZXggZjAxNGFkZi4uY2U4NjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVGb3JtYXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVG
b3JtYXRDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW1vdmVGb3JtYXRDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdmVGb3JtYXRDb21tYW5kPiBjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlRm9ybWF0Q29tbWFu
ZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUmVtb3ZlRm9ybWF0Q29tbWFuZChkb2N1bWVudCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdmVGb3JtYXRDb21tYW5kKGRvY3VtZW50KSk7CiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oCmluZGV4
IGI0YjEyYzEuLjE4MWU5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVD
b21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBS
ZW1vdmVOb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNv
bW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdmVOb2RlQ29tbWFuZChub2RlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZW1vdmVOb2RlQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
aAppbmRleCBkYjUyMTlkLi40YjkxOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCkBAIC0z
Miw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAg
ICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9k
ZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9kZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21t
YW5kLmgKaW5kZXggZmFhMmRhNC4uMTUxM2FkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaApAQCAtNDAsOSArNDAsOSBAQCBj
bGFzcyBIVE1MRWxlbWVudDsKIC8vIE1vcmUgYWNjdXJhdGVseSwgdGhpcyBpcyBSZXBsYWNlRWxl
bWVudFdpdGhTcGFuUHJlc2VydmluZ0NoaWxkcmVuQW5kQXR0cmlidXRlc0NvbW1hbmQKIGNsYXNz
IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCisgICAgc3RhdGljIFJl
ZjxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kKGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQoZWxlbWVudCkpOwogICAgIH0KIAogICAgIEhU
TUxFbGVtZW50KiBzcGFuRWxlbWVudCgpIHsgcmV0dXJuIG1fc3BhbkVsZW1lbnQuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApp
bmRleCBmNzFiMTFjLi41NjM2ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIAogICAg
IHR5cGVkZWYgdW5zaWduZWQgQ29tbWFuZE9wdGlvbnM7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9u
cywgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUpCisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywg
RWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVu
dCwgb3B0aW9ucywgYWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7
CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
ZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXROb2Rl
QXR0cmlidXRlQ29tbWFuZC5oCmluZGV4IDc1ZjdlODAuLjNjNjk1NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgKQEAgLTMzLDkgKzMz
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXROb2RlQXR0cmlidXRlQ29tbWFu
ZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kKGVsZW1lbnQsIGF0dHJpYnV0ZSwg
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2V0Tm9kZUF0dHJpYnV0ZUNv
bW1hbmQoZWxlbWVudCwgYXR0cmlidXRlLCB2YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0U2VsZWN0aW9uQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZjlkN2Y0
Yi4uNThmMzA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rp
b25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21t
YW5kLmgKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZXRT
ZWxlY3Rpb25Db21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTZXRTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zKQorICAgIHN0YXRpYyBSZWY8U2V0U2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRl
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2V0U2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIG9wdGlvbnMpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2V0U2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIG9wdGlvbnMp
KTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TaW1wbGlm
eU1hcmt1cENvbW1hbmQuaAppbmRleCBkMDlkZTI1Li45MWY4MDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NpbXBsaWZ5TWFya3VwQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTaW1wbGlmeU1hcmt1cENvbW1hbmQgOiBwdWJs
aWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNpbXBsaWZ5TWFya3VwQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgTm9kZSog
Zmlyc3ROb2RlLCBOb2RlKiBub2RlQWZ0ZXJMYXN0KQorICAgIHN0YXRpYyBSZWY8U2ltcGxpZnlN
YXJrdXBDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBOb2RlKiBmaXJzdE5vZGUs
IE5vZGUqIG5vZGVBZnRlckxhc3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNpbXBsaWZ5TWFya3VwQ29tbWFuZChkb2N1bWVudCwgZmlyc3ROb2RlLCBub2RlQWZ0ZXJMYXN0
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNpbXBsaWZ5TWFya3VwQ29tbWFuZChk
b2N1bWVudCwgZmlyc3ROb2RlLCBub2RlQWZ0ZXJMYXN0KSk7CiAgICAgfQogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDdjZTI5NjguLmRlNzNj
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTU3LDE2ICs1
NywxNiBAQCBTcGVsbENoZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKIH0KIAogLy8g
c3RhdGljCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6
Y3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFRleHRDaGVj
a2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1Jh
bmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSkKK1JlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzayB0
ZXh0Q2hlY2tpbmdPcHRpb25zLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdy
YXBoUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGNoZWNraW5nUmFuZ2UpOwogICAgIEFTU0VSVChwYXJh
Z3JhcGhSYW5nZSk7CiAKICAgICBTdHJpbmcgdGV4dCA9IGNoZWNraW5nUmFuZ2UtPnRleHQoKTsK
ICAgICBpZiAoIXRleHQubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBQYXNzUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QoY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFu
Z2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMsIHByb2Nlc3NUeXBlKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlbGxDaGVja1JlcXVlc3QoY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBo
UmFuZ2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMsIHByb2Nlc3NUeXBlKSk7CiB9CiAKIGNv
bnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiBTcGVsbENoZWNrUmVxdWVzdDo6ZGF0YSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAppbmRleCA2MzUzZjcwLi43Yjli
OWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgY2xhc3MgU3BlbGxDaGVja2VyOwogCiBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdCA6IHB1Ymxp
YyBUZXh0Q2hlY2tpbmdSZXF1ZXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
cGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlKFRleHRDaGVja2luZ1R5cGVNYXNrLCBUZXh0Q2hlY2tp
bmdQcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1JlZlB0
cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOworICAgIHN0YXRpYyBSZWZQdHI8U3BlbGxDaGVja1Jl
cXVlc3Q+IGNyZWF0ZShUZXh0Q2hlY2tpbmdUeXBlTWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5
cGUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBh
cmFncmFwaFJhbmdlKTsKICAgICB2aXJ0dWFsIH5TcGVsbENoZWNrUmVxdWVzdCgpOwogCiAgICAg
UGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tp
bmdSYW5nZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0Nv
cnJlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3Jy
ZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggYTM2MzllNS4uNmZlNzEwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCkBAIC00
Myw5ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIFRoaXMgaW5mb3JtYXRpb24gaXMg
bmVlZGVkIGJ5IHNwZWxsIGNoZWNraW5nIHNlcnZpY2UgdG8gdXBkYXRlIHVzZXIgc3BlY2lmaWMg
ZGF0YS4KIGNsYXNzIFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kIDogcHVibGlj
IFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVs
bGluZ0NvcnJlY3Rpb25SZWNvcmRVbmRvQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKKyAg
ICBzdGF0aWMgUmVmPFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGNvcnJlY3RlZCwgY29uc3QgU3RyaW5n
JiBjb3JyZWN0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVsbGlu
Z0NvcnJlY3Rpb25SZWNvcmRVbmRvQ29tbWFuZChkb2N1bWVudCwgY29ycmVjdGVkLCBjb3JyZWN0
aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWxsaW5nQ29ycmVjdGlvblJl
Y29yZFVuZG9Db21tYW5kKGRvY3VtZW50LCBjb3JyZWN0ZWQsIGNvcnJlY3Rpb24pKTsKICAgICB9
CiBwcml2YXRlOgogICAgIFNwZWxsaW5nQ29ycmVjdGlvblJlY29yZFVuZG9Db21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29y
cmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3Jy
ZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rp
b25Db21tYW5kLmgKaW5kZXggNTE4NzFiNS4uMDQ1MWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmgKQEAgLTMzLDkgKzMzLDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5k
IDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0JlQ29ycmVjdGVkLCBjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pCisgICAgc3Rh
dGljIFJlZjxTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0JlQ29ycmVjdGVkLCBjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQocmFu
Z2VUb0JlQ29ycmVjdGVkLCBjb3JyZWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQocmFuZ2VUb0JlQ29ycmVjdGVkLCBjb3JyZWN0
aW9uKSk7CiAgICAgfQogcHJpdmF0ZToKICAgICBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKFBh
c3NSZWZQdHI8UmFuZ2U+IHJhbmdlVG9CZUNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgKaW5k
ZXggMGVhZjA2ZC4uNzZiMzAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGxpdEVsZW1lbnRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTcGxpdEVsZW1lbnRDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGxpdEVsZW1lbnRDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHNwbGl0UG9pbnRD
aGlsZCkKKyAgICBzdGF0aWMgUmVmPFNwbGl0RWxlbWVudENvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPEVsZW1lbnQ+IGVsZW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gc3BsaXRQb2ludENoaWxkKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdEVsZW1lbnRDb21tYW5kKGVs
ZW1lbnQsIHNwbGl0UG9pbnRDaGlsZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
cGxpdEVsZW1lbnRDb21tYW5kKGVsZW1lbnQsIHNwbGl0UG9pbnRDaGlsZCkpOwogICAgIH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQu
aAppbmRleCA1ZTA2MmE5Li43MWEwMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGxpdFRleHROb2RlQ29tbWFuZC5oCkBAIC0zNCw5ICszNCw5IEBAIGNsYXNzIFRleHQ7CiAKIGNs
YXNzIFNwbGl0VGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGxpdFRleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgaW50IG9mZnNldCkKKyAgICBzdGF0aWMgUmVmPFNwbGl0
VGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCBpbnQgb2Zmc2V0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdFRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BsaXRUZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5n
RWxlbWVudENvbW1hbmQuaAppbmRleCA3MDNhOTA5Li5iMDE0ZWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxl
bWVudENvbW1hbmQuaApAQCAtMzIsOSArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQgOiBwdWJsaWMgQ29tcG9z
aXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwbGl0VGV4
dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIGludCBvZmZzZXQpCisgICAgc3RhdGljIFJlZjxTcGxpdFRleHROb2RlQ29udGFpbmluZ0Vs
ZW1lbnRDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCBpbnQgb2Zmc2V0KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGxpdFRleHROb2RlQ29udGFpbmlu
Z0VsZW1lbnRDb21tYW5kKG5vZGUsIG9mZnNldCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kKG5vZGUsIG9mZnNldCkp
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmgK
aW5kZXggYTk2MmFmZi4uZWFiODI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmgKQEAgLTg1LDE0ICs4NSwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxUeXBpbmdDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBFVHlwaW5nQ29tbWFuZCBjb21tYW5kLCBjb25zdCBTdHJpbmcmIHRleHQgPSAiIiwgT3B0
aW9ucyBvcHRpb25zID0gMCwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQ2hhcmFjdGVy
R3JhbnVsYXJpdHkpCisgICAgc3RhdGljIFJlZjxUeXBpbmdDb21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBFVHlwaW5nQ29tbWFuZCBjb21tYW5kLCBjb25zdCBTdHJpbmcmIHRleHQg
PSAiIiwgT3B0aW9ucyBvcHRpb25zID0gMCwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0g
Q2hhcmFjdGVyR3JhbnVsYXJpdHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFR5cGluZ0NvbW1hbmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIGdyYW51bGFy
aXR5LCBUZXh0Q29tcG9zaXRpb25Ob25lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFR5cGluZ0NvbW1hbmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIGdyYW51bGFy
aXR5LCBUZXh0Q29tcG9zaXRpb25Ob25lKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8VHlwaW5nQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRVR5cGluZ0NvbW1h
bmQgY29tbWFuZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBPcHRpb25zIG9wdGlvbnMsIFRleHRDb21w
b3NpdGlvblR5cGUgY29tcG9zaXRpb25UeXBlKQorICAgIHN0YXRpYyBSZWY8VHlwaW5nQ29tbWFu
ZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRVR5cGluZ0NvbW1hbmQgY29tbWFuZCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBPcHRpb25zIG9wdGlvbnMsIFRleHRDb21wb3NpdGlvblR5cGUgY29t
cG9zaXRpb25UeXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUeXBpbmdD
b21tYW5kKGRvY3VtZW50LCBjb21tYW5kLCB0ZXh0LCBvcHRpb25zLCBDaGFyYWN0ZXJHcmFudWxh
cml0eSwgY29tcG9zaXRpb25UeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5
cGluZ0NvbW1hbmQoZG9jdW1lbnQsIGNvbW1hbmQsIHRleHQsIG9wdGlvbnMsIENoYXJhY3Rlckdy
YW51bGFyaXR5LCBjb21wb3NpdGlvblR5cGUpKTsKICAgICB9CiAKICAgICBUeXBpbmdDb21tYW5k
KERvY3VtZW50JiwgRVR5cGluZ0NvbW1hbmQsIGNvbnN0IFN0cmluZyYgdGV4dCwgT3B0aW9ucywg
VGV4dEdyYW51bGFyaXR5LCBUZXh0Q29tcG9zaXRpb25UeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVW5saW5rQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9VbmxpbmtDb21tYW5kLmgKaW5kZXggMWRiYjllYS4uNmMyNGE1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9VbmxpbmtDb21tYW5kLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBVbmxpbmtDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5k
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVbmxpbmtDb21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8VW5saW5rQ29tbWFuZD4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
VW5saW5rQ29tbWFuZChkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBV
bmxpbmtDb21tYW5kKGRvY3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmgK
aW5kZXggMWE5NWQ2MC4uNDgxZjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oCkBAIC0zNCw5ICszNCw5IEBA
IGNsYXNzIEhUTUxFbGVtZW50OwogCiBjbGFzcyBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCkKKyAgICBzdGF0aWMgUmVmPFdyYXBDb250ZW50c0luRHVtbXlTcGFu
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKGVs
ZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kKGVsZW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKaW5kZXggZWRkZjA1Mi4u
NTYxMTk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNv
bW1hbmRJT1MuaApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERpY3RhdGlvbkNvbW1hbmRJT1MgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpY3RhdGlvbkNvbW1hbmRJT1M+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIFBhc3NPd25QdHI8VmVjdG9yPFZlY3RvcjxTdHJpbmc+ID4gPiBk
aWN0YXRpb25QaHJhc2UsIFJldGFpblB0cjxpZD4gbWV0YWRhdGEpCisgICAgc3RhdGljIFJlZjxE
aWN0YXRpb25Db21tYW5kSU9TPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzT3duUHRy
PFZlY3RvcjxWZWN0b3I8U3RyaW5nPiA+ID4gZGljdGF0aW9uUGhyYXNlLCBSZXRhaW5QdHI8aWQ+
IG1ldGFkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaWN0YXRpb25D
b21tYW5kSU9TKGRvY3VtZW50LCBkaWN0YXRpb25QaHJhc2UsIG1ldGFkYXRhKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkNvbW1hbmRJT1MoZG9jdW1lbnQsIGRpY3Rh
dGlvblBocmFzZSwgbWV0YWRhdGEpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+RGljdGF0
aW9uQ29tbWFuZElPUygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9i
LmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAppbmRleCBkZmZjYWQ2Li40OTU4M2Vm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2IuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkJsb2JQ
YXJ0LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVVJMUmVnaXN0
cnkuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ0LDI1ICs0Mywy
NSBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBCbG9iIDogcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgUmVmQ291bnRl
ZDxCbG9iPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKCkK
KyAgICBzdGF0aWMgUmVmPEJsb2I+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsb2IpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVhdGUoVmVjdG9yPGNoYXI+IGRh
dGEsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCisgICAgc3RhdGljIFJlZjxCbG9iPiBjcmVh
dGUoVmVjdG9yPGNoYXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IoV1RGOjptb3ZlKGRhdGEpLCBjb250ZW50
VHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKFdURjo6bW92ZShkYXRh
KSwgY29udGVudFR5cGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBj
cmVhdGUoVmVjdG9yPEJsb2JQYXJ0PiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpCisgICAgc3RhdGljIFJlZjxCbG9iPiBjcmVhdGUoVmVjdG9yPEJsb2JQYXJ0PiBibG9iUGFy
dHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsb2IoV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2IoV1RGOjptb3ZlKGJsb2JQYXJ0cyksIGNvbnRl
bnRUeXBlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gZGVzZXJpYWxp
emUoY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgbG9uZyBsb25nIHNpemUp
CisgICAgc3RhdGljIFJlZjxCbG9iPiBkZXNlcmlhbGl6ZShjb25zdCBVUkwmIHNyY1VSTCwgY29u
c3QgU3RyaW5nJiB0eXBlLCBsb25nIGxvbmcgc2l6ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChC
bG9iOjppc05vcm1hbGl6ZWRDb250ZW50VHlwZSh0eXBlKSk7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQmxvYihkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBzcmNVUkwsIHR5cGUsIHNp
emUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYihkZXNlcmlhbGl6YXRpb25D
b250cnVjdG9yLCBzcmNVUkwsIHR5cGUsIHNpemUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5C
bG9iKCk7CkBAIC04NCw5ICs4Myw5IEBAIHB1YmxpYzoKICAgICAvLyBVUkxSZWdpc3RyYWJsZQog
ICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICBQYXNzUmVmUHRyPEJsb2I+IHNsaWNlKGxvbmcgbG9uZyBzdGFydCA9IDAsIGxvbmcgbG9uZyBl
bmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlID0gU3RyaW5nKCkpIGNvbnN0CisgICAgUmVmPEJsb2I+IHNsaWNlKGxvbmcg
bG9uZyBzdGFydCA9IDAsIGxvbmcgbG9uZyBlbmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcg
bG9uZz46Om1heCgpLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0gU3RyaW5nKCkpIGNvbnN0
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IobV9pbnRlcm5hbFVSTCwg
c3RhcnQsIGVuZCwgY29udGVudFR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QmxvYihtX2ludGVybmFsVVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSkpOwogICAgIH0KIAog
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAppbmRleCBiZDE2YTQ3Li4zNWM0ZGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGUuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBGaWxlX2gKIAogI2lu
Y2x1ZGUgIkJsb2IuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTM3LDIyICszNywyMiBAQCBjbGFzcyBVUkw7CiAKIGNsYXNzIEZp
bGUgZmluYWwgOiBwdWJsaWMgQmxvYiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICBzdGF0aWMgUmVmPEZpbGU+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEZpbGUocGF0aCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKHBhdGgp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlPiBkZXNlcmlhbGl6ZShjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgbmFtZSkKKyAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxl
KGRlc2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIHBhdGgsIHNyY1VSTCwgdHlwZSwgbmFtZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0
b3IsIHBhdGgsIHNyY1VSTCwgdHlwZSwgbmFtZSkpOwogICAgIH0KIAogICAgIC8vIENyZWF0ZSBh
IGZpbGUgd2l0aCBhIG5hbWUgZXhwb3NlZCB0byB0aGUgYXV0aG9yICh2aWEgRmlsZS5uYW1lIGFu
ZCBhc3NvY2lhdGVkIERPTSBwcm9wZXJ0aWVzKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgb25lIHBy
b3ZpZGVkIGluIHRoZSBwYXRoLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGU+IGNyZWF0ZVdp
dGhOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUpCisg
ICAgc3RhdGljIFJlZjxGaWxlPiBjcmVhdGVXaXRoTmFtZShjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKQogICAgIHsKICAgICAgICAgaWYgKG5hbWVPdmVycmlk
ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCkp
OwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCwgbmFtZU92ZXJyaWRlKSk7
CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKHBhdGgpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZShwYXRoLCBuYW1lT3ZlcnJpZGUpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5oCmluZGV4IGJiZTZkZWIuLmFmNDhkYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVMaXN0LmgKQEAgLTM3LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZpbGVMaXN0IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IFJlZkNvdW50ZWQ8RmlsZUxpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
aWxlTGlzdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlTGlzdCk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVMaXN0KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGaWxlTGlzdD4gY3JlYXRlKFZlY3RvcjxSZWZQdHI8RmlsZT4+JiYgZmlsZXMpCisgICAgc3Rh
dGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlKFZlY3RvcjxSZWZQdHI8RmlsZT4+JiYgZmlsZXMpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGVMaXN0KFdURjo6bW92ZShmaWxl
cykpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZUxpc3QoV1RGOjptb3ZlKGZp
bGVzKSkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmlsZXMuc2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCAw
NmYzMDViLi43MzE4MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAg
LTQ1LDExICs0NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBhdXRv
IHByb2dyZXNzTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
KDUwKTsKIAotUGFzc1JlZlB0cjxGaWxlUmVhZGVyPiBGaWxlUmVhZGVyOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK1JlZjxGaWxlUmVhZGVyPiBGaWxlUmVhZGVyOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBSZWZQdHI8Rmls
ZVJlYWRlcj4gZmlsZVJlYWRlcihhZG9wdFJlZihuZXcgRmlsZVJlYWRlcihjb250ZXh0KSkpOwor
ICAgIFJlZjxGaWxlUmVhZGVyPiBmaWxlUmVhZGVyID0gYWRvcHRSZWYoKm5ldyBGaWxlUmVhZGVy
KGNvbnRleHQpKTsKICAgICBmaWxlUmVhZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZXR1
cm4gZmlsZVJlYWRlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZpbGVSZWFkZXI7CiB9CiAKIEZp
bGVSZWFkZXI6OkZpbGVSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXggYzMwZTRjMC4uZjAwMmY3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRmlsZVJlYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEZpbGVSZWFkZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGVSZWFkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisgICAgc3RhdGljIFJlZjxGaWxlUmVhZGVyPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOwogCiAgICAgdmlydHVhbCB+RmlsZVJlYWRlcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmggYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmgKaW5kZXggY2QyNTM2MC4uMzAyODIxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaApAQCAtNDksOSArNDksOSBAQCB0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGaWxlUmVhZGVyU3luYyA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVSZWFkZXJTeW5jPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RmlsZVJlYWRlclN5bmM+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxGaWxlUmVhZGVy
U3luYz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZVJl
YWRlclN5bmMoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVSZWFkZXJTeW5j
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5GaWxlUmVhZGVyU3luYygpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKaW5kZXggYWUzYzk3ZC4uYTMzYzhhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCkBAIC00MSw3ICs0MSw3IEBA
IHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8SGlzdG9yeUl0ZW0+PiBIaXN0b3J5SXRlbUhhc2hTZXQ7
CiAKIGNsYXNzIEJhY2tGb3J3YXJkTGlzdCA6IHB1YmxpYyBCYWNrRm9yd2FyZENsaWVudCB7CiBw
dWJsaWM6IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gY3JlYXRlKFBh
Z2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYWNrRm9yd2FyZExpc3QocGFnZSkpOyB9
CisgICAgc3RhdGljIFJlZjxCYWNrRm9yd2FyZExpc3Q+IGNyZWF0ZShQYWdlKiBwYWdlKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IEJhY2tGb3J3YXJkTGlzdChwYWdlKSk7IH0KICAgICB2aXJ0dWFs
IH5CYWNrRm9yd2FyZExpc3QoKTsKIAogICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBkZGI5OGM3Li4zODAwMTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC02MywxOCArNjMsMTggQEAg
Y2xhc3MgSGlzdG9yeUl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIaXN0b3J5SXRlbT4gewogICAg
IGZyaWVuZCBjbGFzcyBQYWdlQ2FjaGU7CiAKIHB1YmxpYzogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBIaXN0b3J5SXRl
bSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlKQorICAgIHN0YXRpYyBSZWY8SGlz
dG9yeUl0ZW0+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlzdG9yeUl0ZW0pOyB9
CisgICAgc3RhdGljIFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIaXN0b3J5SXRlbSh1cmxTdHJpbmcsIHRpdGxlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEhpc3RvcnlJdGVtKHVybFN0cmluZywgdGl0bGUpKTsKICAgICB9Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBhbHRlcm5hdGVUaXRsZSkKKyAg
ICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYWx0ZXJuYXRlVGl0bGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhpc3RvcnlJdGVtKHVybFN0cmluZywgdGl0
bGUsIGFsdGVybmF0ZVRpdGxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpc3Rv
cnlJdGVtKHVybFN0cmluZywgdGl0bGUsIGFsdGVybmF0ZVRpdGxlKSk7CiAgICAgfQotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIHBhcmVudCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKKyAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIHBhcmVudCwgY29uc3QgU3RyaW5nJiB0
aXRsZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGlzdG9yeUl0ZW0odXJs
LCB0YXJnZXQsIHBhcmVudCwgdGl0bGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlzdG9yeUl0ZW0odXJsLCB0YXJnZXQsIHBhcmVudCwgdGl0bGUpKTsKICAgICB9CiAgICAgCiAg
ICAgV0VCQ09SRV9FWFBPUlQgfkhpc3RvcnlJdGVtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKaW5k
ZXggMzZmYzgzNS4uZDQ1OWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01V
UkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcApAQCAtMzgsMjAgKzM4
LDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxET01VUkw+IERPTVVS
TDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGJhc2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKSAKK1JlZjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRE9NVVJMKHVybCwgYmFzZSwgZWMpKTsgCisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRE9NVVJMKHVybCwgYmFzZSwgZWMpKTsKIH0KIAotUGFzc1JlZlB0cjxET01VUkw+IERP
TVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBET01VUkwqIGJhc2UsIEV4Y2Vw
dGlvbkNvZGUmIGVjKSAKK1JlZjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBET01VUkwqIGJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VS
VChiYXNlKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVVSTCh1cmwsICpiYXNlLCBlYykp
OyAKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01VUkwodXJsLCAqYmFzZSwgZWMpKTsKIH0K
IAotUGFzc1JlZlB0cjxET01VUkw+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBF
eGNlcHRpb25Db2RlJiBlYykgCitSZWY8RE9NVVJMPiBET01VUkw6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
T01VUkwodXJsLCBlYykpOyAKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01VUkwodXJsLCBl
YykpOwogfQogCiBpbmxpbmUgRE9NVVJMOjpET01VUkwoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVVSTC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaAppbmRleCA0
ZmY2MTcyLi5iYzMwODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJVUkxVdGlscy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw5ICs0Myw5
IEBAIGNsYXNzIFVSTFJlZ2lzdHJhYmxlOwogY2xhc3MgRE9NVVJMIDogcHVibGljIFJlZkNvdW50
ZWQ8RE9NVVJMPiwgcHVibGljIFVSTFV0aWxzPERPTVVSTD4gewogCiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVVS
TD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBET01VUkwqIGJhc2UsIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01VUkw+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWY8RE9NVVJMPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHN0YXRpYyBSZWY8RE9NVVJMPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERP
TVVSTCogYmFzZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWY8RE9NVVJMPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFVSTCBocmVmKCkg
Y29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICB2b2lkIHNldEhyZWYoY29uc3QgU3RyaW5nJiB1
cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
aW5kZXggM2U1MzlhZi4uN2MxNTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgdm9pZCBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIAog
c3RhdGljIERPTVdyYXBwZXJXb3JsZCYgcGx1Z0luSW1hZ2VFbGVtZW50SXNvbGF0ZWRXb3JsZCgp
CiB7Ci0gICAgc3RhdGljIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCA9ICpET01XcmFw
cGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSkubGVha1JlZigpOworICAg
IHN0YXRpYyBET01XcmFwcGVyV29ybGQmIGlzb2xhdGVkV29ybGQgPSBET01XcmFwcGVyV29ybGQ6
OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSkubGVha1JlZigpOwogICAgIHJldHVybiBp
c29sYXRlZFdvcmxkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3Jh
ZGllbnQuaAppbmRleCA2YmZiMTZlLi5hYzA1YWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0dyYWRpZW50LmgKQEAgLTM4LDEzICszOCwxMyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBDYW52YXNHcmFkaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPENh
bnZhc0dyYWRpZW50PiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
YW52YXNHcmFkaWVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBGbG9hdFBv
aW50JiBwMSkKKyAgICAgICAgc3RhdGljIFJlZjxDYW52YXNHcmFkaWVudD4gY3JlYXRlKGNvbnN0
IEZsb2F0UG9pbnQmIHAwLCBjb25zdCBGbG9hdFBvaW50JiBwMSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNHcmFkaWVudChwMCwgcDEpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhbnZhc0dyYWRpZW50KHAwLCBwMSkpOwogICAg
ICAgICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc0dyYWRpZW50PiBjcmVhdGUo
Y29uc3QgRmxvYXRQb2ludCYgcDAsIGZsb2F0IHIwLCBjb25zdCBGbG9hdFBvaW50JiBwMSwgZmxv
YXQgcjEpCisgICAgICAgIHN0YXRpYyBSZWY8Q2FudmFzR3JhZGllbnQ+IGNyZWF0ZShjb25zdCBG
bG9hdFBvaW50JiBwMCwgZmxvYXQgcjAsIGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBmbG9hdCByMSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNHcmFkaWVu
dChwMCwgcjAsIHAxLCByMSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2Fu
dmFzR3JhZGllbnQocDAsIHIwLCBwMSwgcjEpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgR3JhZGllbnQmIGdyYWRpZW50KCkgeyByZXR1cm4gbV9ncmFkaWVudDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcAppbmRleCA2Y2JjYzgxLi43N2Nk
ZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcApA
QCAtMzMsOSArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Q2Fu
dmFzUGF0dGVybj4gQ2FudmFzUGF0dGVybjo6Y3JlYXRlKFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdl
LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSwgYm9vbCBvcmlnaW5DbGVhbikKK1JlZjxDYW52
YXNQYXR0ZXJuPiBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2Us
IGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBib29sIG9yaWdpbkNsZWFuKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQ2FudmFzUGF0dGVybihpbWFnZSwgcmVwZWF0WCwgcmVwZWF0WSwg
b3JpZ2luQ2xlYW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYW52YXNQYXR0ZXJuKGlt
YWdlLCByZXBlYXRYLCByZXBlYXRZLCBvcmlnaW5DbGVhbikpOwogfQogCiBDYW52YXNQYXR0ZXJu
OjpDYW52YXNQYXR0ZXJuKFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlLCBib29sIHJlcGVhdFgsIGJv
b2wgcmVwZWF0WSwgYm9vbCBvcmlnaW5DbGVhbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1BhdHRlcm4uaAppbmRleCA4NTNjZTI2Li5jMmE0YzI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5oCkBAIC00MCw3ICs0MCw3IEBAIHR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIENhbnZhc1BhdHRlcm4gOiBwdWJsaWMgUmVmQ291
bnRlZDxDYW52YXNQYXR0ZXJuPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q2Fu
dmFzUGF0dGVybj4gY3JlYXRlKFBhc3NSZWZQdHI8SW1hZ2U+LCBib29sIHJlcGVhdFgsIGJvb2wg
cmVwZWF0WSwgYm9vbCBvcmlnaW5DbGVhbik7CisgICAgc3RhdGljIFJlZjxDYW52YXNQYXR0ZXJu
PiBjcmVhdGUoUGFzc1JlZlB0cjxJbWFnZT4sIGJvb2wgcmVwZWF0WCwgYm9vbCByZXBlYXRZLCBi
b29sIG9yaWdpbkNsZWFuKTsKICAgICB+Q2FudmFzUGF0dGVybigpOwogCiAgICAgc3RhdGljIHZv
aWQgcGFyc2VSZXBldGl0aW9uVHlwZShjb25zdCBTdHJpbmcmLCBib29sJiByZXBlYXRYLCBib29s
JiByZXBlYXRZLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9ET01QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9ET01QYXRo
LmgKaW5kZXggNmFmOGUzNi4uZWI0YmQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRE9NUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBh
dGguaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNhbnZhc1BhdGhNZXRob2RzLmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksMTEgKzM4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIERPTVBhdGggZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01QYXRoPiwgcHVi
bGljIENhbnZhc1BhdGhNZXRob2RzIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgRE9NUGF0aCk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBj
cmVhdGUoY29uc3QgUGF0aCYgcGF0aCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBhdGgocGF0
aCkpOyB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NUGF0aD4gY3JlYXRlKGNvbnN0IERPTVBh
dGgqIHBhdGgpIHsgcmV0dXJuIGNyZWF0ZShwYXRoLT5wYXRoKCkpOyB9CisgICAgc3RhdGljIFJl
ZjxET01QYXRoPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBhdGgpOyB9Cisg
ICAgc3RhdGljIFJlZjxET01QYXRoPiBjcmVhdGUoY29uc3QgUGF0aCYgcGF0aCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBET01QYXRoKHBhdGgpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NUGF0aD4g
Y3JlYXRlKGNvbnN0IERPTVBhdGgqIHBhdGgpIHsgcmV0dXJuIGNyZWF0ZShwYXRoLT5wYXRoKCkp
OyB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXRoPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBwYXRoRGF0YSkKKyAgICBzdGF0aWMgUmVmPERPTVBhdGg+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHBhdGhEYXRhKQogICAgIHsKICAgICAgICAgUGF0aCBwYXRoOwogICAgICAgICBidWlsZFBhdGhG
cm9tU3RyaW5nKHBhdGhEYXRhLCBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCAzN2ZhNDNjLi5iNDk2YTkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwCkBAIC0zOSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxEZXRhaWxzTWFya2VyQ29udHJvbD4gRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RGV0YWlsc01hcmtlckNvbnRyb2w+IERldGFpbHNNYXJr
ZXJDb250cm9sOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGV0YWlsc01hcmtlckNvbnRyb2woZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEZXRhaWxzTWFya2VyQ29udHJvbChkb2N1bWVudCkpOwogfQogCiBEZXRhaWxz
TWFya2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgK
aW5kZXggODFjZjFjZC4uNDdhYjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGV0YWlsc01hcmtlckNvbnRyb2wgZmluYWwgOiBwdWJsaWMgSFRN
TERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNNYXJr
ZXJDb250cm9sPiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPERldGFpbHNNYXJr
ZXJDb250cm9sPiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBEZXRhaWxzTWFy
a2VyQ29udHJvbChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
aAppbmRleCA5NWNlMGYwLi4wZWJkYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAKIGNsYXNzIEF1ZGlvVHJhY2sgZmlu
YWwgOiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1Ry
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJp
dmF0ZSkKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50
KiBjbGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFjayhjbGllbnQsIHRyYWNr
UHJpdmF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrKGNsaWVu
dCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2soKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oCmluZGV4IDk1NmIwNGEu
LjczZmMwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFj
a0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgK
QEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgQXVkaW9UcmFjazsKIAogY2xhc3MgQXVkaW9UcmFja0xp
c3QgZmluYWwgOiBwdWJsaWMgVHJhY2tMaXN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8QXVkaW9UcmFja0xpc3Q+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBvd25lciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJh
Y2tMaXN0PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlv
VHJhY2tMaXN0KG93bmVyLCBjb250ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEF1ZGlvVHJhY2tMaXN0KG93bmVyLCBjb250ZXh0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkF1
ZGlvVHJhY2tMaXN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
RGF0YUN1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgKaW5kZXggYjQ5
MGY2My4uZWY1MmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRh
Q3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9EYXRhQ3VlLmgKQEAgLTQ1LDMw
ICs0NSwzMCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEYXRhQ3Vl
IGZpbmFsIDogcHVibGljIFRleHRUcmFja0N1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGF0YUN1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBBcnJheUJ1ZmZlciog
ZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIEFycmF5QnVmZmVyKiBkYXRhLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBz
dGFydCwgZW5kLCBkYXRhLCBlbXB0eVN0cmluZygpLCBlYykpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGRhdGEsIGVtcHR5U3RyaW5n
KCksIGVjKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YUN1ZT4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
CisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNv
bnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBkYXRhLCBsZW5ndGgpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5k
LCBkYXRhLCBsZW5ndGgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhQ3Vl
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIEFycmF5QnVmZmVyKiBkYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIHN0YXRpYyBSZWY8RGF0YUN1ZT4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBBcnJheUJ1ZmZlciogZGF0YSwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBkYXRhLCB0eXBlLCBlYykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQs
IGRhdGEsIHR5cGUsIGVjKSk7CiAgICAgfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YUN1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZh
bHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgc3RhdGljIFJlZjxEYXRhQ3VlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVz
ZW50YXRpb24+IHBsYXRmb3JtVmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YUN1ZShjb250ZXh0LCBzdGFydCwgZW5kLCBwbGF0
Zm9ybVZhbHVlLCB0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFDdWUo
Y29udGV4dCwgc3RhcnQsIGVuZCwgcGxhdGZvcm1WYWx1ZSwgdHlwZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERhdGFDdWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgc3RhdGljIFJlZjxE
YXRhQ3VlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
Y29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
YXRhQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIHZhbHVlLCB0eXBlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERhdGFDdWUoY29udGV4dCwgc3RhcnQsIGVuZCwgdmFsdWUsIHR5cGUp
KTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFu
ZExpbmVBUElIb3N0LmNwcAppbmRleCAyNTQ3OTBjLi5iMTNkOWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcApAQCAtNjAsOSArNjAsOSBA
QCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8Q29tbWFuZExpbmVBUElIb3N0PiBDb21tYW5kTGluZUFQSUhvc3Q6OmNyZWF0ZSgp
CitSZWY8Q29tbWFuZExpbmVBUElIb3N0PiBDb21tYW5kTGluZUFQSUhvc3Q6OmNyZWF0ZSgpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb21tYW5kTGluZUFQSUhvc3QpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENvbW1hbmRMaW5lQVBJSG9zdCk7CiB9CiAKIENvbW1hbmRMaW5lQVBJ
SG9zdDo6Q29tbWFuZExpbmVBUElIb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b21tYW5kTGluZUFQSUhvc3QuaAppbmRleCBjNDk0ZTM2Li5iMDNmMTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5oCkBAIC02MCw3ICs2MCw3IEBA
IHN0cnVjdCBFdmVudExpc3RlbmVySW5mbzsKIAogY2xhc3MgQ29tbWFuZExpbmVBUElIb3N0IDog
cHVibGljIFJlZkNvdW50ZWQ8Q29tbWFuZExpbmVBUElIb3N0PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q29tbWFuZExpbmVBUElIb3N0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMg
UmVmPENvbW1hbmRMaW5lQVBJSG9zdD4gY3JlYXRlKCk7CiAgICAgfkNvbW1hbmRMaW5lQVBJSG9z
dCgpOwogCiAgICAgdm9pZCBpbml0KEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQqIGluc3BlY3Rv
ckFnZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDM3NjAwNWQu
LjE4OGU5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC03OCw5
ICs3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEb2N1bWVudExvYWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPERvY3VtZW50TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSYXdSZXNv
dXJjZUNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKQor
ICAgICAgICBzdGF0aWMgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBk
YXRhKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudExvYWRlcihy
ZXF1ZXN0LCBkYXRhKSk7CiAgICAgICAgIH0KICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+RG9jdW1lbnRMb2FkZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Zvcm1TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmNwcAppbmRl
eCA2OTk0ODRlLi4zNTEwYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9y
bVN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmNwcApAQCAt
NDIsOSArNDIsOSBAQCBpbmxpbmUgRm9ybVN0YXRlOjpGb3JtU3RhdGUoUGFzc1JlZlB0cjxIVE1M
Rm9ybUVsZW1lbnQ+IGZvcm0sIFN0cmluZ1BhaXJWZWN0b3ImCiAgICAgbV90ZXh0RmllbGRWYWx1
ZXMuc3dhcCh0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0KTsKIH0KIAotUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+IEZvcm1TdGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtLCBT
dHJpbmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBQYXNzUmVmUHRyPERvY3Vt
ZW50PiBzb3VyY2VEb2N1bWVudCwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyIGZvcm1TdWJtaXNzaW9u
VHJpZ2dlcikKK1JlZjxGb3JtU3RhdGU+IEZvcm1TdGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SFRN
TEZvcm1FbGVtZW50PiBmb3JtLCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXNUb0Fk
b3B0LCBQYXNzUmVmUHRyPERvY3VtZW50PiBzb3VyY2VEb2N1bWVudCwgRm9ybVN1Ym1pc3Npb25U
cmlnZ2VyIGZvcm1TdWJtaXNzaW9uVHJpZ2dlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEZvcm1TdGF0ZShmb3JtLCB0ZXh0RmllbGRWYWx1ZXNUb0Fkb3B0LCBzb3VyY2VEb2N1bWVudCwg
Zm9ybVN1Ym1pc3Npb25UcmlnZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9ybVN0
YXRlKGZvcm0sIHRleHRGaWVsZFZhbHVlc1RvQWRvcHQsIHNvdXJjZURvY3VtZW50LCBmb3JtU3Vi
bWlzc2lvblRyaWdnZXIpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdGF0ZS5oCmluZGV4
IDNkMThhMjYuLmQxNzkzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3Jt
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN0YXRlLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRm9ybVN0YXRlIDogcHVi
bGljIFJlZkNvdW50ZWQ8Rm9ybVN0YXRlPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+IGNyZWF0ZShQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4s
IFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlc1RvQWRvcHQsIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOworICAgICAgICBzdGF0aWMgUmVmPEZvcm1T
dGF0ZT4gY3JlYXRlKFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiwgU3RyaW5nUGFpclZlY3Rv
ciYgdGV4dEZpZWxkVmFsdWVzVG9BZG9wdCwgUGFzc1JlZlB0cjxEb2N1bWVudD4sIEZvcm1TdWJt
aXNzaW9uVHJpZ2dlcik7CiAKICAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3Qg
eyByZXR1cm4gbV9mb3JtLmdldCgpOyB9CiAgICAgICAgIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3Im
IHRleHRGaWVsZFZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEZpZWxkVmFsdWVzOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA5Yjg3Mzg2Li5mMzhi
MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCBzdGF0aWMgVGV4dEVuY29kaW5nIGVuY29kaW5nRnJvbUFjY2VwdENoYXJzZXQo
Y29uc3QgU3RyaW5nJiBhY2NlcHRDaGFyc2V0LCBEb2N1bQogICAgIHJldHVybiBkb2N1bWVudC5p
bnB1dEVuY29kaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IEZvcm1TdWJt
aXNzaW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBjb25zdCBBdHRyaWJ1dGVzJiBh
dHRyaWJ1dGVzLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgTG9ja0hpc3RvcnkgbG9ja0hpc3Rv
cnksIEZvcm1TdWJtaXNzaW9uVHJpZ2dlciB0cmlnZ2VyKQorUmVmPEZvcm1TdWJtaXNzaW9uPiBG
b3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQXR0cmli
dXRlcyYgYXR0cmlidXRlcywgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIExvY2tIaXN0b3J5IGxv
Y2tIaXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKICAgICBBU1NFUlQo
Zm9ybSk7CiAKQEAgLTIzNiw3ICsyMzYsNyBAQCBQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBG
b3JtU3VibWlzc2lvbjo6Y3JlYXRlKEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY29uc3QgQQogICAg
IGZvcm1EYXRhLT5zZXRDb250YWluc1Bhc3N3b3JkRGF0YShjb250YWluc1Bhc3N3b3JkRGF0YSk7
CiAgICAgU3RyaW5nIHRhcmdldE9yQmFzZVRhcmdldCA9IGNvcGllZEF0dHJpYnV0ZXMudGFyZ2V0
KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQuYmFzZVRhcmdldCgpIDogY29waWVkQXR0cmlidXRlcy50
YXJnZXQoKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBGb3JtU3RhdGU6OmNy
ZWF0ZShmb3JtLCBmb3JtVmFsdWVzLCAmZG9jdW1lbnQsIHRyaWdnZXIpOwotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRm9ybVN1Ym1pc3Npb24oY29waWVkQXR0cmlidXRlcy5tZXRob2QoKSwgYWN0
aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwgZm9ybVN0YXRlLnJlbGVh
c2UoKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hpc3RvcnksIGV2ZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9ybVN1Ym1pc3Npb24oY29waWVkQXR0cmlidXRl
cy5tZXRob2QoKSwgYWN0aW9uVVJMLCB0YXJnZXRPckJhc2VUYXJnZXQsIGVuY29kaW5nVHlwZSwg
Zm9ybVN0YXRlLnJlbGVhc2UoKSwgZm9ybURhdGEucmVsZWFzZSgpLCBib3VuZGFyeSwgbG9ja0hp
c3RvcnksIGV2ZW50KSk7CiB9CiAKIFVSTCBGb3JtU3VibWlzc2lvbjo6cmVxdWVzdFVSTCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCmluZGV4IDgzMTVmMDIuLjE4
MjEwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5oCkBAIC04OSw3ICs4
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIG1fYWNjZXB0Q2hhcnNldDsKICAgICB9Owog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IGNyZWF0ZShIVE1MRm9ybUVs
ZW1lbnQqLCBjb25zdCBBdHRyaWJ1dGVzJiwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIExvY2tI
aXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOworICAgIHN0YXRpYyBSZWY8Rm9ybVN1Ym1p
c3Npb24+IGNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqLCBjb25zdCBBdHRyaWJ1dGVzJiwgUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQsIExvY2tIaXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOwog
CiAgICAgdm9pZCBwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29k
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmgKaW5kZXgg
MmE5MjU0OC4uMTcxMTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRS
ZXNvdXJjZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFJlc291cmNl
RGVjb2Rlci5oCkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoKICAgICAgICAgRW5jb2RpbmdGcm9t
UGFyZW50RnJhbWUKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dFJlc291cmNl
RGVjb2Rlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFRleHRFbmNvZGlu
ZyYgZGVmYXVsdEVuY29kaW5nID0gVGV4dEVuY29kaW5nKCksIGJvb2wgdXNlc0VuY29kaW5nRGV0
ZWN0b3IgPSBmYWxzZSkKKyAgICBzdGF0aWMgUmVmPFRleHRSZXNvdXJjZURlY29kZXI+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBUZXh0RW5jb2RpbmcmIGRlZmF1bHRFbmNv
ZGluZyA9IFRleHRFbmNvZGluZygpLCBib29sIHVzZXNFbmNvZGluZ0RldGVjdG9yID0gZmFsc2Up
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRSZXNvdXJjZURlY29kZXIo
bWltZVR5cGUsIGRlZmF1bHRFbmNvZGluZywgdXNlc0VuY29kaW5nRGV0ZWN0b3IpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFJlc291cmNlRGVjb2RlcihtaW1lVHlwZSwgZGVm
YXVsdEVuY29kaW5nLCB1c2VzRW5jb2RpbmdEZXRlY3RvcikpOwogICAgIH0KICAgICBXRUJDT1JF
X0VYUE9SVCB+VGV4dFJlc291cmNlRGVjb2RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCmluZGV4IDcxNWM1YWEu
LjBlOTYzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlci5oCkBAIC0zMywxNiArMzMsMTYgQEAKIAogI2luY2x1ZGUgIlRo
cmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGhyZWFk
YWJsZUxvYWRlckNsaWVudFdyYXBwZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhy
ZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQqIGNsaWVudCkKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVMb2FkZXJDbGllbnRX
cmFwcGVyPiBjcmVhdGUoVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcihj
bGllbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkYWJsZUxvYWRlckNs
aWVudFdyYXBwZXIoY2xpZW50KSk7CiAgICAgfQogCiAgICAgdm9pZCBjbGVhckNsaWVudCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAppbmRleCBh
MjVkOTc4Li4yYTk1ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2Vy
VGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJl
YWRhYmxlTG9hZGVyLmgKQEAgLTU0LDkgKzU0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV29ya2VyR2xvYmFsU2NvcGUqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29uc3QgVGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2VyVGhy
ZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29w
ZSwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2Rl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJP
cHRpb25zJiBvcHRpb25zKQorICAgICAgICBzdGF0aWMgUmVmPFdvcmtlclRocmVhZGFibGVMb2Fk
ZXI+IGNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUsIFRocmVhZGFi
bGVMb2FkZXJDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0
aW9ucykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXb3JrZXJU
aHJlYWRhYmxlTG9hZGVyKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIHRhc2tNb2RlLCByZXF1
ZXN0LCBvcHRpb25zKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJU
aHJlYWRhYmxlTG9hZGVyKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIHRhc2tNb2RlLCByZXF1
ZXN0LCBvcHRpb25zKSk7CiAgICAgICAgIH0KIAogICAgICAgICB+V29ya2VyVGhyZWFkYWJsZUxv
YWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlLmgKaW5kZXggZmRjOWFjYS4uOTE5N2Q5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oCkBAIC00Niw3ICs0Niw3IEBAIHR5
cGVkZWYgVmVjdG9yPHN0ZDo6cGFpcjxVUkwsIFVSTD4+IEZhbGxiYWNrVVJMVmVjdG9yOwogCiBj
bGFzcyBBcHBsaWNhdGlvbkNhY2hlIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGljYXRpb25DYWNo
ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGU+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcHBsaWNhdGlvbkNhY2hlKTsgfQorICAgIHN0
YXRpYyBSZWY8QXBwbGljYXRpb25DYWNoZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBcHBsaWNhdGlvbkNhY2hlKTsgfQogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGRlbGV0ZUNhY2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgZGVsZXRlQWxsQ2FjaGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgKaW5k
ZXggZDhkM2YxYS4uYzA2M2EwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaApAQCAtNDAsMTAgKzQwLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgRmFsbGJhY2sgPSAxIDw8IDQKICAgICB9OwogICAgICAgICAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IGNyZWF0ZShj
b25zdCBVUkwmIHVybCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIHVuc2lnbmVk
IHR5cGUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZSgpLCBjb25zdCBTdHJpbmcmIHBhdGggPSBTdHJpbmcoKSkKKyAgICBzdGF0aWMgUmVmPEFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gY3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgdW5zaWduZWQgdHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGNvbnN0IFN0cmluZyYgcGF0
aCA9IFN0cmluZygpKQogICAgIHsKICAgICAgICAgQVNTRVJUKCF1cmwuaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZSh1cmwsIHJlc3BvbnNlLCB0eXBlLCBidWZmZXIsIHBhdGgpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGljYXRpb25DYWNoZVJlc291cmNlKHVybCwgcmVzcG9uc2Us
IHR5cGUsIGJ1ZmZlciwgcGF0aCkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oCmluZGV4IGNiMjc1NDUuLmNkZGY3NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
QEAgLTQ0LDcgKzQzLDcgQEAgY2xhc3MgVVJMOwogCiBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hl
IGZpbmFsIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9NQXBw
bGljYXRpb25DYWNoZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMg
RE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUFw
cGxpY2F0aW9uQ2FjaGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBET01BcHBsaWNhdGlvbkNhY2hlKGZyYW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTUFwcGxp
Y2F0aW9uQ2FjaGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RE9NQXBwbGljYXRpb25DYWNoZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+RE9NQXBwbGljYXRp
b25DYWNoZSgpIHsgQVNTRVJUKCFtX2ZyYW1lKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nv
bm5lY3RGcmFtZUZvclBhZ2VDYWNoZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5jcHAKaW5kZXggNGIwNWZkYy4uZTAyMDVh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZVJlc291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3Vy
Y2UuY3BwCkBAIC00MiwxOSArNDIsMTkgQEAgaW5saW5lIEFyY2hpdmVSZXNvdXJjZTo6QXJjaGl2
ZVJlc291cmNlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwKIHsKIH0K
IAotUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK1JlZlB0cjxBcmNoaXZl
UmVzb3VyY2U+IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0RW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpIHsK
ICAgICAgICAgdW5zaWduZWQgZGF0YVNpemUgPSBkYXRhLT5zaXplKCk7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQXJjaGl2ZVJlc291cmNlKGRhdGEsIHVybCwgbWltZVR5cGUsIHRleHRF
bmNvZGluZywgZnJhbWVOYW1lLAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcmNoaXZl
UmVzb3VyY2UoZGF0YSwgdXJsLCBtaW1lVHlwZSwgdGV4dEVuY29kaW5nLCBmcmFtZU5hbWUsCiAg
ICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlKHVybCwgbWltZVR5cGUsIGRhdGFTaXplLCB0ZXh0
RW5jb2RpbmcpKSk7CiAgICAgfQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJjaGl2ZVJlc291
cmNlKGRhdGEsIHVybCwgbWltZVR5cGUsIHRleHRFbmNvZGluZywgZnJhbWVOYW1lLCByZXNwb25z
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFyY2hpdmVSZXNvdXJjZShkYXRhLCB1cmws
IG1pbWVUeXBlLCB0ZXh0RW5jb2RpbmcsIGZyYW1lTmFtZSwgcmVzcG9uc2UpKTsKIH0KIAotUGFz
c1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBjb25zdCBVUkwmIHVybCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCitSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBBcmNoaXZlUmVzb3VyY2U6
OmNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIHJldHVybiBjcmVhdGUoZGF0
YSwgdXJsLCByZXNwb25zZS5taW1lVHlwZSgpLCByZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCks
IFN0cmluZygpLCByZXNwb25zZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmVSZXNvdXJjZS5oCmluZGV4IDdmMWMzMmUuLjI1YmQ1YzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVSZXNvdXJjZS5oCkBAIC0zNSw4ICsz
NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJjaGl2ZVJlc291cmNlIDogcHVi
bGljIFN1YnN0aXR1dGVSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
QXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBV
UkwmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+LCBjb25zdCBVUkwmLAorICAgIHN0YXRpYyBSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjcmVh
dGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBjb25zdCBVUkwmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFVSTCYsCiAgICAgICAg
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwKICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgPSBS
ZXNvdXJjZVJlc3BvbnNlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2VCYXNlLmgKaW5kZXggNGM5ZWExYi4uZGY4NzcwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaApAQCAtNzksOSArNzksOSBAQCBjbGFz
cyBFbnVtQ2FsbGJhY2sgOiBwdWJsaWMgQ2FsbGJhY2tCYXNlIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIHZvaWQgKCpDYWxsYmFja0Z1bmN0aW9uKShFbnVtVHlwZSwgdm9pZCopOwogCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RW51bUNhbGxiYWNrPiBjcmVhdGUodm9pZCogY29udGV4dCwgQ2FsbGJh
Y2tGdW5jdGlvbiBjYWxsYmFjaykKKyAgICBzdGF0aWMgUmVmPEVudW1DYWxsYmFjaz4gY3JlYXRl
KHZvaWQqIGNvbnRleHQsIENhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2spCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEVudW1DYWxsYmFjayhjb250ZXh0LCBjYWxsYmFjaykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbnVtQ2FsbGJhY2soY29udGV4dCwgY2FsbGJh
Y2spKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5FbnVtQ2FsbGJhY2soKQpAQCAtMTE4LDkgKzEx
OCw5IEBAIGNsYXNzIE9iamVjdENhbGxiYWNrIDogcHVibGljIENhbGxiYWNrQmFzZSB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiB2b2lkICgqQ2FsbGJhY2tGdW5jdGlvbikoT2JqZWN0VHlwZSwgdm9p
ZCopOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8T2JqZWN0Q2FsbGJhY2s+IGNyZWF0ZSh2b2lk
KiBjb250ZXh0LCBDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQorICAgIHN0YXRpYyBSZWY8T2Jq
ZWN0Q2FsbGJhY2s+IGNyZWF0ZSh2b2lkKiBjb250ZXh0LCBDYWxsYmFja0Z1bmN0aW9uIGNhbGxi
YWNrKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RDYWxsYmFjayhj
b250ZXh0LCBjYWxsYmFjaykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmplY3RD
YWxsYmFjayhjb250ZXh0LCBjYWxsYmFjaykpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfk9iamVj
dENhbGxiYWNrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25S
ZWNvcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuaAppbmRleCBk
NDA4NTkzLi5lNWViMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uUmVjb3JkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5o
CkBAIC03NCw5ICs3NCw5IEBAIHByaXZhdGU6CiBjbGFzcyBJY29uUmVjb3JkIDogcHVibGljIFJl
ZkNvdW50ZWQ8SWNvblJlY29yZD4gewogICAgIGZyaWVuZCBjbGFzcyBQYWdlVVJMUmVjb3JkOwog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljb25SZWNvcmQ+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHVybCkKKyAgICBzdGF0aWMgUmVmPEljb25SZWNvcmQ+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvblJlY29yZCh1
cmwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSWNvblJlY29yZCh1cmwpKTsKICAg
ICB9CiAgICAgfkljb25SZWNvcmQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRleCBkOGRmNGE4Li41
OWQ1MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC01MCw5ICs1MCw5IEBAIE1hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQ6Ok1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYKIHsKIH0KIAotUGFzc1JlZlB0cjxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50PiBN
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTElubGluZUNvbnRhaW5lckVs
ZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB2b2lkIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKaW5k
ZXggNzA5ZmU0OC4uMjkzNjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgOiBw
dWJsaWMgTWF0aE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1hdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxl
bWVudC5jcHAKaW5kZXggMzUwNDJmZC4uYmRhMTBjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcApAQCAtMzgsOSArMzgsOSBAQCBpbmxpbmUgTWF0aE1M
TWF0aEVsZW1lbnQ6Ok1hdGhNTE1hdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZQogewogfQogCi1QYXNzUmVmUHRyPE1hdGhNTE1hdGhFbGVtZW50PiBNYXRoTUxN
YXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxNYXRoTUxNYXRoRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxNYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTE1hdGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRo
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKaW5kZXggOWFmMjU1NS4u
NGE0MTAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKQEAg
LTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxNYXRoRWxl
bWVudCA6IHB1YmxpYyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxNYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxNYXRoTUxNYXRo
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7
CiAKIHByaXZhdGU6CiAgICAgTWF0aE1MTWF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5jcHAKaW5kZXggYzc1NWQ3MS4uMDZkYWZiNiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTQ1LDkgKzQ1LDkg
QEAgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpNYXRoTUxNZW5jbG9zZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIHsKIH0KIAotUGFzc1JlZlB0cjxNYXRoTUxNZW5j
bG9zZUVsZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxNYXRoTUxNZW5jbG9zZUVs
ZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1hdGhNTE1lbmNsb3NlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE1hdGhNTE1lbmNsb3NlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IDIyYTMzY2QuLmMyN2E0
MzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxNZW5j
bG9zZUVsZW1lbnQgZmluYWw6IHB1YmxpYyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxNZW5jbG9zZUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8TWF0aE1MTWVuY2xvc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbm90YXRpb25W
YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX25vdGF0aW9uVmFsdWVzOyB9CiAgICAgYm9vbCBpc1Jh
ZGljYWwoKSBjb25zdCB7IHJldHVybiBtX2lzUmFkaWNhbFZhbHVlOyB9CiAgICAgU3RyaW5nIGxv
bmdEaXZMZWZ0UGFkZGluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDZkNTI5NjEuLjA4N2RmZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAg
TWF0aE1MU2VsZWN0RWxlbWVudDo6TWF0aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYKIHsKIH0KIAotUGFzc1JlZlB0cjxNYXRoTUxTZWxlY3RF
bGVtZW50PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IE1h
dGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxTZWxl
Y3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWF0aE1MU2VsZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
U2VsZWN0RWxlbWVudC5oCmluZGV4IDM1NDAwZmViLi4yMmE2Y2NiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxTZWxlY3RFbGVtZW50IGZpbmFsIDogcHVibGlj
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8TWF0aE1MU2VsZWN0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgc3Rh
dGljIGJvb2wgaXNNYXRoTUxFbmNvZGluZyhjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKICAg
ICBzdGF0aWMgYm9vbCBpc1NWR0VuY29kaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwog
ICAgIHN0YXRpYyBib29sIGlzSFRNTEVuY29kaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKaW5kZXggNDU2
YzgxNC4uOTYwNmRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRl
eHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1l
bnQuY3BwCkBAIC00NSw5ICs0NSw5IEBAIGlubGluZSBNYXRoTUxUZXh0RWxlbWVudDo6TWF0aE1M
VGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgc2V0
SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQdHI8TWF0aE1M
VGV4dEVsZW1lbnQ+IE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTFRleHRFbGVtZW50PiBN
YXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdGhNTFRleHRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0
aE1MVGV4dEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogdm9pZCBNYXRoTUxUZXh0
RWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmgKaW5kZXggYzY4NDJlOS4uNjliMDU3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAogY2xhc3MgTWF0aE1MVGV4dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWF0
aE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MVGV4dEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5k
ZXJlcnMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhN
TCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQmFyUHJvcC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmgKaW5k
ZXggZWRmYTU2Zi4uMDNkNzFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9CYXJQ
cm9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9CYXJQcm9wLmgKQEAgLTMxLDcgKzMxLDcg
QEAKIAogI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDIsNyArNDIsNyBAQCBjbGFzcyBCYXJQcm9wIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwg
cHVibGljIFJlZkNvdW50ZWQ8QmFyUHJvcD4sIHB1YmxpYyBET01XaQogcHVibGljOgogICAgIGVu
dW0gVHlwZSB7IExvY2F0aW9uYmFyLCBNZW51YmFyLCBQZXJzb25hbGJhciwgU2Nyb2xsYmFycywg
U3RhdHVzYmFyLCBUb29sYmFyIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCYXJQcm9wPiBj
cmVhdGUoRnJhbWUqIGZyYW1lLCBUeXBlIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYXJQ
cm9wKGZyYW1lLCB0eXBlKSk7IH0KKyAgICBzdGF0aWMgUmVmPEJhclByb3A+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIFR5cGUgdHlwZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBCYXJQcm9wKGZyYW1l
LCB0eXBlKSk7IH0KIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJvb2wgdmlzaWJsZSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmgKaW5kZXggOTRlYWI1Ni4uYWYwZmMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NyeXB0by5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFN1YnRsZUNyeXB0bzsKIAogY2xhc3Mg
Q3J5cHRvIDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291
bnRlZDxDcnlwdG8+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG8+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG8oZG9j
dW1lbnQpKTsgfQorICAgIHN0YXRpYyBSZWY8Q3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0byhkb2N1bWVudCkpOyB9CiAgICAgdmly
dHVhbCB+Q3J5cHRvKCk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaAppbmRleCA0MmFlNTE4Li5kZjY5MTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5oCkBAIC0zOSw5ICszOSw5IEBA
IGNsYXNzIEZyYW1lOwogCiBjbGFzcyBET01TZWN1cml0eVBvbGljeSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPERPTVNlY3VyaXR5UG9saWN5PiwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TZWN1cml0eVBvbGljeT4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgc3RhdGljIFJlZjxET01T
ZWN1cml0eVBvbGljeT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNlY3VyaXR5UG9saWN5KGNvbnRl
eHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NU2VjdXJpdHlQb2xpY3koY29u
dGV4dCkpOwogICAgIH0KICAgICB+RE9NU2VjdXJpdHlQb2xpY3koKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmgKaW5kZXggZGU0ODU2OS4uMmZhMWU4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVNlbGVjdGlvbi5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIERPTVNlbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVNlbGVjdGlvbj4sIHB1
YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxET01TZWxlY3Rpb24+IGNyZWF0ZShjb25zdCBUcmVlU2NvcGUqIHRyZWVTY29wZSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNlbGVjdGlvbih0cmVlU2NvcGUpKTsgfQorICAgICAg
ICBzdGF0aWMgUmVmPERPTVNlbGVjdGlvbj4gY3JlYXRlKGNvbnN0IFRyZWVTY29wZSogdHJlZVNj
b3BlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVNlbGVjdGlvbih0cmVlU2NvcGUpKTsgfQog
CiAgICAgICAgIHZvaWQgY2xlYXJUcmVlU2NvcGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
aW5kZXggNDgyOTFjYy4uZWFkNDU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC05OSw3
ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLCBwdWJsaWMgRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyCiAgICAgICAgICwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERPTVdpbmRv
dz4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NV2luZG93PiBj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NV2luZG93
KGRvY3VtZW50KSk7IH0KKyAgICAgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50
KSk7IH0KICAgICAgICAgdmlydHVhbCB+RE9NV2luZG93KCk7CiAKICAgICAgICAgLy8gSW4gc29t
ZSByYXJlIGNhc2VzLCB3ZSdsbCByZS11c2VkIGEgRE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVu
dC4gRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaApp
bmRleCA0OTI5MGJjLi5hOTc4ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvd0V4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0
ZW5zaW9uLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgRE9NV2luZG93RXh0ZW5zaW9uX2gK
IAogI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIApAQCAtMzksOSArMzgsOSBAQCBjbGFzcyBGcmFtZTsKIAogY2xhc3MgRE9NV2luZG93RXh0
ZW5zaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NV2luZG93RXh0ZW5zaW9uPiwgcHVibGljIERP
TVdpbmRvd1Byb3BlcnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01XaW5k
b3dFeHRlbnNpb24+IGNyZWF0ZShGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
CisgICAgc3RhdGljIFJlZjxET01XaW5kb3dFeHRlbnNpb24+IGNyZWF0ZShGcmFtZSogZnJhbWUs
IERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERPTVdpbmRvd0V4dGVuc2lvbihmcmFtZSwgd29ybGQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRE9NV2luZG93RXh0ZW5zaW9uKGZyYW1lLCB3b3JsZCkpOwogICAgIH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJhbWVGb3JQYWdlQ2FjaGUoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwOWNhYjhkLi5kOTY2NTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjIsMTkgKzIyMiwxOSBAQCBGcmFtZVZpZXc6OkZy
YW1lVmlldyhGcmFtZSYgZnJhbWUpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxGcmFtZVZpZXc+
IEZyYW1lVmlldzo6Y3JlYXRlKEZyYW1lJiBmcmFtZSkKK1JlZjxGcmFtZVZpZXc+IEZyYW1lVmll
dzo6Y3JlYXRlKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3ID0g
YWRvcHRSZWYobmV3IEZyYW1lVmlldyhmcmFtZSkpOworICAgIFJlZjxGcmFtZVZpZXc+IHZpZXcg
PSBhZG9wdFJlZigqbmV3IEZyYW1lVmlldyhmcmFtZSkpOwogICAgIHZpZXctPnNob3coKTsKLSAg
ICByZXR1cm4gdmlldy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKLVBhc3NSZWZQ
dHI8RnJhbWVWaWV3PiBGcmFtZVZpZXc6OmNyZWF0ZShGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNp
emUmIGluaXRpYWxTaXplKQorUmVmPEZyYW1lVmlldz4gRnJhbWVWaWV3OjpjcmVhdGUoRnJhbWUm
IGZyYW1lLCBjb25zdCBJbnRTaXplJiBpbml0aWFsU2l6ZSkKIHsKLSAgICBSZWZQdHI8RnJhbWVW
aWV3PiB2aWV3ID0gYWRvcHRSZWYobmV3IEZyYW1lVmlldyhmcmFtZSkpOworICAgIFJlZjxGcmFt
ZVZpZXc+IHZpZXcgPSBhZG9wdFJlZigqbmV3IEZyYW1lVmlldyhmcmFtZSkpOwogICAgIHZpZXct
PldpZGdldDo6c2V0RnJhbWVSZWN0KEludFJlY3Qodmlldy0+bG9jYXRpb24oKSwgaW5pdGlhbFNp
emUpKTsKICAgICB2aWV3LT5zaG93KCk7Ci0gICAgcmV0dXJuIHZpZXcucmVsZWFzZSgpOworICAg
IHJldHVybiB2aWV3OwogfQogCiBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKaW5kZXggMzY2MWU3MC4uNWZhOTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC03MCw4ICs3MCw4IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyVmlldzsK
ICAgICBmcmllbmQgY2xhc3MgSW50ZXJuYWxzOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBhc3NSZWZQdHI8RnJhbWVWaWV3PiBjcmVhdGUoRnJhbWUmKTsKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGcmFtZVZpZXc+IGNyZWF0ZShGcmFtZSYsIGNvbnN0IEludFNpemUmIGluaXRpYWxTaXpl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYW1lVmlldz4gY3JlYXRlKEZyYW1l
Jik7CisgICAgc3RhdGljIFJlZjxGcmFtZVZpZXc+IGNyZWF0ZShGcmFtZSYsIGNvbnN0IEludFNp
emUmIGluaXRpYWxTaXplKTsKIAogICAgIHZpcnR1YWwgfkZyYW1lVmlldygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4
IDFjMTQzYWEuLmJlZDM3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC00Niw5ICs0Niw5IEBAIGNsYXNzIFJlbmRlclN0
eWxlOwogLy8gb24gYSBzaW5nbGUgUmVuZGVyRWxlbWVudCwgc3VjaCBhcyBhIG51bWJlciBvZiBw
cm9wZXJ0aWVzIHRyYW5zaXRpb25pbmcgYXQgb25jZS4KIGNsYXNzIENvbXBvc2l0ZUFuaW1hdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPENvbXBvc2l0ZUFuaW1hdGlvbj4gewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENvbXBvc2l0ZUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlKiBhbmltYXRpb25Db250cm9sbGVyKQorICAgIHN0YXRpYyBSZWY8Q29t
cG9zaXRlQW5pbWF0aW9uPiBjcmVhdGUoQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqIGFuaW1h
dGlvbkNvbnRyb2xsZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbXBv
c2l0ZUFuaW1hdGlvbihhbmltYXRpb25Db250cm9sbGVyKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENvbXBvc2l0ZUFuaW1hdGlvbihhbmltYXRpb25Db250cm9sbGVyKSk7CiAgICAg
fTsKIAogICAgIH5Db21wb3NpdGVBbmltYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBj
ODBjMzI0Li43MTI1YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC00OCw3ICs0OCw3IEBAIGNs
YXNzIFNjcm9sbGluZ1N0YXRlVHJlZTsKIC8vIGFsbG93aW5nIGFzeW5jaHJvbm91cyBzY3JvbGxp
bmcgKGluIGFub3RoZXIgdGhyZWFkIG9yIHByb2Nlc3MpLgogY2xhc3MgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvciA6IHB1YmxpYyBTY3JvbGxpbmdDb29yZGluYXRvciB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlKFBhZ2Uq
KTsKKyAgICBzdGF0aWMgUmVmPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShQYWdl
Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cigpOwogCiAgICAgU2Nyb2xsaW5nVHJlZSogc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsaW5nVHJlZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA0
M2RlMjI0Li41YzFiZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJz
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNTgsNyArNTgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGNsYXNzIFNo
YXJlZEN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEN1cnNvcj4gewogICAgIHB1Ymxp
YzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQ3Vyc29yPiBjcmVhdGUoSENVUlNP
UiBuYXRpdmVDdXJzb3IpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRDdXJzb3IobmF0aXZl
Q3Vyc29yKSk7IH0KKyAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VS
U09SIG5hdGl2ZUN1cnNvcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0
aXZlQ3Vyc29yKSk7IH0KICAgICAgICAgflNoYXJlZEN1cnNvcigpOwogICAgICAgICBIQ1VSU09S
IG5hdGl2ZUN1cnNvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlQ3Vyc29yOyB9CiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAppbmRleCBmNmNlYTUz
Li5lYWRhNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCkBAIC0z
Nyw5ICszNyw5IEBAIEZpbGVDaG9vc2VyOjpGaWxlQ2hvb3NlcihGaWxlQ2hvb3NlckNsaWVudCog
Y2xpZW50LCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzCiB7CiB9CiAKLVBhc3NSZWZQdHI8
RmlsZUNob29zZXI+IEZpbGVDaG9vc2VyOjpjcmVhdGUoRmlsZUNob29zZXJDbGllbnQqIGNsaWVu
dCwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCitSZWY8RmlsZUNob29zZXI+
IEZpbGVDaG9vc2VyOjpjcmVhdGUoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgRmls
ZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
aWxlQ2hvb3NlcihjbGllbnQsIHNldHRpbmdzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RmlsZUNob29zZXIoY2xpZW50LCBzZXR0aW5ncykpOwogfQogCiBGaWxlQ2hvb3Nlcjo6fkZpbGVD
aG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCmluZGV4IGNkNjhkNjIu
LmIwNTEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAtNzcsNyAr
NzcsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIEZpbGVDaG9vc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8
RmlsZUNob29zZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nl
cj4gY3JlYXRlKEZpbGVDaG9vc2VyQ2xpZW50KiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYp
OworICAgIHN0YXRpYyBSZWY8RmlsZUNob29zZXI+IGNyZWF0ZShGaWxlQ2hvb3NlckNsaWVudCos
IGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+RmlsZUNo
b29zZXIoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCmluZGV4IGJjMjM5OTYuLmIyZGMxMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKQEAgLTM4LDgg
KzM4LDggQEAgY2xhc3MgQW5pbWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8QW5pbWF0aW9uPiB7
CiBwdWJsaWM6CiAgICAgfkFuaW1hdGlvbigpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QW5p
bWF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKTsgfQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IEFuaW1hdGlvbiYgb3Ro
ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24ob3RoZXIpKTsgfQorICAgIHN0YXRp
YyBSZWY8QW5pbWF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEFuaW1hdGlv
bik7IH0KKyAgICBzdGF0aWMgUmVmPEFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IEFuaW1hdGlvbiYg
b3RoZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQW5pbWF0aW9uKG90aGVyKSk7IH0KIAogICAg
IGJvb2wgaXNEZWxheVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29s
IGlzRGlyZWN0aW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCA5ZGFjMDllLi5jZmY3
Y2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC00
NiwxMyArNDYsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKIGNvbnN0IHVuc2ln
bmVkIE1heEJ1c0NoYW5uZWxzID0gMzI7CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVz
OjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBh
bGxvY2F0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZSh1bnNpZ25lZCBudW1i
ZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlKQogewogICAgIEFTU0VS
VChudW1iZXJPZkNoYW5uZWxzIDw9IE1heEJ1c0NoYW5uZWxzKTsKICAgICBpZiAobnVtYmVyT2ZD
aGFubmVscyA+IE1heEJ1c0NoYW5uZWxzKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9m
Q2hhbm5lbHMsIGxlbmd0aCwgYWxsb2NhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
dWRpb0J1cyhudW1iZXJPZkNoYW5uZWxzLCBsZW5ndGgsIGFsbG9jYXRlKSk7CiB9CiAKIEF1ZGlv
QnVzOjpBdWRpb0J1cyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBi
b29sIGFsbG9jYXRlKQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgQXVkaW9CdXM6OnRvcG9sb2d5
TWF0Y2hlcyhjb25zdCBBdWRpb0J1cyYgYnVzKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnVmZmVyRnJvbVJhbmdlKGNv
bnN0IEF1ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVuc2lnbmVk
IGVuZEZyYW1lKQorUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnVmZmVyRnJvbVJh
bmdlKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUsIHVu
c2lnbmVkIGVuZEZyYW1lKQogewogICAgIHNpemVfdCBudW1iZXJPZlNvdXJjZUZyYW1lcyA9IHNv
dXJjZUJ1ZmZlci0+bGVuZ3RoKCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscyA9IHNv
dXJjZUJ1ZmZlci0+bnVtYmVyT2ZDaGFubmVscygpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UoY29uc3QgQXVk
aW9CdXMqIHNvdXJjZUJ1ZmZlCiAgICAgYm9vbCBpc1JhbmdlU2FmZSA9IHN0YXJ0RnJhbWUgPCBl
bmRGcmFtZSAmJiBlbmRGcmFtZSA8PSBudW1iZXJPZlNvdXJjZUZyYW1lczsKICAgICBBU1NFUlQo
aXNSYW5nZVNhZmUpOwogICAgIGlmICghaXNSYW5nZVNhZmUpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHNpemVfdCByYW5nZUxlbmd0aCA9IGVuZEZy
YW1lIC0gc3RhcnRGcmFtZTsKIApAQCAtNTIxLDEyICs1MjEsMTIgQEAgdm9pZCBBdWRpb0J1czo6
Y29weVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3Vy
Y2VCdXMsIGYKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVh
dGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMsIGJvb2wg
bWl4VG9Nb25vLCBkb3VibGUgbmV3U2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9C
dXM6OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1
cywgYm9vbCBtaXhUb01vbm8sIGRvdWJsZSBuZXdTYW1wbGVSYXRlKQogewogICAgIC8vIHNvdXJj
ZUJ1cydzIHNhbXBsZS1yYXRlIG11c3QgYmUga25vd24uCiAgICAgQVNTRVJUKHNvdXJjZUJ1cyAm
JiBzb3VyY2VCdXMtPnNhbXBsZVJhdGUoKSk7CiAgICAgaWYgKCFzb3VyY2VCdXMgfHwgIXNvdXJj
ZUJ1cy0+c2FtcGxlUmF0ZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBkb3VibGUgc291cmNlU2FtcGxlUmF0ZSA9IHNvdXJjZUJ1cy0+c2FtcGxl
UmF0ZSgpOwogICAgIGRvdWJsZSBkZXN0aW5hdGlvblNhbXBsZVJhdGUgPSBuZXdTYW1wbGVSYXRl
OwpAQCAtNTg0LDcgKzU4NCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVh
dGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyCiAgICAgcmV0dXJu
IGRlc3RpbmF0aW9uQnVzOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3Jl
YXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cykKK1JlZlB0cjxBdWRp
b0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3Vy
Y2VCdXMpCiB7CiAgICAgaWYgKHNvdXJjZUJ1cy0+aXNTaWxlbnQoKSkKICAgICAgICAgcmV0dXJu
IGNyZWF0ZSgxLCBzb3VyY2VCdXMtPmxlbmd0aCgpKTsKQEAgLTYxMyw3ICs2MTMsNyBAQCBQYXNz
UmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVk
aW9CdXMqIHNvdXJjZUJ1cykKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBBdWRpb0J1czo6aXNT
aWxlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9CdXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5k
ZXggMjA3ZDk2Yi4uOGQ2ODM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9CdXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0
ZXMgd2hldGhlciBvciBub3QgdG8gaW5pdGlhbGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3Jl
YXRlZCB3aXRoIG1hbmFnZWQgc3RvcmFnZS4KICAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFz
cyB0cnVlIGhlcmUsIGluIHdoaWNoIGNhc2UgdGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnkt
bWFuYWdlIHRoZWlyIG93biBzdG9yYWdlLgogICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRo
ZW4gc2V0Q2hhbm5lbE1lbW9yeSgpIGhhcyB0byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2gg
Y2hhbm5lbCBiZWZvcmUgdGhlIEF1ZGlvQnVzIGlzIHVzZWFibGUuLi4KLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVf
dCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUgPSB0cnVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlv
QnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9v
bCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNoYW5uZWwgdG8g
dXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KICAgICB2b2lkIHNldENoYW5uZWxN
ZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0
aCk7CkBAIC0xMDQsMTcgKzEwNCwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDcmVhdGVzIGEgbmV3
IGJ1ZmZlciBmcm9tIGEgcmFuZ2UgaW4gdGhlIHNvdXJjZSBidWZmZXIuCiAgICAgLy8gMCBtYXkg
YmUgcmV0dXJuZWQgaWYgdGhlIHJhbmdlIGRvZXMgbm90IGZpdCBpbiB0aGUgc291cmNlQnVmZmVy
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1ZmZlckZyb21SYW5nZShj
b25zdCBBdWRpb0J1cyogc291cmNlQnVmZmVyLCB1bnNpZ25lZCBzdGFydEZyYW1lLCB1bnNpZ25l
ZCBlbmRGcmFtZSk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVmZmVyRnJv
bVJhbmdlKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdWZmZXIsIHVuc2lnbmVkIHN0YXJ0RnJhbWUs
IHVuc2lnbmVkIGVuZEZyYW1lKTsKIAogCiAgICAgLy8gQ3JlYXRlcyBhIG5ldyBBdWRpb0J1cyBi
eSBzYW1wbGUtcmF0ZSBjb252ZXJ0aW5nIHNvdXJjZUJ1cyB0byB0aGUgbmV3U2FtcGxlUmF0ZS4K
ICAgICAvLyBzZXRTYW1wbGVSYXRlKCkgbXVzdCBoYXZlIGJlZW4gcHJldmlvdXNseSBjYWxsZWQg
b24gc291cmNlQnVzLgogICAgIC8vIE5vdGU6IHNhbXBsZS1yYXRlIGNvbnZlcnNpb24gaXMgYWxy
ZWFkeSBoYW5kbGVkIGluIHRoZSBmaWxlLXJlYWRpbmcgY29kZSBmb3IgdGhlIG1hYyBwb3J0LCBz
byB3ZSBkb24ndCBuZWVkIHRoaXMuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNy
ZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcoY29uc3QgQXVkaW9CdXMqIHNvdXJjZUJ1cywgYm9v
bCBtaXhUb01vbm8sIGRvdWJsZSBuZXdTYW1wbGVSYXRlKTsKKyAgICBzdGF0aWMgUmVmUHRyPEF1
ZGlvQnVzPiBjcmVhdGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3Vy
Y2VCdXMsIGJvb2wgbWl4VG9Nb25vLCBkb3VibGUgbmV3U2FtcGxlUmF0ZSk7CiAKICAgICAvLyBD
cmVhdGVzIGEgbmV3IEF1ZGlvQnVzIGJ5IG1peGluZyBhbGwgdGhlIGNoYW5uZWxzIGRvd24gdG8g
bW9uby4KICAgICAvLyBJZiBzb3VyY2VCdXMgaXMgYWxyZWFkeSBtb25vLCB0aGVuIHRoZSByZXR1
cm5lZCBBdWRpb0J1cyB3aWxsIHNpbXBseSBiZSBhIGNvcHkuCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8QXVkaW9CdXM+IGNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VC
dXMpOworICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ5TWl4aW5nVG9Nb25vKGNv
bnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMpOwogCiAgICAgLy8gU2NhbGVzIGFsbCBzYW1wbGVzIGJ5
IHRoZSBzYW1lIGFtb3VudC4KICAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVuZXIu
Y3BwCmluZGV4IDU5MjkyMjguLjZkMmRmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmNwcApAQCAtMjksOSArMjks
OSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykKLVBhc3NSZWZQ
dHI8QXVkaW9IYXJkd2FyZUxpc3RlbmVyPiBBdWRpb0hhcmR3YXJlTGlzdGVuZXI6OmNyZWF0ZShD
bGllbnQmIGNsaWVudCkKK1JlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IEF1ZGlvSGFyZHdhcmVM
aXN0ZW5lcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQXVkaW9IYXJkd2FyZUxpc3RlbmVyKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihjbGllbnQpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3YXJlTGlzdGVuZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5o
CmluZGV4IGIyNjdlMjAuLjcyZjBkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAj
aWZuZGVmIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcl9oCiAjZGVmaW5lIEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lcl9oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpID0gMDsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBhc3NSZWZQdHI8QXVkaW9IYXJkd2FyZUxpc3RlbmVyPiBjcmVhdGUoQ2xpZW50Jik7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IGNyZWF0ZShD
bGllbnQmKTsKICAgICB2aXJ0dWFsIH5BdWRpb0hhcmR3YXJlTGlzdGVuZXIoKSB7IH0KICAgICAK
ICAgICBBdWRpb0hhcmR3YXJlQWN0aXZpdHlUeXBlIGhhcmR3YXJlQWN0aXZpdHkoKSBjb25zdCB7
IHJldHVybiBtX2FjdGl2aXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCmluZGV4IDdl
OTBlYTkuLmMyNjk1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCkBAIC0xMDksMTQg
KzEwOSwxNCBAQCBzdGF0aWMgY29uc3QgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MmIG91dHB1
dERldmljZVByb3BlcnR5RGVzY3JpcHRvcigpCiAgICAgcmV0dXJuIG91dHB1dERldmljZVByb3Bl
cnR5OwogfTsKIAotUGFzc1JlZlB0cjxBdWRpb0hhcmR3YXJlTGlzdGVuZXI+IEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQorUmVmPEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lcj4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiB7CiAg
ICAgcmV0dXJuIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6Y3JlYXRlKGNsaWVudCk7CiB9CiAK
LVBhc3NSZWZQdHI8QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWM6OmNyZWF0ZShDbGllbnQmIGNsaWVudCkKK1JlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWM+IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKGNsaWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhjbGll
bnQpKTsKIH0KIAogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWMoQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgKaW5kZXggNDkzNTAz
MC4uNjA1N2QzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaApAQCAtMzcsNyArMzcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyA6IHB1
YmxpYyBBdWRpb0hhcmR3YXJlTGlzdGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBXVEY6OlBh
c3NSZWZQdHI8QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBjcmVhdGUoQ2xpZW50Jik7CisgICAg
c3RhdGljIFdURjo6UmVmPEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYz4gY3JlYXRlKENsaWVudCYp
OwogCiBwcml2YXRlOgogICAgIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhDbGllbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0
ZS5oCmluZGV4IDk5MTI1OTIuLjI1Njk3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtNDEsOSArNDEsOSBAQCBw
dWJsaWM6CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJh
c2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvVHJhY2tQcml2YXRlKCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZSk7CiAgICAgfQogCiAg
ICAgdm9pZCBzZXRDbGllbnQoQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2Ns
aWVudCA9IGNsaWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKaW5kZXggODI0NmY0Ny4uMTY5NWNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0xMDgsMTMgKzEwOCwxMyBAQCBj
bGFzcyBCaXRtYXBJbWFnZSBmaW5hbCA6IHB1YmxpYyBJbWFnZSB7CiAgICAgZnJpZW5kIGNsYXNz
IEdyYWRpZW50SW1hZ2U7CiAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKFBhc3NOYXRpdmVJ
bWFnZVB0ciBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQorICAgIHN0
YXRpYyBSZWY8Qml0bWFwSW1hZ2U+IGNyZWF0ZShQYXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2UsIEltYWdlT2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQml0bWFwSW1hZ2UobmF0aXZlSW1hZ2UsIG9ic2VydmVyKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEJpdG1hcEltYWdlKG5hdGl2ZUltYWdlLCBvYnNlcnZlcikp
OwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZT4gY3JlYXRlKEltYWdl
T2JzZXJ2ZXIqIG9ic2VydmVyID0gMCkKKyAgICBzdGF0aWMgUmVmPEJpdG1hcEltYWdlPiBjcmVh
dGUoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIgPSAwKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBCaXRtYXBJbWFnZShvYnNlcnZlcikpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBCaXRtYXBJbWFnZShvYnNlcnZlcikpOwogICAgIH0KICNpZiBQTEFURk9STShXSU4p
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShIQklUTUFQKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVy
YXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5oCmluZGV4IGFhMTE2NjkuLmE5ZDU4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuaApAQCAtMzgsOSArMzgsOSBAQCBjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZTsKIAogY2xhc3Mg
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UgZmluYWwgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2Ugewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBj
cmVhdGUoSW1hZ2UqIGZyb21JbWFnZSwgSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2Us
IGNvbnN0IEZsb2F0U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQor
ICAgIHN0YXRpYyBSZWY8Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U+IGNyZWF0ZShJbWFnZSogZnJv
bUltYWdlLCBJbWFnZSogdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgY29uc3QgRmxvYXRTaXpl
JiBjcm9zc2ZhZGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNpemUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKGZyb21JbWFnZSwgdG9J
bWFnZSwgcGVyY2VudGFnZSwgY3Jvc3NmYWRlU2l6ZSwgc2l6ZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1hZ2Us
IHBlcmNlbnRhZ2UsIGNyb3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGZWF0dXJlU2V0
dGluZ3MuaAppbmRleCBmZjYwNzdlLi5iNDA0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmVhdHVyZVNldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZlYXR1cmVTZXR0aW5ncy5oCkBAIC00OSw5ICs0
OSw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3MgOiBwdWJsaWMgUmVm
Q291bnRlZDxGb250RmVhdHVyZVNldHRpbmdzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8Rm9udEZlYXR1cmVTZXR0aW5ncz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEZvbnRG
ZWF0dXJlU2V0dGluZ3M+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEZvbnRGZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZvbnRGZWF0dXJlU2V0dGluZ3MpOwogICAgIH0KICAgICB2b2lkIGFwcGVuZChjb25zdCBGb250
RmVhdHVyZSYgZmVhdHVyZSkgeyBtX2xpc3QuYXBwZW5kKGZlYXR1cmUpOyB9CiAgICAgc2l6ZV90
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKaW5kZXggM2RkZTkyYy4uMGRmN2U1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtNTYsOCArNTYsOCBA
QCBJbWFnZTo6fkltYWdlKCkKIEltYWdlKiBJbWFnZTo6bnVsbEltYWdlKCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHN0YXRpYyBJbWFnZSogbnVsbEltYWdlID0gQml0bWFw
SW1hZ2U6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gbnVsbEltYWdlOworICAgIHN0
YXRpYyBJbWFnZSYgbnVsbEltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpLmxlYWtSZWYoKTsK
KyAgICByZXR1cm4gJm51bGxJbWFnZTsKIH0KIAogYm9vbCBJbWFnZTo6c3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmgKaW5kZXggMWE2ZmY5Mi4uOTFjZTE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3Mg
Q0FSaW5nQnVmZmVyOwogCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyA6IHB1Ymxp
YyBSZWZDb3VudGVkPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiwgcHVibGljIEF1ZGlvU291
cmNlUHJvdmlkZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDPiBjcmVhdGUoQVZQbGF5ZXJJdGVtKik7CisgICAgc3RhdGljIFJlZlB0
cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gY3JlYXRlKEFWUGxheWVySXRlbSopOwogICAg
IHZpcnR1YWwgfkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCk7CiAKICAgICB2b2lkIHNldFBs
YXllckl0ZW0oQVZQbGF5ZXJJdGVtICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDE1YmUyMmUuLjU4MWY2NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTg0LDExICs4
NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBkb3VibGUga1JpbmdCdWZmZXJE
dXJhdGlvbiA9IDE7CiAKLVBhc3NSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdGVtICppdGVtKQorUmVm
UHRyPEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlKEFWUGxheWVySXRlbSAqaXRlbSkKIHsKICAgICBpZiAoIWNhbkxvYWRNVEF1ZGlv
UHJvY2Vzc2luZ1RhcENyZWF0ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKGl0ZW0pKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhpdGVtKSk7CiB9
CiAKIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QyhBVlBsYXllckl0ZW0gKml0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaAppbmRleCA4OGU4
ZjUwLi5iNWU3ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgKQEAgLTI5LDkgKzI5LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaXN0YW50TGlnaHRTb3VyY2UgOiBwdWJs
aWMgTGlnaHRTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3RhbnRM
aWdodFNvdXJjZT4gY3JlYXRlKGZsb2F0IGF6aW11dGgsIGZsb2F0IGVsZXZhdGlvbikKKyAgICBz
dGF0aWMgUmVmPERpc3RhbnRMaWdodFNvdXJjZT4gY3JlYXRlKGZsb2F0IGF6aW11dGgsIGZsb2F0
IGVsZXZhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlzdGFudExp
Z2h0U291cmNlKGF6aW11dGgsIGVsZXZhdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEaXN0YW50TGlnaHRTb3VyY2UoYXppbXV0aCwgZWxldmF0aW9uKSk7CiAgICAgfQogCiAg
ICAgZmxvYXQgYXppbXV0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXppbXV0aDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKaW5k
ZXggYmFiOWJiOC4uNjJmMmZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCkBAIC00MSw5ICs0MSw5IEBAIEZFQmxlbmQ6
OkZFQmxlbmQoRmlsdGVyKiBmaWx0ZXIsIEJsZW5kTW9kZSBtb2RlKQogewogfQogCi1QYXNzUmVm
UHRyPEZFQmxlbmQ+IEZFQmxlbmQ6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgQmxlbmRNb2RlIG1v
ZGUpCitSZWY8RkVCbGVuZD4gRkVCbGVuZDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBCbGVuZE1v
ZGUgbW9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQmxlbmQoZmlsdGVyLCBtb2Rl
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVCbGVuZChmaWx0ZXIsIG1vZGUpKTsKIH0K
IAogQmxlbmRNb2RlIEZFQmxlbmQ6OmJsZW5kTW9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oCmluZGV4IGU3NDgzNWEu
LjMyMzQ5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRkVCbGVuZCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZFQmxlbmQ+IGNyZWF0ZShGaWx0ZXIqLCBCbGVuZE1vZGUpOworICAgIHN0
YXRpYyBSZWY8RkVCbGVuZD4gY3JlYXRlKEZpbHRlciosIEJsZW5kTW9kZSk7CiAKICAgICBCbGVu
ZE1vZGUgYmxlbmRNb2RlKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRCbGVuZE1vZGUoQmxlbmRNb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCmluZGV4IDgzMGY2NTkuLmQ3NWZhMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9y
TWF0cml4LmNwcApAQCAtMzksOSArMzksOSBAQCBGRUNvbG9yTWF0cml4OjpGRUNvbG9yTWF0cml4
KEZpbHRlciogZmlsdGVyLCBDb2xvck1hdHJpeFR5cGUgdHlwZSwgY29uc3QgVmVjdG9yPAogewog
fQogCi1QYXNzUmVmUHRyPEZFQ29sb3JNYXRyaXg+IEZFQ29sb3JNYXRyaXg6OmNyZWF0ZShGaWx0
ZXIqIGZpbHRlciwgQ29sb3JNYXRyaXhUeXBlIHR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZh
bHVlcykKK1JlZjxGRUNvbG9yTWF0cml4PiBGRUNvbG9yTWF0cml4OjpjcmVhdGUoRmlsdGVyKiBm
aWx0ZXIsIENvbG9yTWF0cml4VHlwZSB0eXBlLCBjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRUNvbG9yTWF0cml4KGZpbHRlciwgdHlwZSwg
dmFsdWVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVDb2xvck1hdHJpeChmaWx0ZXIs
IHR5cGUsIHZhbHVlcykpOwogfQogCiBDb2xvck1hdHJpeFR5cGUgRkVDb2xvck1hdHJpeDo6dHlw
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4IGUzZTA4YTkuLjA1YjdmNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5oCkBAIC0zOSw3ICszOSw3IEBAIGVudW0gQ29sb3JNYXRyaXhUeXBlIHsKIAogY2xh
c3MgRkVDb2xvck1hdHJpeCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZFQ29sb3JNYXRyaXg+IGNyZWF0ZShGaWx0ZXIqLCBDb2xvck1hdHJp
eFR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKKyAgICBzdGF0aWMgUmVmPEZFQ29sb3JNYXRy
aXg+IGNyZWF0ZShGaWx0ZXIqLCBDb2xvck1hdHJpeFR5cGUsIGNvbnN0IFZlY3RvcjxmbG9hdD4m
KTsKIAogICAgIENvbG9yTWF0cml4VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRUeXBl
KENvbG9yTWF0cml4VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmNwcAppbmRleCAx
MjY0MTFkLi5iMTQyYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAKQEAgLTQ2
LDEwICs0NiwxMCBAQCBGRUNvbXBvbmVudFRyYW5zZmVyOjpGRUNvbXBvbmVudFRyYW5zZmVyKEZp
bHRlciogZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlcgogewogfQogCi1QYXNzUmVmUHRy
PEZFQ29tcG9uZW50VHJhbnNmZXI+IEZFQ29tcG9uZW50VHJhbnNmZXI6OmNyZWF0ZShGaWx0ZXIq
IGZpbHRlciwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgcmVkRnVuYywgCitSZWY8
RkVDb21wb25lbnRUcmFuc2Zlcj4gRkVDb21wb25lbnRUcmFuc2Zlcjo6Y3JlYXRlKEZpbHRlciog
ZmlsdGVyLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRGdW5jLAogICAgIGNv
bnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGdyZWVuRnVuYywgY29uc3QgQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24mIGFscGhhRnVuYykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQ29tcG9uZW50VHJh
bnNmZXIoZmlsdGVyLCByZWRGdW5jLCBncmVlbkZ1bmMsIGJsdWVGdW5jLCBhbHBoYUZ1bmMpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRUNvbXBvbmVudFRyYW5zZmVyKGZpbHRlciwgcmVk
RnVuYywgZ3JlZW5GdW5jLCBibHVlRnVuYywgYWxwaGFGdW5jKSk7CiB9CiAKIENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24gRkVDb21wb25lbnRUcmFuc2Zlcjo6cmVkRnVuY3Rpb24oKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvbmVudFRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaAppbmRleCA3NzE2MjZlLi41YzQyOTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50
VHJhbnNmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9uZW50VHJhbnNmZXIuaApAQCAtNjIsOCArNjIsOCBAQCBzdHJ1Y3QgQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbiB7CiAKIGNsYXNzIEZFQ29tcG9uZW50VHJhbnNmZXIgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUNvbXBvbmVu
dFRyYW5zZmVyPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
biYgcmVkRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiYgZ3JlZW5GdW5jLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBibHVlRnVuYywgY29uc3QgQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbiYgYWxwaGFGdW5jKTsKKyAgICBzdGF0aWMgUmVmPEZFQ29tcG9uZW50VHJhbnNm
ZXI+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiByZWRG
dW5jLCBjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uJiBncmVlbkZ1bmMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbiYgYmx1ZUZ1bmMsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mIGFs
cGhhRnVuYyk7CiAKICAgICBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uIHJlZEZ1bmN0aW9uKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRSZWRGdW5jdGlvbihjb25zdCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IGNmMWRkODMuLmYzZjk4Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwCkBAIC00Myw5ICs0Myw5IEBAIEZFQ29tcG9zaXRlOjpGRUNvbXBvc2l0ZShGaWx0
ZXIqIGZpbHRlciwgY29uc3QgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSYgdHlwZSwgZmxvCiB7CiB9
CiAKLVBhc3NSZWZQdHI8RkVDb21wb3NpdGU+IEZFQ29tcG9zaXRlOjpjcmVhdGUoRmlsdGVyKiBm
aWx0ZXIsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdGlvblR5cGUmIHR5cGUsIGZsb2F0IGsxLCBmbG9h
dCBrMiwgZmxvYXQgazMsIGZsb2F0IGs0KQorUmVmPEZFQ29tcG9zaXRlPiBGRUNvbXBvc2l0ZTo6
Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb21wb3NpdGVPcGVyYXRpb25UeXBlJiB0eXBl
LCBmbG9hdCBrMSwgZmxvYXQgazIsIGZsb2F0IGszLCBmbG9hdCBrNCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEZFQ29tcG9zaXRlKGZpbHRlciwgdHlwZSwgazEsIGsyLCBrMywgazQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRUNvbXBvc2l0ZShmaWx0ZXIsIHR5cGUsIGsxLCBr
MiwgazMsIGs0KSk7CiB9CiAKIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgRkVDb21wb3NpdGU6Om9w
ZXJhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKaW5kZXggYzEzMDMwOS4uZWE4MTY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaApAQCAtNDEsNyArNDEsNyBAQCBlbnVtIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgewog
CiBjbGFzcyBGRUNvbXBvc2l0ZSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZFQ29tcG9zaXRlPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29t
cG9zaXRlT3BlcmF0aW9uVHlwZSYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKKyAgICBz
dGF0aWMgUmVmPEZFQ29tcG9zaXRlPiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgQ29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSYsIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKIAogICAgIENvbXBvc2l0
ZU9wZXJhdGlvblR5cGUgb3BlcmF0aW9uKCkgY29uc3Q7CiAgICAgYm9vbCBzZXRPcGVyYXRpb24o
Q29tcG9zaXRlT3BlcmF0aW9uVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcAppbmRleCA2
NmVjMTQwLi45MGVjYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5jcHAKQEAgLTQ5LDExICs0
OSwxMSBAQCBGRUNvbnZvbHZlTWF0cml4OjpGRUNvbnZvbHZlTWF0cml4KEZpbHRlciogZmlsdGVy
LCBjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLAogICAgIEFTU0VSVChtX2tlcm5lbFNpemUuaGVp
Z2h0KCkgPiAwKTsKIH0KIAotUGFzc1JlZlB0cjxGRUNvbnZvbHZlTWF0cml4PiBGRUNvbnZvbHZl
TWF0cml4OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IEludFNpemUmIGtlcm5lbFNpemUs
CitSZWY8RkVDb252b2x2ZU1hdHJpeD4gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKEZpbHRlciog
ZmlsdGVyLCBjb25zdCBJbnRTaXplJiBrZXJuZWxTaXplLAogICAgIGZsb2F0IGRpdmlzb3IsIGZs
b2F0IGJpYXMsIGNvbnN0IEludFBvaW50JiB0YXJnZXRPZmZzZXQsIEVkZ2VNb2RlVHlwZSBlZGdl
TW9kZSwKICAgICBjb25zdCBGbG9hdFBvaW50JiBrZXJuZWxVbml0TGVuZ3RoLCBib29sIHByZXNl
cnZlQWxwaGEsIGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtlcm5lbE1hdHJpeCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEZFQ29udm9sdmVNYXRyaXgoZmlsdGVyLCBrZXJuZWxTaXplLCBkaXZp
c29yLCBiaWFzLCB0YXJnZXRPZmZzZXQsIGVkZ2VNb2RlLCBrZXJuZWxVbml0TGVuZ3RoLAorICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEZFQ29udm9sdmVNYXRyaXgoZmlsdGVyLCBrZXJuZWxTaXpl
LCBkaXZpc29yLCBiaWFzLCB0YXJnZXRPZmZzZXQsIGVkZ2VNb2RlLCBrZXJuZWxVbml0TGVuZ3Ro
LAogICAgICAgICBwcmVzZXJ2ZUFscGhhLCBrZXJuZWxNYXRyaXgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0
cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9s
dmVNYXRyaXguaAppbmRleCA4MWFjOGJjLi41NjI2MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXgu
aApAQCAtNDAsNyArNDAsNyBAQCBlbnVtIEVkZ2VNb2RlVHlwZSB7CiAKIGNsYXNzIEZFQ29udm9s
dmVNYXRyaXggOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoRmlsdGVyKiwgY29uc3QgSW50U2l6ZSYs
CisgICAgc3RhdGljIFJlZjxGRUNvbnZvbHZlTWF0cml4PiBjcmVhdGUoRmlsdGVyKiwgY29uc3Qg
SW50U2l6ZSYsCiAgICAgICAgICAgICBmbG9hdCwgZmxvYXQsIGNvbnN0IEludFBvaW50JiwgRWRn
ZU1vZGVUeXBlLCBjb25zdCBGbG9hdFBvaW50JiwKICAgICAgICAgICAgIGJvb2wsIGNvbnN0IFZl
Y3RvcjxmbG9hdD4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAppbmRleCBhMTEwY2Fl
Li5mZjY3NDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmNwcApAQCAtMzMsMTEgKzMzLDEx
IEBAIEZFRGlmZnVzZUxpZ2h0aW5nOjpGRURpZmZ1c2VMaWdodGluZyhGaWx0ZXIqIGZpbHRlciwg
Y29uc3QgQ29sb3ImIGxpZ2h0aW5nQ29sb3IsCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVEaWZmdXNl
TGlnaHRpbmc+IEZFRGlmZnVzZUxpZ2h0aW5nOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0
IENvbG9yJiBsaWdodGluZ0NvbG9yLAorUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBGRURpZmZ1c2VM
aWdodGluZzo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb2xvciYgbGlnaHRpbmdDb2xv
ciwKICAgICBmbG9hdCBzdXJmYWNlU2NhbGUsIGZsb2F0IGRpZmZ1c2VDb25zdGFudCwgZmxvYXQg
a2VybmVsVW5pdExlbmd0aFgsCiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFksIFBhc3NSZWZQ
dHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RkVEaWZmdXNlTGlnaHRpbmcoZmlsdGVyLCBsaWdodGluZ0NvbG9yLCBzdXJmYWNlU2NhbGUsIGRp
ZmZ1c2VDb25zdGFudCwga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBsaWdo
dFNvdXJjZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFRGlmZnVzZUxpZ2h0aW5nKGZp
bHRlciwgbGlnaHRpbmdDb2xvciwgc3VyZmFjZVNjYWxlLCBkaWZmdXNlQ29uc3RhbnQsIGtlcm5l
bFVuaXRMZW5ndGhYLCBrZXJuZWxVbml0TGVuZ3RoWSwgbGlnaHRTb3VyY2UpKTsKIH0KIAogRkVE
aWZmdXNlTGlnaHRpbmc6On5GRURpZmZ1c2VMaWdodGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlmZnVzZUxpZ2h0aW5n
LmgKaW5kZXggZjc4ZGE2MC4uMWJjYzJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaWZmdXNlTGlnaHRpbmcuaApAQCAt
MzAsNyArMzAsNyBAQCBjbGFzcyBMaWdodFNvdXJjZTsKIAogY2xhc3MgRkVEaWZmdXNlTGlnaHRp
bmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RkVEaWZmdXNlTGlnaHRpbmc+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBm
bG9hdCwKKyAgICBzdGF0aWMgUmVmPEZFRGlmZnVzZUxpZ2h0aW5nPiBjcmVhdGUoRmlsdGVyKiwg
Y29uc3QgQ29sb3ImLCBmbG9hdCwgZmxvYXQsCiAgICAgICAgIGZsb2F0LCBmbG9hdCwgUGFzc1Jl
ZlB0cjxMaWdodFNvdXJjZT4pOwogICAgIHZpcnR1YWwgfkZFRGlmZnVzZUxpZ2h0aW5nKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVE
aXNwbGFjZW1lbnRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5jcHAKaW5kZXggYjRhZmMwYy4uYmEwMWMwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNl
bWVudE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURpc3BsYWNlbWVudE1hcC5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBGRURpc3BsYWNlbWVu
dE1hcDo6RkVEaXNwbGFjZW1lbnRNYXAoRmlsdGVyKiBmaWx0ZXIsIENoYW5uZWxTZWxlY3RvclR5
cGUgeENoYW5uZQogewogfQogCi1QYXNzUmVmUHRyPEZFRGlzcGxhY2VtZW50TWFwPiBGRURpc3Bs
YWNlbWVudE1hcDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhD
aGFubmVsU2VsZWN0b3IsCitSZWY8RkVEaXNwbGFjZW1lbnRNYXA+IEZFRGlzcGxhY2VtZW50TWFw
OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIENoYW5uZWxTZWxlY3RvclR5cGUgeENoYW5uZWxTZWxl
Y3RvciwKICAgICBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0IHNj
YWxlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVEaXNwbGFjZW1lbnRNYXAoZmlsdGVy
LCB4Q2hhbm5lbFNlbGVjdG9yLCB5Q2hhbm5lbFNlbGVjdG9yLCBzY2FsZSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZFRGlzcGxhY2VtZW50TWFwKGZpbHRlciwgeENoYW5uZWxTZWxlY3Rv
ciwgeUNoYW5uZWxTZWxlY3Rvciwgc2NhbGUpKTsKIH0KIAogQ2hhbm5lbFNlbGVjdG9yVHlwZSBG
RURpc3BsYWNlbWVudE1hcDo6eENoYW5uZWxTZWxlY3RvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFw
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2Vt
ZW50TWFwLmgKaW5kZXggYmY4Yzg5OS4uMDQyMDljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAu
aApAQCAtMzgsNyArMzgsNyBAQCBlbnVtIENoYW5uZWxTZWxlY3RvclR5cGUgewogCiBjbGFzcyBG
RURpc3BsYWNlbWVudE1hcCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZFRGlzcGxhY2VtZW50TWFwPiBjcmVhdGUoRmlsdGVyKiwgQ2hhbm5l
bFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFu
bmVsU2VsZWN0b3IsIGZsb2F0KTsKKyAgICBzdGF0aWMgUmVmPEZFRGlzcGxhY2VtZW50TWFwPiBj
cmVhdGUoRmlsdGVyKiwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFu
bmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0KTsKIAogICAgIENoYW5uZWxT
ZWxlY3RvclR5cGUgeENoYW5uZWxTZWxlY3RvcigpIGNvbnN0OwogICAgIGJvb2wgc2V0WENoYW5u
ZWxTZWxlY3Rvcihjb25zdCBDaGFubmVsU2VsZWN0b3JUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcApp
bmRleCA4ZjVlMGZiLi44MmYyYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCkBAIC00Miw5ICs0Miw5
IEBAIEZFRHJvcFNoYWRvdzo6RkVEcm9wU2hhZG93KEZpbHRlciogZmlsdGVyLCBmbG9hdCBzdGRY
LCBmbG9hdCBzdGRZLCBmbG9hdCBkeCwgZmxvCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVEcm9wU2hh
ZG93PiBGRURyb3BTaGFkb3c6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgc3RkWCwgZmxv
YXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZs
b2F0IHNoYWRvd09wYWNpdHkpCitSZWY8RkVEcm9wU2hhZG93PiBGRURyb3BTaGFkb3c6OmNyZWF0
ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgc3RkWCwgZmxvYXQgc3RkWSwgZmxvYXQgZHgsIGZsb2F0
IGR5LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGZsb2F0IHNoYWRvd09wYWNpdHkpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRURyb3BTaGFkb3coZmlsdGVyLCBzdGRYLCBzdGRZLCBk
eCwgZHksIHNoYWRvd0NvbG9yLCBzaGFkb3dPcGFjaXR5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRkVEcm9wU2hhZG93KGZpbHRlciwgc3RkWCwgc3RkWSwgZHgsIGR5LCBzaGFkb3dDb2xv
ciwgc2hhZG93T3BhY2l0eSkpOwogfQogCiB2b2lkIEZFRHJvcFNoYWRvdzo6ZGV0ZXJtaW5lQWJz
b2x1dGVQYWludFJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgKaW5kZXggNzdhNzU5NC4uZDYxNzExZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BT
aGFkb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAK
IGNsYXNzIEZFRHJvcFNoYWRvdyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZFRHJvcFNoYWRvdz4gY3JlYXRlKEZpbHRlciosIGZsb2F0LCBm
bG9hdCwgZmxvYXQsIGZsb2F0LCBjb25zdCBDb2xvciYsIGZsb2F0KTsKKyAgICBzdGF0aWMgUmVm
PEZFRHJvcFNoYWRvdz4gY3JlYXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgZmxvYXQsIGZsb2F0
LCBjb25zdCBDb2xvciYsIGZsb2F0KTsKIAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25z
dCB7IHJldHVybiBtX3N0ZFg7IH0KICAgICB2b2lkIHNldFN0ZERldmlhdGlvblgoZmxvYXQgc3Rk
WCkgeyBtX3N0ZFggPSBzdGRYOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAppbmRleCBjOGMzMTAxLi5iY2RiMjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9v
ZC5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgRkVGbG9vZDo6RkVGbG9vZChGaWx0ZXIqIGZpbHRlciwg
Y29uc3QgQ29sb3ImIGZsb29kQ29sb3IsIGZsb2F0IGZsb29kT3BhY2l0eSkKIHsKIH0KIAotUGFz
c1JlZlB0cjxGRUZsb29kPiBGRUZsb29kOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENv
bG9yJiBmbG9vZENvbG9yLCBmbG9hdCBmbG9vZE9wYWNpdHkpCitSZWY8RkVGbG9vZD4gRkVGbG9v
ZDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBjb25zdCBDb2xvciYgZmxvb2RDb2xvciwgZmxvYXQg
Zmxvb2RPcGFjaXR5KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVGbG9vZChmaWx0ZXIs
IGZsb29kQ29sb3IsIGZsb29kT3BhY2l0eSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZF
Rmxvb2QoZmlsdGVyLCBmbG9vZENvbG9yLCBmbG9vZE9wYWNpdHkpKTsKIH0KIAogQ29sb3IgRkVG
bG9vZDo6Zmxvb2RDb2xvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCmluZGV4IDkwYmY3MTkuLjFjYTRiZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5o
CkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVGbG9vZCA6
IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZF
Rmxvb2Q+IGNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CisgICAg
c3RhdGljIFJlZjxGRUZsb29kPiBjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiwg
ZmxvYXQpOwogCiAgICAgQ29sb3IgZmxvb2RDb2xvcigpIGNvbnN0OwogICAgIGJvb2wgc2V0Rmxv
b2RDb2xvcihjb25zdCBDb2xvciAmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKaW5kZXggMDU2NzRk
My4uNjIyZWY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKQEAgLTg1LDkgKzg1LDkgQEAgRkVH
YXVzc2lhbkJsdXI6OkZFR2F1c3NpYW5CbHVyKEZpbHRlciogZmlsdGVyLCBmbG9hdCB4LCBmbG9h
dCB5LCBFZGdlTW9kZVR5cGUgZWQKIHsKIH0KIAotUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4g
RkVHYXVzc2lhbkJsdXI6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgZmxvYXQgeCwgZmxvYXQgeSwg
RWRnZU1vZGVUeXBlIGVkZ2VNb2RlKQorUmVmPEZFR2F1c3NpYW5CbHVyPiBGRUdhdXNzaWFuQmx1
cjo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBmbG9hdCB4LCBmbG9hdCB5LCBFZGdlTW9kZVR5cGUg
ZWRnZU1vZGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRUdhdXNzaWFuQmx1cihmaWx0
ZXIsIHgsIHksIGVkZ2VNb2RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVHYXVzc2lh
bkJsdXIoZmlsdGVyLCB4LCB5LCBlZGdlTW9kZSkpOwogfQogCiBmbG9hdCBGRUdhdXNzaWFuQmx1
cjo6c3RkRGV2aWF0aW9uWCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKaW5kZXggN2FmNTQyOS4u
N2FiM2JlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUdhdXNzaWFuQmx1ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEZFR2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVHYXVzc2lhbkJsdXI+IGNyZWF0ZShG
aWx0ZXIqLCBmbG9hdCwgZmxvYXQsIEVkZ2VNb2RlVHlwZSk7CisgICAgc3RhdGljIFJlZjxGRUdh
dXNzaWFuQmx1cj4gY3JlYXRlKEZpbHRlciosIGZsb2F0LCBmbG9hdCwgRWRnZU1vZGVUeXBlKTsK
IAogICAgIGZsb2F0IHN0ZERldmlhdGlvblgoKSBjb25zdDsKICAgICB2b2lkIHNldFN0ZERldmlh
dGlvblgoZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRU1lcmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNZXJnZS5jcHAKaW5kZXggN2ZkNzZmNi4uNjBmYTU5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1lcmdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuY3BwCkBA
IC0zMyw5ICszMyw5IEBAIEZFTWVyZ2U6OkZFTWVyZ2UoRmlsdGVyKiBmaWx0ZXIpCiB7CiB9CiAK
LVBhc3NSZWZQdHI8RkVNZXJnZT4gRkVNZXJnZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQorUmVm
PEZFTWVyZ2U+IEZFTWVyZ2U6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlcikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEZFTWVyZ2UoZmlsdGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RkVNZXJnZShmaWx0ZXIpKTsKIH0KIAogdm9pZCBGRU1lcmdlOjpwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1lcmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TWVyZ2UuaAppbmRleCAwZDVlZDQ0Li5lNWJjZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaApAQCAtMzAsNyArMzAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFTWVyZ2UgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRU1lcmdlPiBjcmVhdGUoRmlsdGVy
Kik7CisgICAgc3RhdGljIFJlZjxGRU1lcmdlPiBjcmVhdGUoRmlsdGVyKik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7CiAjaWYgRU5BQkxFKE9QRU5DTCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3Jw
aG9sb2d5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
b3JwaG9sb2d5LmNwcAppbmRleCBhNThiZjYyLi5hOWFhYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3Bw
CkBAIC00MSw5ICs0MSw5IEBAIEZFTW9ycGhvbG9neTo6RkVNb3JwaG9sb2d5KEZpbHRlciogZmls
dGVyLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHR5cGUsIGZsb2F0IHJhCiB7CiB9CiAKLVBhc3NS
ZWZQdHI8RkVNb3JwaG9sb2d5PiBGRU1vcnBob2xvZ3k6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwg
TW9ycGhvbG9neU9wZXJhdG9yVHlwZSB0eXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZ
KQorUmVmPEZFTW9ycGhvbG9neT4gRkVNb3JwaG9sb2d5OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIs
IE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgdHlwZSwgZmxvYXQgcmFkaXVzWCwgZmxvYXQgcmFkaXVz
WSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFTW9ycGhvbG9neShmaWx0ZXIsIHR5cGUs
IHJhZGl1c1gsIHJhZGl1c1kpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGRU1vcnBob2xv
Z3koZmlsdGVyLCB0eXBlLCByYWRpdXNYLCByYWRpdXNZKSk7CiB9CiAKIE1vcnBob2xvZ3lPcGVy
YXRvclR5cGUgRkVNb3JwaG9sb2d5Ojptb3JwaG9sb2d5T3BlcmF0b3IoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xv
Z3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9s
b2d5LmgKaW5kZXggODZlMDZiMS4uMzNhNzI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCkBAIC0zNSw3ICsz
NSw3IEBAIGVudW0gTW9ycGhvbG9neU9wZXJhdG9yVHlwZSB7CiAKIGNsYXNzIEZFTW9ycGhvbG9n
eSA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZFTW9ycGhvbG9neT4gY3JlYXRlKEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZs
b2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpOyAgCisgICAgc3RhdGljIFJlZjxGRU1vcnBob2xv
Z3k+IGNyZWF0ZShGaWx0ZXIqLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlLCBmbG9hdCByYWRpdXNY
LCBmbG9hdCByYWRpdXNZKTsKICAgICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIG1vcnBob2xvZ3lP
cGVyYXRvcigpIGNvbnN0OwogICAgIGJvb2wgc2V0TW9ycGhvbG9neU9wZXJhdG9yKE1vcnBob2xv
Z3lPcGVyYXRvclR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCmluZGV4IGI2N2RmYzMuLmYxNTNkZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZz
ZXQuY3BwCkBAIC0zNyw5ICszNyw5IEBAIEZFT2Zmc2V0OjpGRU9mZnNldChGaWx0ZXIqIGZpbHRl
ciwgZmxvYXQgZHgsIGZsb2F0IGR5KQogewogfQogCi1QYXNzUmVmUHRyPEZFT2Zmc2V0PiBGRU9m
ZnNldDo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBmbG9hdCBkeCwgZmxvYXQgZHkpCitSZWY8RkVP
ZmZzZXQ+IEZFT2Zmc2V0OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGZsb2F0IGR4LCBmbG9hdCBk
eSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFT2Zmc2V0KGZpbHRlciwgZHgsIGR5KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRkVPZmZzZXQoZmlsdGVyLCBkeCwgZHkpKTsKIH0K
IAogZmxvYXQgRkVPZmZzZXQ6OmR4KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCAwY2VlZDM3Li4yZmJkZTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
T2Zmc2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU9mZnNldC5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RkVPZmZzZXQgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxGRU9mZnNldD4gY3JlYXRlKEZpbHRlciosIGZsb2F0IGR4LCBmbG9hdCBkeSk7Cisg
ICAgc3RhdGljIFJlZjxGRU9mZnNldD4gY3JlYXRlKEZpbHRlciosIGZsb2F0IGR4LCBmbG9hdCBk
eSk7CiAKICAgICBmbG9hdCBkeCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RHgoZmxvYXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVNwZWN1
bGFyTGlnaHRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRVNwZWN1bGFyTGlnaHRpbmcuY3BwCmluZGV4IDRmODlmOGEuLjhhNTM2YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVTcGVjdWxhckxp
Z2h0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKQEAgLTM0LDExICszNCwxMSBAQCBGRVNwZWN1bGFyTGln
aHRpbmc6OkZFU3BlY3VsYXJMaWdodGluZyhGaWx0ZXIqIGZpbHRlciwgY29uc3QgQ29sb3ImIGxp
Z2h0aW5nQ29sbwogewogfQogCi1QYXNzUmVmUHRyPEZFU3BlY3VsYXJMaWdodGluZz4gRkVTcGVj
dWxhckxpZ2h0aW5nOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGlu
Z0NvbG9yLAorUmVmPEZFU3BlY3VsYXJMaWdodGluZz4gRkVTcGVjdWxhckxpZ2h0aW5nOjpjcmVh
dGUoRmlsdGVyKiBmaWx0ZXIsIGNvbnN0IENvbG9yJiBsaWdodGluZ0NvbG9yLAogICAgIGZsb2F0
IHN1cmZhY2VTY2FsZSwgZmxvYXQgc3BlY3VsYXJDb25zdGFudCwgZmxvYXQgc3BlY3VsYXJFeHBv
bmVudCwKICAgICBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWCwgZmxvYXQga2VybmVsVW5pdExlbmd0
aFksIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRkVTcGVjdWxhckxpZ2h0aW5nKGZpbHRlciwgbGlnaHRpbmdDb2xvciwgc3Vy
ZmFjZVNjYWxlLCBzcGVjdWxhckNvbnN0YW50LCBzcGVjdWxhckV4cG9uZW50LAorICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZFU3BlY3VsYXJMaWdodGluZyhmaWx0ZXIsIGxpZ2h0aW5nQ29sb3Is
IHN1cmZhY2VTY2FsZSwgc3BlY3VsYXJDb25zdGFudCwgc3BlY3VsYXJFeHBvbmVudCwKICAgICAg
ICAga2VybmVsVW5pdExlbmd0aFgsIGtlcm5lbFVuaXRMZW5ndGhZLCBsaWdodFNvdXJjZSkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVNwZWN1bGFyTGlnaHRpbmcuaAppbmRleCA3OWQ4NmRlLi4wN2ZkNTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFU3BlY3Vs
YXJMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVTcGVjdWxhckxpZ2h0aW5nLmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGRVNwZWN1bGFyTGlnaHRpbmcgOiBwdWJsaWMgRkVMaWdodGluZyB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVTcGVjdWxhckxpZ2h0aW5nPiBjcmVhdGUo
RmlsdGVyKiwgY29uc3QgQ29sb3ImLCBmbG9hdCwgZmxvYXQsCisgICAgc3RhdGljIFJlZjxGRVNw
ZWN1bGFyTGlnaHRpbmc+IGNyZWF0ZShGaWx0ZXIqLCBjb25zdCBDb2xvciYsIGZsb2F0LCBmbG9h
dCwKICAgICAgICAgZmxvYXQsIGZsb2F0LCBmbG9hdCwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4p
OwogICAgIHZpcnR1YWwgfkZFU3BlY3VsYXJMaWdodGluZygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKaW5kZXggNWUyMTc3
Yy4uNjFlNTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVUaWxlLmNwcApAQCAtMzYsOSArMzYsOSBAQCBGRVRpbGU6OkZFVGlsZShGaWx0
ZXIqIGZpbHRlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxGRVRpbGU+IEZFVGlsZTo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyKQorUmVmPEZFVGlsZT4gRkVUaWxlOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRVRpbGUoZmlsdGVyKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRkVUaWxlKGZpbHRlcikpOwogfQogCiB2b2lkIEZFVGlsZTo6cGxhdGZv
cm1BcHBseVNvZnR3YXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFVGlsZS5oCmluZGV4IDMwNTZhZGIuLmEwNTIwYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaApAQCAtMjksNyAr
MjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBGRVRpbGUgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRVRpbGU+IGNy
ZWF0ZShGaWx0ZXIqIGZpbHRlcik7CisgICAgc3RhdGljIFJlZjxGRVRpbGU+IGNyZWF0ZShGaWx0
ZXIqIGZpbHRlcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7
CiAgICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmNwcAppbmRleCBkMjE2ZDc1
Li4wY2RlNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFVHVyYnVsZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCkBAIC01OSw5ICs1OSw5IEBAIEZFVHVyYnVs
ZW5jZTo6RkVUdXJidWxlbmNlKEZpbHRlciogZmlsdGVyLCBUdXJidWxlbmNlVHlwZSB0eXBlLCBm
bG9hdCBiYXNlRnJlcXVlCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVUdXJidWxlbmNlPiBGRVR1cmJ1
bGVuY2U6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgVHVyYnVsZW5jZVR5cGUgdHlwZSwgZmxvYXQg
YmFzZUZyZXF1ZW5jeVgsIGZsb2F0IGJhc2VGcmVxdWVuY3lZLCBpbnQgbnVtT2N0YXZlcywgZmxv
YXQgc2VlZCwgYm9vbCBzdGl0Y2hUaWxlcykKK1JlZjxGRVR1cmJ1bGVuY2U+IEZFVHVyYnVsZW5j
ZTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBUdXJidWxlbmNlVHlwZSB0eXBlLCBmbG9hdCBiYXNl
RnJlcXVlbmN5WCwgZmxvYXQgYmFzZUZyZXF1ZW5jeVksIGludCBudW1PY3RhdmVzLCBmbG9hdCBz
ZWVkLCBib29sIHN0aXRjaFRpbGVzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVUdXJi
dWxlbmNlKGZpbHRlciwgdHlwZSwgYmFzZUZyZXF1ZW5jeVgsIGJhc2VGcmVxdWVuY3lZLCBudW1P
Y3RhdmVzLCBzZWVkLCBzdGl0Y2hUaWxlcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZF
VHVyYnVsZW5jZShmaWx0ZXIsIHR5cGUsIGJhc2VGcmVxdWVuY3lYLCBiYXNlRnJlcXVlbmN5WSwg
bnVtT2N0YXZlcywgc2VlZCwgc3RpdGNoVGlsZXMpKTsKIH0KIAogVHVyYnVsZW5jZVR5cGUgRkVU
dXJidWxlbmNlOjp0eXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUdXJidWxlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oCmluZGV4IGU4YzEwMDUuLjE4MGI2
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVUdXJidWxlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRVR1cmJ1bGVuY2UuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFR1cmJ1bGVuY2VUeXBl
IHsKIAogY2xhc3MgRkVUdXJidWxlbmNlIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RkVUdXJidWxlbmNlPiBjcmVhdGUoRmlsdGVyKiwgVHVy
YnVsZW5jZVR5cGUsIGZsb2F0LCBmbG9hdCwgaW50LCBmbG9hdCwgYm9vbCk7CisgICAgc3RhdGlj
IFJlZjxGRVR1cmJ1bGVuY2U+IGNyZWF0ZShGaWx0ZXIqLCBUdXJidWxlbmNlVHlwZSwgZmxvYXQs
IGZsb2F0LCBpbnQsIGZsb2F0LCBib29sKTsKIAogICAgIFR1cmJ1bGVuY2VUeXBlIHR5cGUoKSBj
b25zdDsKICAgICBib29sIHNldFR5cGUoVHVyYnVsZW5jZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNoTW9uaXRvcklP
Uy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvcklPUy5oCmluZGV4IGJhZTJhNTIuLmJmYzBkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hN
b25pdG9ySU9TLmgKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9y
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3JJ
T1M+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCisgICAgc3RhdGljIFJlZjxE
aXNwbGF5UmVmcmVzaE1vbml0b3JJT1M+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpc3BsYXlSZWZyZXNoTW9u
aXRvcklPUyhkaXNwbGF5SUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxh
eVJlZnJlc2hNb25pdG9ySU9TKGRpc3BsYXlJRCkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFs
IH5EaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAppbmRl
eCBmZmIyYjYzLi5lNDY5YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCkBAIC03MywxNCAr
NzMsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjbGFzcyBDb21wbGV4VGV4dFJ1biA6IHB1
YmxpYyBSZWZDb3VudGVkPENvbXBsZXhUZXh0UnVuPiB7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKENUUnVuUmVmIGN0UnVuLCBj
b25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGEsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1
bnNpZ25lZCBzdHJpbmdMb2NhdGlvbiwgc2l6ZV90IHN0cmluZ0xlbmd0aCwgQ0ZSYW5nZSBydW5S
YW5nZSkKKyAgICAgICAgc3RhdGljIFJlZjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKENUUnVuUmVm
IGN0UnVuLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udERhdGEsIGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBzdHJpbmdMb2NhdGlvbiwgc2l6ZV90IHN0cmluZ0xlbmd0aCwgQ0ZS
YW5nZSBydW5SYW5nZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBDb21wbGV4VGV4dFJ1bihjdFJ1biwgZm9udERhdGEsIGNoYXJhY3RlcnMsIHN0cmluZ0xvY2F0
aW9uLCBzdHJpbmdMZW5ndGgsIHJ1blJhbmdlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDb21wbGV4VGV4dFJ1bihjdFJ1biwgZm9udERhdGEsIGNoYXJhY3RlcnMsIHN0cmlu
Z0xvY2F0aW9uLCBzdHJpbmdMZW5ndGgsIHJ1blJhbmdlKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBmb250RGF0YSwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmlu
Z0xvY2F0aW9uLCBzaXplX3Qgc3RyaW5nTGVuZ3RoLCBib29sIGx0cikKKyAgICAgICAgc3RhdGlj
IFJlZjxDb21wbGV4VGV4dFJ1bj4gY3JlYXRlKGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0
YSwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCBzaXpl
X3Qgc3RyaW5nTGVuZ3RoLCBib29sIGx0cikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDb21wbGV4VGV4dFJ1bihmb250RGF0YSwgY2hhcmFjdGVycywgc3RyaW5n
TG9jYXRpb24sIHN0cmluZ0xlbmd0aCwgbHRyKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDb21wbGV4VGV4dFJ1bihmb250RGF0YSwgY2hhcmFjdGVycywgc3RyaW5nTG9jYXRp
b24sIHN0cmluZ0xlbmd0aCwgbHRyKSk7CiAgICAgICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBn
bHlwaENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9nbHlwaENvdW50OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgKaW5kZXggODk1NGU5Yy4uYTc0ZGQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuaApAQCAtMzQsNyArMzQs
NiBAQAogI2luY2x1ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC00MiwxNiArNDEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBS
YXdEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UmF3RGF0YT4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJhd0RhdGE+IGNyZWF0ZShWZWN0b3I8Y2hhcj4mJiBkYXRhKQorICAgIHN0
YXRpYyBSZWY8UmF3RGF0YT4gY3JlYXRlKFZlY3RvcjxjaGFyPiYmIGRhdGEpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJhd0RhdGEoV1RGOjptb3ZlKGRhdGEpKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJhd0RhdGEoV1RGOjptb3ZlKGRhdGEpKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmF3RGF0YT4gY3JlYXRlKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBzaXplKQorICAgIHN0YXRpYyBSZWY8UmF3RGF0YT4gY3JlYXRlKGNvbnN0IGNo
YXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAgVmVjdG9yPGNoYXI+IGRhdGFW
ZWN0b3Ioc2l6ZSk7CiAgICAgICAgIG1lbWNweShkYXRhVmVjdG9yLmRhdGEoKSwgZGF0YSwgc2l6
ZSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmF3RGF0YShXVEY6Om1vdmUoZGF0YVZl
Y3RvcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmF3RGF0YShXVEY6Om1vdmUo
ZGF0YVZlY3RvcikpKTsKICAgICB9CiAKICAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhLmRhdGEoKTsgfQpAQCAtMTE4LDkgKzExNyw5IEBAIHR5cGVkZWYgVmVjdG9y
PEJsb2JEYXRhSXRlbT4gQmxvYkRhdGFJdGVtTGlzdDsKIAogY2xhc3MgQmxvYkRhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxCbG9iRGF0YT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEJsb2JEYXRhPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGE+IGNyZWF0ZSgpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2JEYXRhKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGEpOwogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2Uu
aAppbmRleCA1ODRiNGU2Li44MTdkN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKQEAgLTM0LDkgKzM0LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHBhdGgpCisgICAgc3RhdGljIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHBhdGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
b2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoKSk7CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB+QmxvYkRhdGFGaWxlUmVmZXJlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcApp
bmRleCAyMGM3NTEwLi5hMDI2NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQ
YWlyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAppbmRleCBkYjEyNmM5Li5lN2U2ZWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcApAQCAtMzIsMTIg
KzMyLDEyIEBAIHN0cnVjdCBTYW1lU2l6ZUFzQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTYW1lU2l6ZUFzQmlkaUNvbnRleHQ+IHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEJpZGlD
b250ZXh0KSA9PSBzaXplb2YoU2FtZVNpemVBc0JpZGlDb250ZXh0KSwgQmlkaUNvbnRleHRfc2hv
dWxkX3N0YXlfc21hbGwpOwogCi1pbmxpbmUgUGFzc1JlZlB0cjxCaWRpQ29udGV4dD4gQmlkaUNv
bnRleHQ6OmNyZWF0ZVVuY2FjaGVkKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9u
IGRpcmVjdGlvbiwgYm9vbCBvdmVycmlkZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSBzb3VyY2UsIEJp
ZGlDb250ZXh0KiBwYXJlbnQpCitpbmxpbmUgUmVmPEJpZGlDb250ZXh0PiBCaWRpQ29udGV4dDo6
Y3JlYXRlVW5jYWNoZWQodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0
aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlIHNvdXJjZSwgQmlkaUNvbnRl
eHQqIHBhcmVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpZGlDb250ZXh0KGxldmVs
LCBkaXJlY3Rpb24sIG92ZXJyaWRlLCBzb3VyY2UsIHBhcmVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEJpZGlDb250ZXh0KGxldmVsLCBkaXJlY3Rpb24sIG92ZXJyaWRlLCBzb3VyY2Us
IHBhcmVudCkpOwogfQogCi1QYXNzUmVmUHRyPEJpZGlDb250ZXh0PiBCaWRpQ29udGV4dDo6Y3Jl
YXRlKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBv
dmVycmlkZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSBzb3VyY2UsIEJpZGlDb250ZXh0KiBwYXJlbnQp
CitSZWY8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0OjpjcmVhdGUodW5zaWduZWQgY2hhciBsZXZl
bCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5n
U291cmNlIHNvdXJjZSwgQmlkaUNvbnRleHQqIHBhcmVudCkKIHsKICAgICBBU1NFUlQoZGlyZWN0
aW9uID09IChsZXZlbCAlIDIgPyBVX1JJR0hUX1RPX0xFRlQgOiBVX0xFRlRfVE9fUklHSFQpKTsK
IApAQCAtNDcsMjAgKzQ3LDIwIEBAIFBhc3NSZWZQdHI8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0
OjpjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24KICAgICBBU1NFUlQo
bGV2ZWwgPD0gMSk7CiAgICAgaWYgKCFsZXZlbCkgewogICAgICAgICBpZiAoIW92ZXJyaWRlKSB7
Ci0gICAgICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQqIGx0ckNvbnRleHQgPSBjcmVhdGVVbmNh
Y2hlZCgwLCBVX0xFRlRfVE9fUklHSFQsIGZhbHNlLCBGcm9tU3R5bGVPckRPTSwgMCkubGVha1Jl
ZigpOworICAgICAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBsdHJDb250ZXh0ID0gY3JlYXRl
VW5jYWNoZWQoMCwgVV9MRUZUX1RPX1JJR0hULCBmYWxzZSwgRnJvbVN0eWxlT3JET00sIDApLmxl
YWtSZWYoKTsKICAgICAgICAgICAgIHJldHVybiBsdHJDb250ZXh0OwogICAgICAgICB9CiAKLSAg
ICAgICAgc3RhdGljIEJpZGlDb250ZXh0KiBsdHJPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNh
Y2hlZCgwLCBVX0xFRlRfVE9fUklHSFQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVm
KCk7CisgICAgICAgIHN0YXRpYyBCaWRpQ29udGV4dCYgbHRyT3ZlcnJpZGVDb250ZXh0ID0gY3Jl
YXRlVW5jYWNoZWQoMCwgVV9MRUZUX1RPX1JJR0hULCB0cnVlLCBGcm9tU3R5bGVPckRPTSwgMCku
bGVha1JlZigpOwogICAgICAgICByZXR1cm4gbHRyT3ZlcnJpZGVDb250ZXh0OwogICAgIH0KIAog
ICAgIGlmICghb3ZlcnJpZGUpIHsKLSAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0KiBydGxDb250
ZXh0ID0gY3JlYXRlVW5jYWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxl
T3JET00sIDApLmxlYWtSZWYoKTsKKyAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxDb250
ZXh0ID0gY3JlYXRlVW5jYWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxl
T3JET00sIDApLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIHJ0bENvbnRleHQ7CiAgICAgfQog
Ci0gICAgc3RhdGljIEJpZGlDb250ZXh0KiBydGxPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNh
Y2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVm
KCk7CisgICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVV
bmNhY2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFr
UmVmKCk7CiAgICAgcmV0dXJuIHJ0bE92ZXJyaWRlQ29udGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oCmluZGV4IDlhNDI3MzYuLjYwYjExODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKQEAgLTM4LDcgKzM4
LDcgQEAgZW51bSBCaWRpRW1iZWRkaW5nU291cmNlIHsKIC8vIFVzZWQgdG8ga2VlcCB0cmFjayBv
ZiBleHBsaWNpdCBlbWJlZGRpbmdzLgogY2xhc3MgQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVmQ291
bnRlZDxCaWRpQ29udGV4dD4gewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQ
YXNzUmVmUHRyPEJpZGlDb250ZXh0PiBjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJE
aXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUgPSBmYWxzZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSA9IEZy
b21TdHlsZU9yRE9NLCBCaWRpQ29udGV4dCogcGFyZW50ID0gMCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxCaWRpQ29udGV4dD4gY3JlYXRlKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVD
aGFyRGlyZWN0aW9uLCBib29sIG92ZXJyaWRlID0gZmFsc2UsIEJpZGlFbWJlZGRpbmdTb3VyY2Ug
PSBGcm9tU3R5bGVPckRPTSwgQmlkaUNvbnRleHQqIHBhcmVudCA9IDApOwogCiAgICAgQmlkaUNv
bnRleHQqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50LmdldCgpOyB9CiAgICAgdW5z
aWduZWQgY2hhciBsZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGV2ZWw7IH0KQEAgLTU3LDcgKzU3
LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Qmlk
aUNvbnRleHQ+IGNyZWF0ZVVuY2FjaGVkKHVuc2lnbmVkIGNoYXIgbGV2ZWwsIFVDaGFyRGlyZWN0
aW9uLCBib29sIG92ZXJyaWRlLCBCaWRpRW1iZWRkaW5nU291cmNlLCBCaWRpQ29udGV4dCogcGFy
ZW50KTsKKyAgICBzdGF0aWMgUmVmPEJpZGlDb250ZXh0PiBjcmVhdGVVbmNhY2hlZCh1bnNpZ25l
ZCBjaGFyIGxldmVsLCBVQ2hhckRpcmVjdGlvbiwgYm9vbCBvdmVycmlkZSwgQmlkaUVtYmVkZGlu
Z1NvdXJjZSwgQmlkaUNvbnRleHQqIHBhcmVudCk7CiAKICAgICB1bnNpZ25lZCBtX2xldmVsIDog
NjsgLy8gVGhlIG1heGltaXVtIGJpZGkgbGV2ZWwgaXMgNjI6IGh0dHA6Ly91bmljb2RlLm9yZy9y
ZXBvcnRzL3RyOS8jRXhwbGljaXRfTGV2ZWxzX2FuZF9EaXJlY3Rpb25zCiAgICAgdW5zaWduZWQg
bV9kaXJlY3Rpb24gOiA1OyAvLyBEaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvRE9NTWltZVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuaAppbmRleCBkM2NmMGE1Li41MDgzZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTU1pbWVUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1l
VHlwZS5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIERPTVBsdWdpbjsKIAogY2xhc3MgRE9NTWlt
ZVR5cGUgOiBwdWJsaWMgUmVmQ291bnRlZDxET01NaW1lVHlwZT4sIHB1YmxpYyBGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTU1pbWVU
eXBlPiBjcmVhdGUoUGFzc1JlZlB0cjxQbHVnaW5EYXRhPiBwbHVnaW5EYXRhLCBGcmFtZSogZnJh
bWUsIHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NTWltZVR5cGUocGx1
Z2luRGF0YSwgZnJhbWUsIGluZGV4KSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTU1pbWVUeXBlPiBj
cmVhdGUoUGFzc1JlZlB0cjxQbHVnaW5EYXRhPiBwbHVnaW5EYXRhLCBGcmFtZSogZnJhbWUsIHVu
c2lnbmVkIGluZGV4KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTU1pbWVUeXBlKHBsdWdpbkRh
dGEsIGZyYW1lLCBpbmRleCkpOyB9CiAgICAgfkRPTU1pbWVUeXBlKCk7CiAKICAgICBjb25zdCBT
dHJpbmcgJnR5cGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGVBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBl
QXJyYXkuY3BwCmluZGV4IDdkMjEyMGQuLjZiMmM0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcApAQCAtNTksNyArNTksNyBAQCBQYXNzUmVmUHRyPERP
TU1pbWVUeXBlPiBET01NaW1lVHlwZUFycmF5OjppdGVtKHVuc2lnbmVkIGluZGV4KQogICAgIGNv
bnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBkYXRhLT5taW1lcygpOwogICAgIGlm
IChpbmRleCA+PSBtaW1lcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBE
T01NaW1lVHlwZTo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGluZGV4KS5nZXQoKTsKKyAgICByZXR1
cm4gRE9NTWltZVR5cGU6OmNyZWF0ZShkYXRhLCBtX2ZyYW1lLCBpbmRleCk7CiB9CiAKIGJvb2wg
RE9NTWltZVR5cGVBcnJheTo6Y2FuR2V0SXRlbXNGb3JOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
cHJvcGVydHlOYW1lKQpAQCAtODMsNyArODMsNyBAQCBQYXNzUmVmUHRyPERPTU1pbWVUeXBlPiBE
T01NaW1lVHlwZUFycmF5OjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eQog
ICAgIGNvbnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBkYXRhLT5taW1lcygpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtaW1lcy5zaXplKCk7ICsraSkgewogICAgICAg
ICBpZiAobWltZXNbaV0udHlwZSA9PSBwcm9wZXJ0eU5hbWUpCi0gICAgICAgICAgICByZXR1cm4g
RE9NTWltZVR5cGU6OmNyZWF0ZShkYXRhLCBtX2ZyYW1lLCBpKS5nZXQoKTsKKyAgICAgICAgICAg
IHJldHVybiBET01NaW1lVHlwZTo6Y3JlYXRlKGRhdGEsIG1fZnJhbWUsIGkpOwogICAgIH0KICAg
ICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWlt
ZVR5cGVBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmgK
aW5kZXggNTgxNjFkZjIwLi4wNmYwZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL0RPTU1pbWVUeXBlQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1p
bWVUeXBlQXJyYXkuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbHVnaW5EYXRhOwogCiBjbGFz
cyBET01NaW1lVHlwZUFycmF5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8RE9NTWltZVR5cGVBcnJheT4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NTWltZVR5cGVBcnJheT4gY3JlYXRlKEZyYW1l
KiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTU1pbWVUeXBlQXJyYXkoZnJhbWUpKTsg
fQorICAgIHN0YXRpYyBSZWY8RE9NTWltZVR5cGVBcnJheT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01NaW1lVHlwZUFycmF5KGZyYW1lKSk7IH0KICAgICB+
RE9NTWltZVR5cGVBcnJheSgpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL0RPTVBsdWdpbi5jcHAKaW5kZXggZWY1YWI0Yy4uM2ZlOTE3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmNwcApAQCAtNjYsNyArNjYsNyBAQCBQYXNzUmVmUHRy
PERPTU1pbWVUeXBlPiBET01QbHVnaW46Oml0ZW0odW5zaWduZWQgaW5kZXgpCiAgICAgY29uc3Qg
VmVjdG9yPE1pbWVDbGFzc0luZm8+JiBtaW1lcyA9IG1fcGx1Z2luRGF0YS0+bWltZXMoKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWltZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
aWYgKG1pbWVzW2ldID09IG1pbWUgJiYgbV9wbHVnaW5EYXRhLT5taW1lUGx1Z2luSW5kaWNlcygp
W2ldID09IG1faW5kZXgpCi0gICAgICAgICAgICByZXR1cm4gRE9NTWltZVR5cGU6OmNyZWF0ZSht
X3BsdWdpbkRhdGEuZ2V0KCksIG1fZnJhbWUsIGkpLmdldCgpOworICAgICAgICAgICAgcmV0dXJu
IERPTU1pbWVUeXBlOjpjcmVhdGUobV9wbHVnaW5EYXRhLmdldCgpLCBtX2ZyYW1lLCBpKTsKICAg
ICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC04NSw3ICs4NSw3IEBAIFBhc3NSZWZQdHI8RE9NTWlt
ZVR5cGU+IERPTVBsdWdpbjo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlO
YW1lKQogICAgIGNvbnN0IFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgbWltZXMgPSBtX3BsdWdpbkRh
dGEtPm1pbWVzKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1pbWVzLnNpemUoKTsg
KytpKQogICAgICAgICBpZiAobWltZXNbaV0udHlwZSA9PSBwcm9wZXJ0eU5hbWUpCi0gICAgICAg
ICAgICByZXR1cm4gRE9NTWltZVR5cGU6OmNyZWF0ZShtX3BsdWdpbkRhdGEuZ2V0KCksIG1fZnJh
bWUsIGkpLmdldCgpOworICAgICAgICAgICAgcmV0dXJuIERPTU1pbWVUeXBlOjpjcmVhdGUobV9w
bHVnaW5EYXRhLmdldCgpLCBtX2ZyYW1lLCBpKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvRE9NUGx1Z2luLmgKaW5kZXggOTA4Yjk0Zi4uMTI1Y2EyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTVBsdWdpbi5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFBsdWdpbkRhdGE7CiAK
IGNsYXNzIERPTVBsdWdpbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3Vu
dGVkPERPTVBsdWdpbj4sIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVBsdWdpbj4gY3JlYXRlKFBsdWdpbkRhdGEqIHBs
dWdpbkRhdGEsIEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBET01QbHVnaW4ocGx1Z2luRGF0YSwgZnJhbWUsIGluZGV4KSk7IH0KKyAgICBzdGF0aWMg
UmVmPERPTVBsdWdpbj4gY3JlYXRlKFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEsIEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGx1Z2luKHBsdWdp
bkRhdGEsIGZyYW1lLCBpbmRleCkpOyB9CiAgICAgfkRPTVBsdWdpbigpOwogCiAgICAgU3RyaW5n
IG5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1
Z2luQXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAK
aW5kZXggZDNhNjM3Ny4uODE1ZWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01QbHVnaW5BcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVn
aW5BcnJheS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgUGFzc1JlZlB0cjxET01QbHVnaW4+IERPTVBs
dWdpbkFycmF5OjppdGVtKHVuc2lnbmVkIGluZGV4KQogICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5J
bmZvPiYgcGx1Z2lucyA9IGRhdGEtPnBsdWdpbnMoKTsKICAgICBpZiAoaW5kZXggPj0gcGx1Z2lu
cy5zaXplKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBET01QbHVnaW46OmNyZWF0
ZShkYXRhLCBtX2ZyYW1lLCBpbmRleCkuZ2V0KCk7CisgICAgcmV0dXJuIERPTVBsdWdpbjo6Y3Jl
YXRlKGRhdGEsIG1fZnJhbWUsIGluZGV4KTsKIH0KIAogYm9vbCBET01QbHVnaW5BcnJheTo6Y2Fu
R2V0SXRlbXNGb3JOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQpAQCAtODMs
NyArODMsNyBAQCBQYXNzUmVmUHRyPERPTVBsdWdpbj4gRE9NUGx1Z2luQXJyYXk6Om5hbWVkSXRl
bShjb25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZQogICAgIGNvbnN0IFZlY3RvcjxQbHVn
aW5JbmZvPiYgcGx1Z2lucyA9IGRhdGEtPnBsdWdpbnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGx1Z2lucy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAocGx1Z2luc1tpXS5u
YW1lID09IHByb3BlcnR5TmFtZSkKLSAgICAgICAgICAgIHJldHVybiBET01QbHVnaW46OmNyZWF0
ZShkYXRhLCBtX2ZyYW1lLCBpKS5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBET01QbHVnaW46
OmNyZWF0ZShkYXRhLCBtX2ZyYW1lLCBpKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmgKaW5kZXggNDQ3YzNjZi4uZWE5NjRhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaApAQCAtMzYsNyArMzYsNyBA
QCBjbGFzcyBQbHVnaW5EYXRhOwogCiBjbGFzcyBET01QbHVnaW5BcnJheSA6IHB1YmxpYyBTY3Jp
cHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPERPTVBsdWdpbkFycmF5PiwgcHVibGljIERP
TVdpbmRvd1Byb3BlcnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QbHVn
aW5BcnJheT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTVBs
dWdpbkFycmF5KGZyYW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTVBsdWdpbkFycmF5PiBjcmVh
dGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBsdWdpbkFycmF5KGZy
YW1lKSk7IH0KICAgICB+RE9NUGx1Z2luQXJyYXkoKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAppbmRleCA4ZDQ1MjM0Li4xZjI2
Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaApAQCAtNTEsNyArNTEsNyBAQCBz
dHJ1Y3QgUGx1Z2luSW5mbyB7CiAvLyBGSVhNRTogbWVyZ2Ugd2l0aCBQbHVnaW5EYXRhYmFzZSBp
biB0aGUgZnV0dXJlCiBjbGFzcyBQbHVnaW5EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UGx1Z2lu
RGF0YT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpbkRhdGE+IGNyZWF0
ZShjb25zdCBQYWdlKiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luRGF0YShwYWdl
KSk7IH0KKyAgICBzdGF0aWMgUmVmPFBsdWdpbkRhdGE+IGNyZWF0ZShjb25zdCBQYWdlKiBwYWdl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBsdWdpbkRhdGEocGFnZSkpOyB9CiAKICAgICBjb25z
dCBWZWN0b3I8UGx1Z2luSW5mbz4mIHBsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbnM7
IH0KICAgICBjb25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbz4mIG1pbWVzKCkgY29uc3QgeyByZXR1
cm4gbV9taW1lczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQ
YXRoT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRp
b24uaAppbmRleCBiOTA5MDVmLi4wYWEwYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQ2xpcFBhdGhPcGVyYXRpb24uaApAQCAtNjYsOSArNjYsOSBAQCBwcm90ZWN0ZWQ6CiAKIGNs
YXNzIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uIGZpbmFsIDogcHVibGljIENsaXBQYXRoT3Bl
cmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWZlcmVuY2VDbGlwUGF0
aE9wZXJhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdt
ZW50KQorICAgIHN0YXRpYyBSZWY8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24odXJsLCBmcmFn
bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWZlcmVuY2VDbGlwUGF0aE9w
ZXJhdGlvbih1cmwsIGZyYWdtZW50KSk7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB1cmwo
KSBjb25zdCB7IHJldHVybiBtX3VybDsgfQpAQCAtOTYsOSArOTYsOSBAQCBwcml2YXRlOgogCiBj
bGFzcyBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uIGZpbmFsIDogcHVibGljIENsaXBQYXRoT3BlcmF0
aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFwZUNsaXBQYXRoT3BlcmF0
aW9uPiBjcmVhdGUoUmVmPEJhc2ljU2hhcGU+JiYgc2hhcGUpCisgICAgc3RhdGljIFJlZjxTaGFw
ZUNsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoUmVmPEJhc2ljU2hhcGU+JiYgc2hhcGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24oV1RG
Ojptb3ZlKHNoYXBlKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFwZUNsaXBQ
YXRoT3BlcmF0aW9uKFdURjo6bW92ZShzaGFwZSkpKTsKICAgICB9CiAKICAgICBjb25zdCBCYXNp
Y1NoYXBlJiBiYXNpY1NoYXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZTsgfQpAQCAtMTM1LDkg
KzEzNSw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJveENsaXBQYXRoT3BlcmF0aW9uIGZpbmFsIDog
cHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxCb3hDbGlwUGF0aE9wZXJhdGlvbj4gY3JlYXRlKENTU0JveFR5cGUgcmVmZXJlbmNlQm94KQor
ICAgIHN0YXRpYyBSZWY8Qm94Q2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShDU1NCb3hUeXBlIHJl
ZmVyZW5jZUJveCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQm94Q2xpcFBh
dGhPcGVyYXRpb24ocmVmZXJlbmNlQm94KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEJveENsaXBQYXRoT3BlcmF0aW9uKHJlZmVyZW5jZUJveCkpOwogICAgIH0KIAogICAgIGNvbnN0
IFBhdGggcGF0aEZvclJlZmVyZW5jZVJlY3QoY29uc3QgUm91bmRlZFJlY3QmIGJvdW5kaW5nUmVj
dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwCmluZGV4IDU5
MmVlZjMuLjAxZWM5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3Vu
dGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmNw
cApAQCAtOTAsOSArOTAsOSBAQCBDb3VudGVyTm9kZTo6fkNvdW50ZXJOb2RlKCkKICAgICByZXNl
dFJlbmRlcmVycygpOwogfQogCi1QYXNzUmVmUHRyPENvdW50ZXJOb2RlPiBDb3VudGVyTm9kZTo6
Y3JlYXRlKFJlbmRlckVsZW1lbnQmIG93bmVyLCBib29sIGhhc1Jlc2V0VHlwZSwgaW50IHZhbHVl
KQorUmVmPENvdW50ZXJOb2RlPiBDb3VudGVyTm9kZTo6Y3JlYXRlKFJlbmRlckVsZW1lbnQmIG93
bmVyLCBib29sIGhhc1Jlc2V0VHlwZSwgaW50IHZhbHVlKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ291bnRlck5vZGUob3duZXIsIGhhc1Jlc2V0VHlwZSwgdmFsdWUpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDb3VudGVyTm9kZShvd25lciwgaGFzUmVzZXRUeXBlLCB2YWx1ZSkp
OwogfQogCiBDb3VudGVyTm9kZSogQ291bnRlck5vZGU6Om5leHRJblByZU9yZGVyQWZ0ZXJDaGls
ZHJlbihjb25zdCBDb3VudGVyTm9kZSogc3RheVdpdGhpbikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NvdW50ZXJOb2RlLmgKaW5kZXggNWY5NTU0Yi4uOTk3YzI0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUmVuZGVy
RWxlbWVudDsKIAogY2xhc3MgQ291bnRlck5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxDb3VudGVy
Tm9kZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvdW50ZXJOb2RlPiBjcmVh
dGUoUmVuZGVyRWxlbWVudCYsIGJvb2wgaXNSZXNldCwgaW50IHZhbHVlKTsKKyAgICBzdGF0aWMg
UmVmPENvdW50ZXJOb2RlPiBjcmVhdGUoUmVuZGVyRWxlbWVudCYsIGJvb2wgaXNSZXNldCwgaW50
IHZhbHVlKTsKICAgICB+Q291bnRlck5vZGUoKTsKICAgICBib29sIGFjdHNBc1Jlc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9oYXNSZXNldFR5cGUgfHwgIW1fcGFyZW50OyB9CiAgICAgYm9vbCBoYXNS
ZXNldFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jlc2V0VHlwZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAppbmRleCA4MDdhNzRlLi44NjJhZjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaApAQCAt
MTQ3LDcgKzE0Nyw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJhc2ljU2hhcGVDaXJjbGUgZmluYWwg
OiBwdWJsaWMgQmFzaWNTaGFwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmFz
aWNTaGFwZUNpcmNsZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2ljU2hhcGVD
aXJjbGUpOyB9CisgICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IEJhc2ljU2hhcGVDaXJjbGUpOyB9CiAKICAgICBjb25zdCBCYXNp
Y1NoYXBlQ2VudGVyQ29vcmRpbmF0ZSYgY2VudGVyWCgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVy
WDsgfQogICAgIGNvbnN0IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiBjZW50ZXJZKCkgY29u
c3QgeyByZXR1cm4gbV9jZW50ZXJZOyB9CkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgQmFzaWNTaGFwZUVsbGlwc2UgZmluYWwgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QmFzaWNTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBCYXNpY1NoYXBlRWxsaXBzZSk7IH0KKyAgICBzdGF0aWMgUmVm
PEJhc2ljU2hhcGVFbGxpcHNlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEJhc2lj
U2hhcGVFbGxpcHNlKTsgfQogCiAgICAgY29uc3QgQmFzaWNTaGFwZUNlbnRlckNvb3JkaW5hdGUm
IGNlbnRlclgoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclg7IH0KICAgICBjb25zdCBCYXNpY1No
YXBlQ2VudGVyQ29vcmRpbmF0ZSYgY2VudGVyWSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWTsg
fQpAQCAtMjAwLDcgKzIwMCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJhc2ljU2hhcGVQb2x5Z29u
IGZpbmFsIDogcHVibGljIEJhc2ljU2hhcGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEJhc2ljU2hhcGVQb2x5Z29uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQmFz
aWNTaGFwZVBvbHlnb24pOyB9CisgICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlUG9seWdvbj4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBCYXNpY1NoYXBlUG9seWdvbik7IH0KIAogICAg
IGNvbnN0IFZlY3RvcjxMZW5ndGg+JiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsg
fQogICAgIGNvbnN0IExlbmd0aCYgZ2V0WEF0KHVuc2lnbmVkIGkpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWVzWzIgKiBpXTsgfQpAQCAtMjI2LDcgKzIyNiw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEJh
c2ljU2hhcGVJbnNldCBmaW5hbCA6IHB1YmxpYyBCYXNpY1NoYXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCYXNpY1NoYXBlSW5zZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBCYXNpY1NoYXBlSW5zZXQpOyB9CisgICAgc3RhdGljIFJlZjxCYXNpY1NoYXBlSW5z
ZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmFzaWNTaGFwZUluc2V0KTsgfQog
CiAgICAgY29uc3QgTGVuZ3RoJiB0b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcDsgfQogICAgIGNv
bnN0IExlbmd0aCYgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0OyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaAppbmRleCBhMWQxZmU3Li40YjNlM2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0LmgKQEAgLTMz
LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JMaXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8Q3Vyc29yTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEN1cnNvckxpc3Q+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDdXJzb3JMaXN0PiBjcmVh
dGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXJzb3JMaXN0KTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3Vyc29yTGlzdCk7CiAgICAgfQogCiAgICAgY29u
c3QgQ3Vyc29yRGF0YSYgb3BlcmF0b3JbXShpbnQgaSkgY29uc3QgeyByZXR1cm4gbV92ZWN0b3Jb
aV07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1
cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3Bw
CmluZGV4IDczYjQwMmYuLjg4NWRmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0Nh
cHR1cmluZ0lucHV0Q3Vyc29yLmNwcApAQCAtNDksOSArNDksOSBAQCBDYXB0dXJpbmdJbnB1dEN1
cnNvcjo6fkNhcHR1cmluZ0lucHV0Q3Vyc29yKCkKICAgICBMT0coV2ViUmVwbGF5LCAiJS0zMHNE
ZXN0cm95ZWQgY2FwdHVyZSBjdXJzb3I9JXAuXG4iLCAiW1JlcGxheUNvbnRyb2xsZXJdIiwgdGhp
cyk7CiB9CiAKLVBhc3NSZWZQdHI8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IENhcHR1cmluZ0lucHV0
Q3Vyc29yOjpjcmVhdGUoUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4gc2VnbWVudCkK
K1JlZjxDYXB0dXJpbmdJbnB1dEN1cnNvcj4gQ2FwdHVyaW5nSW5wdXRDdXJzb3I6OmNyZWF0ZShQ
YXNzUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiBzZWdtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ2FwdHVyaW5nSW5wdXRDdXJzb3Ioc2VnbWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENhcHR1cmluZ0lucHV0Q3Vyc29yKHNlZ21lbnQpKTsKIH0KIAogdm9pZCBD
YXB0dXJpbmdJbnB1dEN1cnNvcjo6c3RvcmVJbnB1dChzdGQ6OnVuaXF1ZV9wdHI8Tm9uZGV0ZXJt
aW5pc3RpY0lucHV0QmFzZT4gaW5wdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJp
bmdJbnB1dEN1cnNvci5oCmluZGV4IGVjMjVjODQuLjA4MDE3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IFJlcGxheVNlc3Npb25TZWdtZW50OwogY2xhc3MgQ2FwdHVyaW5nSW5wdXRDdXJzb3IgZmluYWwg
OiBwdWJsaWMgSW5wdXRDdXJzb3IgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhcHR1cmlu
Z0lucHV0Q3Vyc29yKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYXB0dXJpbmdJ
bnB1dEN1cnNvcj4gY3JlYXRlKFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+KTsKKyAg
ICBzdGF0aWMgUmVmPENhcHR1cmluZ0lucHV0Q3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxSZXBs
YXlTZXNzaW9uU2VnbWVudD4pOwogICAgIHZpcnR1YWwgfkNhcHR1cmluZ0lucHV0Q3Vyc29yKCk7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcAppbmRleCA4MWJhZTY0Li4wZmUz
MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAKQEAgLTM4LDkgKzM4LDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFN0b3JhZ2U+IFN0b3JhZ2U6OmNyZWF0
ZShGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKQorUmVm
PFN0b3JhZ2U+IFN0b3JhZ2U6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8U3RvcmFn
ZUFyZWE+IHN0b3JhZ2VBcmVhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZShm
cmFtZSwgc3RvcmFnZUFyZWEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlKGZy
YW1lLCBzdG9yYWdlQXJlYSkpOwogfQogCiBTdG9yYWdlOjpTdG9yYWdlKEZyYW1lKiBmcmFtZSwg
UGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5oCmluZGV4IDFlOWZkYWIuLmNlYjlkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oCkBA
IC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIFN0b3Jh
Z2UgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlPiwg
cHVibGljIERPTVdpbmRvd1Byb3BlcnR5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdG9yYWdlPiBjcmVhdGUoRnJhbWUqLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPik7CisgICAg
c3RhdGljIFJlZjxTdG9yYWdlPiBjcmVhdGUoRnJhbWUqLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVh
Pik7CiAgICAgflN0b3JhZ2UoKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aChFeGNlcHRpb25Db2Rl
JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5k
ZXggMTYzNGNhZi4uNTg3YmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcApAQCAtNjIsMTggKzYyLDE4IEBAIGlubGluZSBTdG9yYWdlQXJlYUltcGw6OlN0
b3JhZ2VBcmVhSW1wbChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTZWN1CiAg
ICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKTsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNN
YW5hZ2VyPiBzeW5jTWFuYWdlciwgdW5zaWduZWQgcXVvdGEpCitSZWY8U3RvcmFnZUFyZWFJbXBs
PiBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZShTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luLCBQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdl
cj4gc3luY01hbmFnZXIsIHVuc2lnbmVkIHF1b3RhKQogewotICAgIFJlZlB0cjxTdG9yYWdlQXJl
YUltcGw+IGFyZWEgPSBhZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VUeXBlLCBv
cmlnaW4sIHN5bmNNYW5hZ2VyLCBxdW90YSkpOworICAgIFJlZjxTdG9yYWdlQXJlYUltcGw+IGFy
ZWEgPSBhZG9wdFJlZigqbmV3IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlVHlwZSwgb3JpZ2luLCBz
eW5jTWFuYWdlciwgcXVvdGEpKTsKIAogICAgIC8vIEZJWE1FOiBJZiB0aGVyZSdzIG5vIGJhY2tp
bmcgc3RvcmFnZSBmb3IgTG9jYWxTdG9yYWdlLCB0aGUgZGVmYXVsdCBXZWJLaXQgYmVoYXZpb3Ig
c2hvdWxkIGJlIHRoYXQgb2YgcHJpdmF0ZSBicm93c2luZywKICAgICAvLyBub3Qgc2lsZW50bHkg
aWdub3JpbmcgaXQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg5
NAogICAgIGlmIChhcmVhLT5tX3N0b3JhZ2VTeW5jTWFuYWdlcikgewotICAgICAgICBhcmVhLT5t
X3N0b3JhZ2VBcmVhU3luYyA9IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKGFyZWEtPm1fc3RvcmFn
ZVN5bmNNYW5hZ2VyLCBhcmVhLmdldCgpLCBhcmVhLT5tX3NlY3VyaXR5T3JpZ2luLT5kYXRhYmFz
ZUlkZW50aWZpZXIoKSk7CisgICAgICAgIGFyZWEtPm1fc3RvcmFnZUFyZWFTeW5jID0gU3RvcmFn
ZUFyZWFTeW5jOjpjcmVhdGUoYXJlYS0+bV9zdG9yYWdlU3luY01hbmFnZXIsIGFyZWEucHRyKCks
IGFyZWEtPm1fc2VjdXJpdHlPcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICAgICAg
QVNTRVJUKGFyZWEtPm1fc3RvcmFnZUFyZWFTeW5jKTsKICAgICB9CiAKLSAgICByZXR1cm4gYXJl
YS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGFyZWE7CiB9CiAKIFBhc3NSZWZQdHI8U3RvcmFnZUFy
ZWFJbXBsPiBTdG9yYWdlQXJlYUltcGw6OmNvcHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmgKaW5kZXggOTIzYTZmNS4uODk3NjFhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFN0b3JhZ2VB
cmVhU3luYzsKIAogY2xhc3MgU3RvcmFnZUFyZWFJbXBsIDogcHVibGljIFN0b3JhZ2VBcmVhIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IGNyZWF0ZShT
dG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFBhc3NSZWZQdHI8U3RvcmFn
ZVN5bmNNYW5hZ2VyPiwgdW5zaWduZWQgcXVvdGEpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFy
ZWFJbXBsPiBjcmVhdGUoU3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBQ
YXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4sIHVuc2lnbmVkIHF1b3RhKTsKICAgICB2aXJ0
dWFsIH5TdG9yYWdlQXJlYUltcGwoKTsKIAogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVh
U3luYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5k
ZXggNjBjNDJjZi4uNDYwMmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlQXJlYVN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFTeW5jLmNwcApAQCAtNzIsMTEgKzcyLDkgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3Rv
cmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKICAg
ICB9KTsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IFN0b3JhZ2VBcmVhU3luYzo6
Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnZXIs
IFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBzdG9yYWdlQXJlYSwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZUlkZW50aWZpZXIpCitSZWY8U3RvcmFnZUFyZWFTeW5jPiBTdG9yYWdlQXJlYVN5bmM6
OmNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gc3RvcmFnZVN5bmNNYW5hZ2Vy
LCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gc3RvcmFnZUFyZWEsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VJZGVudGlmaWVyKQogewotICAgIFJlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFyZWEg
PSBhZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFTeW5jKHN0b3JhZ2VTeW5jTWFuYWdlciwgc3RvcmFn
ZUFyZWEsIGRhdGFiYXNlSWRlbnRpZmllcikpOwotCi0gICAgcmV0dXJuIGFyZWEucmVsZWFzZSgp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VBcmVhU3luYyhzdG9yYWdlU3luY01h
bmFnZXIsIHN0b3JhZ2VBcmVhLCBkYXRhYmFzZUlkZW50aWZpZXIpKTsKIH0KIAogU3RvcmFnZUFy
ZWFTeW5jOjp+U3RvcmFnZUFyZWFTeW5jKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhU3luYy5oCmluZGV4IGI1YWE1MDUuLmJhZWFhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlQXJlYVN5bmMuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBTdG9yYWdlU3luY01h
bmFnZXI7CiAKIGNsYXNzIFN0b3JhZ2VBcmVhU3luYyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxTdG9yYWdlQXJlYVN5bmM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYVN5bmM+IGNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4sIFBh
c3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZp
ZXIpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFTeW5jPiBjcmVhdGUoUGFzc1JlZlB0cjxT
dG9yYWdlU3luY01hbmFnZXI+LCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4sIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKTsKICAgICB+U3RvcmFnZUFyZWFTeW5jKCk7CiAKICAg
ICB2b2lkIHNjaGVkdWxlRmluYWxTeW5jKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFw
LmNwcAppbmRleCBmYjdlNDM1Li42N2IwYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZU1hcC5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OmNyZWF0ZSh1bnNpZ25lZCBxdW90YSkKK1Jl
ZjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpjcmVhdGUodW5zaWduZWQgcXVvdGEpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlTWFwKHF1b3RhKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3RvcmFnZU1hcChxdW90YSkpOwogfQogCiBTdG9yYWdlTWFwOjpTdG9yYWdlTWFw
KHVuc2lnbmVkIHF1b3RhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuaAppbmRleCA4YzNk
NWNmLi41ZGUxOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VN
YXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuaApAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTdG9yYWdlTWFwIDogcHVibGljIFJl
ZkNvdW50ZWQ8U3RvcmFnZU1hcD4gewogcHVibGljOgogICAgIC8vIFF1b3RhIHNpemUgbWVhc3Vy
ZWQgaW4gYnl0ZXMuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFn
ZU1hcD4gY3JlYXRlKHVuc2lnbmVkIHF1b3RhU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxTdG9yYWdlTWFwPiBjcmVhdGUodW5zaWduZWQgcXVvdGFTaXplKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBrZXkodW5zaWduZWQgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlU3luY01hbmFnZXIuY3BwCmluZGV4IGJhZTcyYTAuLjYzN2E0OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAgLTMzLDkgKzMzLDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdl
cj4gU3RvcmFnZVN5bmNNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorUmVmPFN0
b3JhZ2VTeW5jTWFuYWdlcj4gU3RvcmFnZVN5bmNNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBwYXRoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZVN5bmNNYW5hZ2VyKHBh
dGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlU3luY01hbmFnZXIocGF0aCkp
OwogfQogCiBTdG9yYWdlU3luY01hbmFnZXI6OlN0b3JhZ2VTeW5jTWFuYWdlcihjb25zdCBTdHJp
bmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5j
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaApp
bmRleCA0ODY1MWNhLi4wMjg3NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VTeW5jTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVN5bmNNYW5hZ2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwog
CiBjbGFzcyBTdG9yYWdlU3luY01hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlU3lu
Y01hbmFnZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlU3luY01h
bmFnZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIHN0YXRpYyBSZWY8U3RvcmFn
ZVN5bmNNYW5hZ2VyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKICAgICB+U3RvcmFnZVN5
bmNNYW5hZ2VyKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZmZlNDE2NS4uMjMwNzgwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAg
LTM5LDExICszOSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVh
dGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9w
dHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFk
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKK1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4g
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5n
cywgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNl
Y3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQog
ewotICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0
UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjpt
b3ZlKHNldHRpbmdzKSwgdGhyZWFkLCB0b3BPcmlnaW4pKTsKKyAgICBSZWY8RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRv
cE9yaWdpbikpOwogICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbVN0
cmluZyhjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwot
ICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29udGV4dDsKIH0KIAog
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdy
b3VwU2V0dGluZ3M+IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGJmZTdiNGUuLjBk
NzdiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlckdsb2JhbFNj
b3BlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyR2xvYmFsU2NvcGUgQmFz
ZTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVf
cHRyPEdyb3VwU2V0dGluZ3M+LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbik7CisgICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVf
cHRyPEdyb3VwU2V0dGluZ3M+LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbik7CiAgICAgICAgIHZpcnR1YWwgfkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCk7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggNjk5N2ExZC4uOGFlNTdhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApA
QCAtMzgsOSArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGVk
aWNhdGVkV29ya2VyVGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGlu
Z3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCitSZWY8
RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25z
dCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0
dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclBy
b3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFBy
b3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRl
bnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJM
LCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29y
a2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50
U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBz
b3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9k
ZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BP
cmlnaW4pKTsKIH0KIAogRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNl
dHRpbmdzKiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQ
cm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQpA
QCAtNTMsNyArNTMsNyBAQCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQoKQogewogfQogCi1QYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRp
bmdzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBz
ZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiB7CiAgICAgcmV0dXJuIERlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5n
cyksICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5
cGUsIHRvcE9yaWdpbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJUaHJlYWQuaAppbmRleCA0Zjg3NTAxLi43MjIzOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAgLTM5LDEyICszOSwxMiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQgOiBw
dWJsaWMgV29ya2VyVGhyZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbik7CisgICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBj
cmVhdGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFk
ZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKICAgICAgICAgV29ya2Vy
T2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJP
YmplY3RQcm94eTsgfQogICAgICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKTsK
IAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckdsb2Jh
bFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBl
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOworICAgICAg
ICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91
cFNldHRpbmdzPiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92
ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNWQzMjZlZC4uYWYw
ZTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTaGFyZWRXb3JrZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxTaGFyZWRXb3JrZXJQcm94eT4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSwg
cHVibGljIFdvcmtlclJlcG9ydGluZ1Byb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFyZWRXb3JrZXJQcm94eT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
VVJMJiB1cmwsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbikgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFNoYXJlZFdvcmtlclByb3h5KG5hbWUsIHVybCwgb3JpZ2luKSk7IH0KKyAgICBz
dGF0aWMgUmVmPFNoYXJlZFdvcmtlclByb3h5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBVUkwmIHVybCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNoYXJlZFdvcmtlclByb3h5KG5hbWUsIHVybCwgb3JpZ2luKSk7IH0K
IAogICAgIHZvaWQgc2V0VGhyZWFkKFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiB0aHJl
YWQpIHsgbV90aHJlYWQgPSB0aHJlYWQ7IH0KICAgICBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVh
ZCgpIHsgcmV0dXJuIG1fdGhyZWFkLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGNkOGE3OGQuLjBiYjQ4MTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCkBAIC01MiwxMSArNTIsMTEgQEAgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0
ZUNvbm5lY3RFdmVudChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwcnBQb3J0KQogfQogCiAvLyBz
dGF0aWMKLVBhc3NSZWZQdHI8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IFNoYXJlZFdvcmtlckds
b2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0
aW5ncywgU2hhcmVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNl
Y3VyaXR5UG9saWN5VHlwZSkKK1JlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+
IHNldHRpbmdzLCBTaGFyZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQogewotICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZT4gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShuYW1l
LCB1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhyZWFkKSk7CisgICAgUmVm
PFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdz
KSwgdGhyZWFkKSk7CiAgICAgY29udGV4dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9t
U3RyaW5nKGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7
Ci0gICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBjb250ZXh0OwogfQog
CiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0
ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgU2hhcmVkV29ya2VyVGhyZWFk
JiB0aHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlLmgKaW5kZXggYjU0NGM0My4uOThkNDU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2VyR2xvYmFsU2NvcGUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBXb3Jr
ZXJHbG9iYWxTY29wZSBCYXNlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgU2hh
cmVkV29ya2VyVGhyZWFkJiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
KTsKKyAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0
ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkJiwgY29uc3Qg
U3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVh
ZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICAgICAgdmlydHVhbCB+U2hh
cmVkV29ya2VyR2xvYmFsU2NvcGUoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFyZWRX
b3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAppbmRleCA2NTU3MWIy
Li4xYTY5ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJl
YWQuY3BwCkBAIC0zOCw5ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0
TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQorUmVmPFNoYXJl
ZFdvcmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdv
cmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpI
ZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTaGFyZWRXb3JrZXJUaHJlYWQobmFtZSwgc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNl
dHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJv
eHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xp
Y3lUeXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5h
bWUsIHNjcmlwdFVSTCwgdXNlckFnZW50LCBzZXR0aW5ncywgc291cmNlQ29kZSwgd29ya2VyTG9h
ZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0
eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOwogfQogCiBTaGFyZWRXb3JrZXJU
aHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyogc2V0dGlu
Z3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxv
YWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3Vy
aXR5UG9saWN5VHlwZSkKQEAgLTUzLDcgKzUzLDcgQEAgU2hhcmVkV29ya2VyVGhyZWFkOjp+U2hh
cmVkV29ya2VyVGhyZWFkKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4g
U2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdz
PiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPikKK1JlZjxXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVkV29y
a2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5n
cywgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPikKIHsKICAgICByZXR1cm4gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNy
ZWF0ZShtX25hbWUsIHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCAqdGhpcywg
Y29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCmluZGV4IDFkMjE0YTgu
LjVlNzlmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2Vy
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQu
aApAQCAtMzksMTEgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNo
YXJlZFdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
R3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJv
eHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3Qg
U3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVh
ZGVyVHlwZSk7CisgICAgICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwg
Y29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6SGVhZGVyVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgflNoYXJlZFdvcmtlclRocmVhZCgpOwog
CiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyR2xvYmFs
U2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYg
Y29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUs
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7CisgICAgICAg
IHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3Vw
U2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BP
cmlnaW4pIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU2hhcmVkV29ya2VyVGhy
ZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OkhlYWRlclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmNwcAppbmRleCAwYmQxOWZjLi44ZTc0Y2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgV29y
a2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMs
IEV4Y2VwdGlvbkNvZGUmCiAgICAgVmVjdG9yPFVSTD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNv
bXBsZXRlZFVSTHMuZW5kKCk7CiAKICAgICBmb3IgKFZlY3RvcjxVUkw+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IGNvbXBsZXRlZFVSTHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
IFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IHNjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmNyZWF0ZSgpKTsKKyAgICAgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gc2NyaXB0TG9h
ZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKICAgICAgICAgc2NyaXB0TG9hZGVy
LT5sb2FkU3luY2hyb25vdXNseShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICppdCwgQWxsb3dD
cm9zc09yaWdpblJlcXVlc3RzKTsKIAogICAgICAgICAvLyBJZiB0aGUgZmV0Y2hpbmcgYXR0ZW1w
dCBmYWlsZWQsIHRocm93IGEgTkVUV09SS19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCBhbGwgdGhl
c2Ugc3RlcHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0aW9uLmgKaW5kZXggZTBj
ODNhYi4uNWRiZWY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJM
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaApA
QCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBXb3JrZXJM
b2NhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlckxvY2F0aW9uPiB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXb3JrZXJMb2NhdGlvbj4gY3JlYXRlKGNvbnN0
IFVSTCYgdXJsKQorICAgICAgICBzdGF0aWMgUmVmPFdvcmtlckxvY2F0aW9uPiBjcmVhdGUoY29u
c3QgVVJMJiB1cmwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V29ya2VyTG9jYXRpb24odXJsKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
b3JrZXJMb2NhdGlvbih1cmwpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVSTCYgdXJs
KCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5oCmluZGV4IDlhYWY2NjQuLjllNjkxN2NlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKQEAgLTQ5LDkgKzQ5LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IGNyZWF0ZSgpCisgICAgICAg
IHN0YXRpYyBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBjcmVhdGUoKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdvcmtlclNjcmlwdExvYWRlcigpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNjcmlwdExvYWRlcik7CiAgICAgICAg
IH0KIAogICAgICAgICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBVUkwmLCBDcm9zc09yaWdpblJlcXVlc3RQb2xpY3kpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggNzg5MmEwZS4uNDE4OWVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7
CiAKICAgICAgICAgLy8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgbmV3IHdvcmtlciBj
b250ZXh0IGZvciB0aGUgdGhyZWFkLgotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2Vy
R2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgPSAwOworICAgICAg
ICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91
cFNldHRpbmdzPiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKSA9IDA7CiAKICAgICAgICAgLy8gRXhlY3V0ZXMgdGhlIGV2ZW50IGxvb3AgZm9yIHRo
ZSB3b3JrZXIgdGhyZWFkLiBEZXJpdmVkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHBlcmZvcm0g
YWN0aW9ucyBiZWZvcmUvYWZ0ZXIgZW50ZXJpbmcgdGhlIGV2ZW50IGxvb3AuCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBydW5FdmVudExvb3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9ET01QYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaAppbmRleCBkZDcx
YjRmLi5lYTJlYmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5oCkBAIC0zMCw3ICszMCw3IEBAIGNs
YXNzIERvY3VtZW50OwogCiBjbGFzcyBET01QYXJzZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxET01Q
YXJzZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01QYXJzZXI+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01QYXJzZXIpOyB9CisgICAgc3RhdGljIFJlZjxE
T01QYXJzZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUGFyc2VyKTsgfQog
CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudD4gcGFyc2VGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDg2NjFiNjAuLjQzNGMxMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTM1LDcg
KzM1LDcgQEAgY2xhc3MgTm9kZTsKIAogY2xhc3MgTmF0aXZlWFBhdGhOU1Jlc29sdmVyIDogcHVi
bGljIFhQYXRoTlNSZXNvbHZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmF0
aXZlWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgTmF0aXZlWFBhdGhOU1Jlc29sdmVyKG5vZGUpKTsgfQorICAgIHN0YXRp
YyBSZWY8TmF0aXZlWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZVhQYXRoTlNSZXNvbHZlcihub2RlKSk7IH0K
ICAgICB2aXJ0dWFsIH5OYXRpdmVYUGF0aE5TUmVzb2x2ZXIoKTsKIAogICAgIHZpcnR1YWwgU3Ry
aW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA2NWYzYzcyLi5iNTQwYTEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTExMiwxMiArMTEyLDExIEBAIHN0YXRpYyB2
b2lkIGxvZ0NvbnNvbGVFcnJvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG1lc3NhCiAgICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwogfQogCi1QYXNzUmVmUHRy
PFhNTEh0dHBSZXF1ZXN0PiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCitSZWY8WE1MSHR0cFJlcXVlc3Q+IFhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICBSZWZQdHI8WE1MSHR0
cFJlcXVlc3Q+IHhtbEh0dHBSZXF1ZXN0KGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVxdWVzdChjb250
ZXh0KSkpOworICAgIFJlZjxYTUxIdHRwUmVxdWVzdD4geG1sSHR0cFJlcXVlc3QgPSBhZG9wdFJl
ZigqbmV3IFhNTEh0dHBSZXF1ZXN0KGNvbnRleHQpKTsKICAgICB4bWxIdHRwUmVxdWVzdC0+c3Vz
cGVuZElmTmVlZGVkKCk7Ci0KLSAgICByZXR1cm4geG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpOwor
ICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdDsKIH0KIAogWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBS
ZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCmluZGV4IGY5OWY4NTguLjY0NGJlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFRocmVhZGFibGVMb2FkZXI7CiBj
bGFzcyBYTUxIdHRwUmVxdWVzdCBmaW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1Ymxp
YyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEsIHByaXZhdGUgVGhyZWFkYWJsZUxvYWRlckNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8WE1MSHR0cFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik7CisgICAgc3RhdGljIFJlZjxYTUxIdHRwUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKICAgICB+WE1MSHR0cFJlcXVlc3QoKTsKIAogICAgIC8vIFRoZXNlIGV4YWN0
IG51bWVyaWMgdmFsdWVzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSBKUyBleHBlY3RzIHRoZW0uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
VGhyb3R0bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlLmNwcAppbmRleCAwZjYyNGEwLi5iYzFmOTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZS5jcHAKQEAgLTEyOCwxMyArMTI4LDEzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGU6OmZsdXNoUHJvZ3Jlc3NFdmVudCgpCiAKICAgICBpZiAoIWhhc0V2ZW50VG9E
aXNwYXRjaCgpKQogICAgICAgICByZXR1cm47Ci0gICAgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQg
PSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jl
c3NFdmVudCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRlZCwgbV90b3RhbCk7CisgICAgUmVm
PEV2ZW50PiBldmVudCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5wcm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3Rv
dGFsKTsKICAgICBtX2hhc1Rocm90dGxlZFByb2dyZXNzRXZlbnQgPSBmYWxzZTsKIAogICAgIC8v
IFdlIHN0b3AgdGhlIHRpbWVyIGFzIHRoaXMgaXMgY2FsbGVkIHdoZW4gbm8gbW9yZSBldmVudHMg
YXJlIHN1cHBvc2VkIHRvIG9jY3VyLgogICAgIHN0b3AoKTsKIAotICAgIGRpc3BhdGNoRXZlbnQo
ZXZlbnQpOworICAgIGRpc3BhdGNoRXZlbnQoV1RGOjptb3ZlKGV2ZW50KSk7CiB9CiAKIHZvaWQg
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRGVmZXJyZWRFdmVu
dHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmgKaW5kZXggN2IyZGIwOC4uZWY1YzJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFhNTFNlcmlhbGl6ZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxYTUxTZXJpYWxpemVyPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxYTUxTZXJpYWxpemVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWE1MU2VyaWFs
aXplcik7IH0KKyAgICAgICAgc3RhdGljIFJlZjxYTUxTZXJpYWxpemVyPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFhNTFNlcmlhbGl6ZXIpOyB9CiAgICAgICAgIAogICAgICAgICBT
dHJpbmcgc2VyaWFsaXplVG9TdHJpbmcoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oCmluZGV4IDNkZTNlYzYuLjY0NDgyMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFhQYXRoRXZhbHVhdG9yIDogcHVibGljIFJlZkNvdW50
ZWQ8WFBhdGhFdmFsdWF0b3I+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFhQYXRoRXZhbHVhdG9yPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgWFBhdGhF
dmFsdWF0b3IpOyB9CisgICAgICAgIHN0YXRpYyBSZWY8WFBhdGhFdmFsdWF0b3I+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFBhdGhFdmFsdWF0b3IpOyB9CiAgICAgICAgIAogICAg
ICAgICBQYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gY3JlYXRlRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24sIFhQYXRoTlNSZXNvbHZlciosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICAgICAgUGFzc1JlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSog
bm9kZVJlc29sdmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3Vs
dC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKaW5kZXggYWZmYzA3Ni4uYTIx
NDBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmgKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgPSA5CiAg
ICAgICAgIH07CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxYUGF0aFJlc3Vs
dD4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgWFBhdGg6OlZhbHVlJiB2YWx1ZSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFhQYXRoUmVzdWx0KGRvY3VtZW50LCB2YWx1ZSkpOyB9Cisg
ICAgICAgIHN0YXRpYyBSZWY8WFBhdGhSZXN1bHQ+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IFhQYXRoOjpWYWx1ZSYgdmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFBhdGhS
ZXN1bHQoZG9jdW1lbnQsIHZhbHVlKSk7IH0KICAgICAgICAgflhQYXRoUmVzdWx0KCk7CiAgICAg
ICAgIAogICAgICAgICB2b2lkIGNvbnZlcnRUbyh1bnNpZ25lZCBzaG9ydCB0eXBlLCBFeGNlcHRp
b25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5o
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAppbmRleCA1N2ZjZjViLi4zYTNi
OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNp
bmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGlieHNsdC90cmFuc2Zvcm0uaD4K
IAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsMjQg
KzQxLDI0IEBAIGNsYXNzIFhTTEltcG9ydFJ1bGU7CiAgICAgCiBjbGFzcyBYU0xTdHlsZVNoZWV0
IGZpbmFsIDogcHVibGljIFN0eWxlU2hlZXQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZShYU0xJbXBvcnRSdWxlKiBwYXJlbnRJbXBvcnQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFVSTCYgZmluYWxVUkwpCisgICAgc3RhdGlj
IFJlZjxYU0xTdHlsZVNoZWV0PiBjcmVhdGUoWFNMSW1wb3J0UnVsZSogcGFyZW50SW1wb3J0LCBj
b25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudEltcG9ydCwgb3Jp
Z2luYWxVUkwsIGZpbmFsVVJMKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFN0
eWxlU2hlZXQocGFyZW50SW1wb3J0LCBvcmlnaW5hbFVSTCwgZmluYWxVUkwpKTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8WFNMU3R5bGVTaGVldD4gY3JlYXRlKFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiogcGFyZW50Tm9kZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgVVJM
JiBmaW5hbFVSTCkKKyAgICBzdGF0aWMgUmVmPFhTTFN0eWxlU2hlZXQ+IGNyZWF0ZShQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24qIHBhcmVudE5vZGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNv
bnN0IFVSTCYgZmluYWxVUkwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhT
TFN0eWxlU2hlZXQocGFyZW50Tm9kZSwgb3JpZ2luYWxVUkwsIGZpbmFsVVJMLCBmYWxzZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9y
aWdpbmFsVVJMLCBmaW5hbFVSTCwgZmFsc2UpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8WFNMU3R5bGVTaGVldD4gY3JlYXRlRW1iZWRkZWQoUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBw
YXJlbnROb2RlLCBjb25zdCBVUkwmIGZpbmFsVVJMKQorICAgIHN0YXRpYyBSZWY8WFNMU3R5bGVT
aGVldD4gY3JlYXRlRW1iZWRkZWQoUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwYXJlbnROb2RlLCBj
b25zdCBVUkwmIGZpbmFsVVJMKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBY
U0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIGZpbmFsVVJMLnN0cmluZygpLCBmaW5hbFVSTCwgdHJ1
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5v
ZGUsIGZpbmFsVVJMLnN0cmluZygpLCBmaW5hbFVSTCwgdHJ1ZSkpOwogICAgIH0KIAogICAgIC8v
IFRha2luZyBhbiBhcmJpdHJhcnkgbm9kZSBpcyB1bnNhZmUsIGJlY2F1c2Ugb3duZXIgbm9kZSBw
b2ludGVyIGNhbiBiZWNvbWUgc3RhbGUuCiAgICAgLy8gWFNMVFByb2Nlc3NvciBlbnN1cmVzIHRo
YXQgdGhlIHN0eWxlc2hlZXQgZG9lc24ndCBvdXRsaXZlIGl0cyBwYXJlbnQsIGluIHBhcnQgYnkg
bm90IGV4cG9zaW5nIGl0IHRvIEphdmFTY3JpcHQuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8WFNM
U3R5bGVTaGVldD4gY3JlYXRlRm9yWFNMVFByb2Nlc3NvcihOb2RlKiBwYXJlbnROb2RlLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQorICAgIHN0YXRpYyBS
ZWY8WFNMU3R5bGVTaGVldD4gY3JlYXRlRm9yWFNMVFByb2Nlc3NvcihOb2RlKiBwYXJlbnROb2Rl
LCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBVUkwmIGZpbmFsVVJMKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBYU0xTdHlsZVNoZWV0KHBhcmVudE5vZGUsIG9y
aWdpbmFsVVJMLCBmaW5hbFVSTCwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgWFNMU3R5bGVTaGVldChwYXJlbnROb2RlLCBvcmlnaW5hbFVSTCwgZmluYWxVUkwsIGZhbHNl
KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+WFNMU3R5bGVTaGVldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmgKaW5kZXggNTE4ZTFlMi4uMmJjMDgwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3Nvci5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiAK
IGNsYXNzIFhTTFRQcm9jZXNzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxYU0xUUHJvY2Vzc29yPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8WFNMVFByb2Nlc3Nvcj4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFhTTFRQcm9jZXNzb3IpOyB9CisgICAgc3RhdGljIFJlZjxY
U0xUUHJvY2Vzc29yPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFRQcm9jZXNz
b3IpOyB9CiAgICAgflhTTFRQcm9jZXNzb3IoKTsKIAogICAgIHZvaWQgc2V0WFNMU3R5bGVTaGVl
dChQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQpIHsgbV9zdHlsZXNoZWV0ID0g
c3R5bGVTaGVldDsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>