<?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>145750</bug_id>
          
          <creation_ts>2015-06-07 21:14:57 -0700</creation_ts>
          <short_desc>Purge PassRefPtr in JavaScriptCore</short_desc>
          <delta_ts>2015-06-08 19:18:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1100299</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-07 21:14:57 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100301</commentid>
    <comment_count>1</comment_count>
      <attachid>254470</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-07 21:20:58 -0700</bug_when>
    <thetext>Created attachment 254470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100318</commentid>
    <comment_count>2</comment_count>
      <attachid>254478</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 00:54:39 -0700</bug_when>
    <thetext>Created attachment 254478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100374</commentid>
    <comment_count>3</comment_count>
      <attachid>254495</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 09:04:39 -0700</bug_when>
    <thetext>Created attachment 254495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100511</commentid>
    <comment_count>4</comment_count>
      <attachid>254525</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 17:08:59 -0700</bug_when>
    <thetext>Created attachment 254525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100516</commentid>
    <comment_count>5</comment_count>
      <attachid>254525</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-08 17:22:20 -0700</bug_when>
    <thetext>Comment on attachment 254525
Patch

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

&gt; Source/JavaScriptCore/heap/EdenGCActivityCallback.h:32
&gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; +

This change is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100543</commentid>
    <comment_count>6</comment_count>
      <attachid>254532</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 18:16:19 -0700</bug_when>
    <thetext>Created attachment 254532
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100549</commentid>
    <comment_count>7</comment_count>
      <attachid>254532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-08 19:02:12 -0700</bug_when>
    <thetext>Comment on attachment 254532
Patch for landing

Rejecting attachment 254532 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 254532, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/JavaScriptCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/6213330268061696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100553</commentid>
    <comment_count>8</comment_count>
      <attachid>254538</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 19:16:27 -0700</bug_when>
    <thetext>Created attachment 254538
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100554</commentid>
    <comment_count>9</comment_count>
      <attachid>254538</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 19:18:22 -0700</bug_when>
    <thetext>Comment on attachment 254538
Patch for landing

Clearing flags on attachment: 254538

Committed r185346: &lt;http://trac.webkit.org/changeset/185346&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100555</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-08 19:18:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254470</attachid>
            <date>2015-06-07 21:20:58 -0700</date>
            <delta_ts>2015-06-08 00:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145750-20150608132036.patch</filename>
            <type>text/plain</type>
            <size>55244</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGQ1MjMyY2U1NmIwZTYwN2RjYjc1ZjZkZjdjYzk5M2E2YmQ1MjQzLi5iZjUzMjVlZGQ0MDNiNWQ0
NmMyOWMwMzViNzYyNzljYjkyMThlMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDYgQEAKKzIwMTUtMDYtMDcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQ
SS9KU0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAg
ICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUp
OgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KToKKyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGlj
UHJvcGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
OjpjcmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6
R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNj
cmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZN
YW5hZ2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5
UGF0dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpj
cmVhdGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
cnJheUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXI6OmNyZWF0ZUFk
b3B0ZWQpOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlcjo6Y3JlYXRlVW5pbml0aWFsaXplZCk6
CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyOjpzbGljZUltcGwpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0YVZpZXcuY3BwOgorICAgICAgICAoSlNDOjpEYXRhVmlldzo6Y3JlYXRlKToKKyAgICAg
ICAgKiBydW50aW1lL0RhdGFWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2VD
YWNoZS5oOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpjcmVhdGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVF
eGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJv
bWlzZVJlYWN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheURhdGE6OmNyZWF0ZSk6CisgICAgICAgICog
cnVudGltZS9UeXBlU2V0Lmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNoYXBlOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpUeXBlU2V0OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvVHlw
ZWRBcnJheUJhc2UuaDoKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0ZSk6Cisg
ICAgICAgIChKU0M6OlR5cGVkQXJyYXlCYXNlOjpjcmVhdGVVbmluaXRpYWxpemVkKToKKyAgICAg
ICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OnN1YmFycmF5SW1wbCk6CisgICAgICAgICogcnVudGlt
ZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGVDb250ZXh0R3JvdXApOgorICAgICAg
ICAoSlNDOjpWTTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0ZUxlYWtlZCk6Cisg
ICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHlhcnIvUmVndWxhckV4cHJlc3Npb24u
Y3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZTo6Y3Jl
YXRlKToKKwogMjAxNS0wNi0wNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV0dXJuZWQgRXhjZXB0aW9uKiB2YWx1ZXMgbmVlZCB0byBiZSBpbml0aWFsaXplZCB0
byBudWxscHRyIHdoZW4gbm8gZXhjZXB0aW9ucyBhcmUgdGhyb3duLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4
NjAxZmNlOTY5MTMxMmYwYmRkYzk4NGZlZmQ0NjAzN2QzOWIzZDQuLmU4ODFmNDhmYzFmMTI0MTU5
ZGM2NmJlMDI5NTRjODM3NDA0MWI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
NS0wNi0wNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUHVyZ2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHB1cmdlIFBhc3NSZWZQ
dHIsIHRoaXMgcGF0Y2ggcmVwbGFjZXMgUGFzc1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93QmFzZTo6Y29tbW9uVk0pOgorCiAyMDE1LTA2LTA3ICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaFRyYWNlcjogW1VTRVJdIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCBhdCBjb20uYXBwbGUuV2ViQ29yZTogV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnN1YnJlc291cmNlQ2FjaGVQb2xpY3kgY29uc3QgKyAxMQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKaW5kZXggZTM1NDdkMmY1ZDNjZDA0MjNj
YmI0NWEyZjEzOGM3NDc0ZWFkYmI5ZS4uYThlN2NiN2Q0NTVkMmQwMWI5NDkyNmYyMzhhMWNlMGIz
YTExMjhjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCkBAIC0x
MDgsOSArMTA4LDkgQEAgT3BhcXVlSlNDbGFzczo6fk9wYXF1ZUpTQ2xhc3MoKQogICAgICAgICBK
U0NsYXNzUmVsZWFzZShwcm90b3R5cGVDbGFzcyk7CiB9CiAKLVBhc3NSZWZQdHI8T3BhcXVlSlND
bGFzcz4gT3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlND
bGFzc0RlZmluaXRpb24qIGRlZmluaXRpb24pCitSZWY8T3BhcXVlSlNDbGFzcz4gT3BhcXVlSlND
bGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24q
IGRlZmluaXRpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU0NsYXNzKGRl
ZmluaXRpb24sIDApKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPcGFxdWVKU0NsYXNzKGRl
ZmluaXRpb24sIDApKTsKIH0KIAogUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0Ns
YXNzOjpjcmVhdGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qIGNsaWVudERlZmluaXRpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCmluZGV4IGQyOThhMTYxOWM5NjZjZGVh
YWM2MDk5ZmQ5MjQ5ODI1YjM3ZDVjMGUuLjY4N2Q4YjliOTRkOTE4M2I4YTY5OTMwOTMwMmU3YmRm
ZDc1NDc2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1Jl
Zi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCkBAIC04Niw3
ICs4Niw3IEBAIHB1YmxpYzoKIAogc3RydWN0IE9wYXF1ZUpTQ2xhc3MgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNDbGFzcz4gewogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9w
YXF1ZUpTQ2xhc3M+IGNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiopOwotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IGNyZWF0ZU5vQXV0b21hdGljUHJvdG90eXBlKGNv
bnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7CisgICAgc3RhdGljIFJlZjxPcGFxdWVKU0NsYXNzPiBj
cmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiopOwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIH5PcGFxdWVKU0NsYXNzKCk7CiAgICAgCiAgICAgU3RyaW5nIGNs
YXNzTmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRl
eHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCmlu
ZGV4IDU4ODk5MTg3OTQ5ZmRlZTg5Y2ZjNGY3YjJmYWJkYjIzYWUzYzg5OTguLjQ5NzZjMjlhZWVl
ZjkxMzkzYmIwYTg3MjllNTAwNjQ3MjY0YzFmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgSlNDOjpqYXZhU2NyaXB0Q29yZUFQSUdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
ID0gewogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUoKQogewogICAgIGlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICByZXR1cm4gdG9SZWYoVk06OmNyZWF0ZUNvbnRleHRH
cm91cCgpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRvUmVmKCZWTTo6Y3JlYXRlQ29udGV4dEdy
b3VwKCkubGVha1JlZigpKTsKIH0KIAogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBS
ZXRhaW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNTY3JpcHRSZWYuY3BwCmluZGV4IDk5ZDdmMzFlNzgzZjI2YmFjMWI3ZGFhMDYzNDJmODI0ZWQ2
NmU1ZDYuLjQ3NDdkOTdmNjI3NTVmNWE1MDExMGRkYzMxMTMxNjU4NjYxMzQ0NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC00MSw5ICs0MSw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIHN0cnVjdCBPcGFxdWVKU1NjcmlwdCA6IHB1YmxpYyBTb3Vy
Y2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdURjo6UGFzc1JlZlB0cjxPcGFxdWVK
U1NjcmlwdD4gY3JlYXRlKFZNKiB2bSwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBzdGFydGluZ0xp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQorICAgIHN0YXRpYyBXVEY6OlJlZlB0cjxP
cGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNKiB2bSwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBzdGFy
dGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFdURjo6YWRvcHRSZWYobmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCB1cmwsIHN0YXJ0aW5nTGlu
ZU51bWJlciwgc291cmNlKSk7CisgICAgICAgIHJldHVybiBXVEY6OmFkb3B0UmVmKCpuZXcgT3Bh
cXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAKaW5kZXggM2I3NWYzZGZhOWY3
MWMyZDgzNjA1OGEwYWRiZGM4NGE2Y2QyZDBmNS4uYzliMzgwY2U2NTQxNTlkM2NkMTFlYmUyNTkw
NDZiYzY5MWVkMGZmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0
cmluZ1JlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIEpTU3Ry
aW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoY29uc3QgSlNDaGFyKiBjaGFycywg
c2l6ZV90IG51bUNoYXJzKQogewogICAgIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICByZXR1
cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShjaGFycywgbnVtQ2hhcnMpLmxlYWtSZWYoKTsKKyAg
ICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoY2hhcnMsIG51bUNoYXJzKS5sZWFrUmVm
KCk7CiB9CiAKIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0
IGNoYXIqIHN0cmluZykKQEAgLTUxLDEyICs1MSwxMiBAQCBKU1N0cmluZ1JlZiBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcpCiAgICAgICAgIGNvbnN0IExD
aGFyKiBzdHJpbmdTdGFydCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJpbmcp
OwogICAgICAgICBpZiAoY29udmVyc2lvbk9LID09IGNvbnZlcnRVVEY4VG9VVEYxNigmc3RyaW5n
LCBzdHJpbmcgKyBsZW5ndGgsICZwLCBwICsgbGVuZ3RoLCAmc291cmNlSXNBbGxBU0NJSSkpIHsK
ICAgICAgICAgICAgIGlmIChzb3VyY2VJc0FsbEFTQ0lJKQotICAgICAgICAgICAgICAgIHJldHVy
biBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHN0cmluZ1N0YXJ0LCBsZW5ndGgpLmxlYWtSZWYoKTsK
LSAgICAgICAgICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCks
IHAgLSBidWZmZXIuZGF0YSgpKS5sZWFrUmVmKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuICZP
cGFxdWVKU1N0cmluZzo6Y3JlYXRlKHN0cmluZ1N0YXJ0LCBsZW5ndGgpLmxlYWtSZWYoKTsKKyAg
ICAgICAgICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWZmZXIuZGF0YSgpLCBw
IC0gYnVmZmVyLmRhdGEoKSkubGVha1JlZigpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0
dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuICZPcGFx
dWVKU1N0cmluZzo6Y3JlYXRlKCkubGVha1JlZigpOwogfQogCiBKU1N0cmluZ1JlZiBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzTm9Db3B5KGNvbnN0IEpTQ2hhciogY2hhcnMsIHNpemVfdCBu
dW1DaGFycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNT
dHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAK
aW5kZXggN2Y5ZWRiNDEzNmUyNzQ5OTc0N2QyOTZkMmYxYTJkYzQ4OWIwNDQzZC4uMDdhNzlhZDk5
ZTZkYzdmMzFjNWY4ZmJhYTkyNDFlZjEyZmVhMjRkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAotUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gT3BhcXVlSlNTdHJpbmc6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmluZykKK1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gT3Bh
cXVlSlNTdHJpbmc6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBpZiAoc3Ry
aW5nLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAppbmRleCAwM2FlNTc3OTA0Y2NhYjU3ZmI0MDdmYzU1
MTRkYzgzOTMxZjY5MGE0Li4yMDgxMzFiM2I0MTU4ZTdjNmZjZmRlOTFlNDZjMzU3Nzg5N2FkYzY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oCkBAIC0zNiwy
MiArMzYsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiB9CiAKIHN0cnVjdCBPcGFxdWVKU1N0cmluZyA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVKU1N0cmluZz4gewotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8T3Bh
cXVlSlNTdHJpbmc+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE9wYXF1ZUpTU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNT
dHJpbmcpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBj
cmVhdGUoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0
aWMgUmVmPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BhcXVl
SlNTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE9wYXF1ZUpTU3RyaW5nKGNoYXJhY3RlcnMsIGxlbmd0aCkpOwogICAgIH0KIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0aWMgUmVmPE9wYXF1ZUpTU3RyaW5nPiBj
cmVhdGUoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVu
Z3RoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9wYXF1ZUpTU3RyaW5nKGNoYXJh
Y3RlcnMsIGxlbmd0aCkpOwogICAgIH0KIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQ
YXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0
IFN0cmluZyYpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfk9wYXF1ZUpTU3RyaW5nKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvU3RhdGljUHJv
cGVydHlBbmFseXNpcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9TdGF0
aWNQcm9wZXJ0eUFuYWx5c2lzLmgKaW5kZXggMjkzYzIyNDE0YTYyMTBiZTFmZjdlN2IxZTI4ZmE0
ZjM1MjI0MDAwMC4uNWE5OTE4ZGQxNTgwYWNmNzkxOTNiZjFjNDcyOWFiYjI0YWU2OTNlOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9TdGF0aWNQcm9wZXJ0
eUFuYWx5c2lzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9TdGF0
aWNQcm9wZXJ0eUFuYWx5c2lzLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAv
LyBSZWZlcmVuY2UgY291bnQgaW5kaWNhdGVzIG51bWJlciBvZiBsaXZlIHJlZ2lzdGVycyB0aGF0
IGFsaWFzIHRoaXMgb2JqZWN0LgogY2xhc3MgU3RhdGljUHJvcGVydHlBbmFseXNpcyA6IHB1Ymxp
YyBSZWZDb3VudGVkPFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzPiBjcmVhdGUoVmVjdG9yPFVubGlu
a2VkSW5zdHJ1Y3Rpb24sIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiogaW5zdHJ1Y3Rpb25zLCB1
bnNpZ25lZCB0YXJnZXQpCisgICAgc3RhdGljIFJlZjxTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzPiBj
cmVhdGUoVmVjdG9yPFVubGlua2VkSW5zdHJ1Y3Rpb24sIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93
PiogaW5zdHJ1Y3Rpb25zLCB1bnNpZ25lZCB0YXJnZXQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFN0YXRpY1Byb3BlcnR5QW5hbHlzaXMoaW5zdHJ1Y3Rpb25zLCB0YXJnZXQp
KTsgCisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0YXRpY1Byb3BlcnR5QW5hbHlzaXMo
aW5zdHJ1Y3Rpb25zLCB0YXJnZXQpKTsgCiAgICAgfQogCiAgICAgdm9pZCBhZGRQcm9wZXJ0eUlu
ZGV4KHVuc2lnbmVkIHByb3BlcnR5SW5kZXgpIHsgbV9wcm9wZXJ0eUluZGV4ZXMuYWRkKHByb3Bl
cnR5SW5kZXgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJDYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckNhbGxGcmFtZS5oCmluZGV4IDVjN2Q3NWFkYzk0OGIyNjUxMjI5MDgzNzE1NzVhYzJjNTdi
ZDdkNjQuLmRmNjFjNmFhMzkzNTU0N2FjNzg1MTczZGVlMTA3YjUwYzNhNDBmNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oCkBA
IC00Niw5ICs0Niw5IEBAIGNsYXNzIERlYnVnZ2VyQ2FsbEZyYW1lIDogcHVibGljIFJlZkNvdW50
ZWQ8RGVidWdnZXJDYWxsRnJhbWU+IHsKIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgeyBQcm9ncmFt
VHlwZSwgRnVuY3Rpb25UeXBlIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWJ1Z2dlckNh
bGxGcmFtZT4gY3JlYXRlKENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgIHN0YXRpYyBSZWY8RGVi
dWdnZXJDYWxsRnJhbWU+IGNyZWF0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVidWdnZXJDYWxsRnJhbWUoY2FsbEZyYW1lKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlYnVnZ2VyQ2FsbEZyYW1lKGNhbGxGcmFtZSkp
OwogICAgIH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IERlYnVnZ2VyQ2FsbEZy
YW1lKENhbGxGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAppbmRleCBk
MDE2MmI3OWU1ZjQ2MWE1ODhhOWIyY2ZkNGYwZDAyNmYxZjY1YjBmLi5kZDgxMDhhNzYwOTlmOGE2
N2ZkM2ZiN2RkZTMzMTFmNzU5NTk5NzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmNwcApAQCAtNDMsMTAgKzQzLDkgQEAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OlRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKAogCiBUb0ZUTERlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjazo6flRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkgeyB9CiAK
LVBhc3NSZWZQdHI8VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IFRvRlRMRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoCi0gICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+
IGRmZ0NvZGVCbG9jaykKK1JlZjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShQYXNzUmVmUHRyPENvZGVCbG9j
az4gZGZnQ29kZUJsb2NrKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVG9GVExEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CiB9
CiAKIHZvaWQgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNvbXBpbGF0aW9uRGlk
QmVjb21lUmVhZHlBc3luY2hyb25vdXNseSgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApp
bmRleCBmMWFjNGE2OGZjNjQ5NzMwYTY1YjZkYWMwOGVkNjk1ODFiZDM5OTJmLi4zZTBlYTAyZDBm
YTIyMzY0YjhjNjkwZmIxNzE1MTU3OWYxMTRmMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oCkBAIC00NSw4ICs0NSw3IEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Ub0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgKLSAgICAgICAg
UGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jayk7CisgICAgc3RhdGljIFJlZjxUb0ZU
TERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJsb2Nr
PiBkZmdDb2RlQmxvY2spOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJl
Y29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKik7CiAgICAgdmlydHVhbCB2b2lkIGNv
bXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKaW5kZXgg
NDdjNGZiYmVjNTFlZWY5NjI4NTI1MmI0NDgwMGIwNjljM2VjNGRjYS4uNzBjYzgyNTAyMjYyZTE3
M2MzMDNmNjQ4NzE4NWQwM2ZkZDFmNWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCkBAIC00NSwxMSArNDUsMTAgQEAgVG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6flRvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW8KIHsKIH0KIAotUGFzc1JlZlB0cjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrPgotVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjazo6Y3JlYXRlKAorUmVmPFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s+VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
Y3JlYXRlKAogICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrKGRmZ0NvZGVCbG9jaykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvRlRMRm9y
T1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CiB9CiAK
IHZvaWQgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGls
YXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAppbmRleCBjNTNkZjkxZjc2OWQ3ZjgwMjZhNWI0
YWJjZjY3N2VjMTk2Y2Y4NGU0Li5jOWRjZjZkN2MwMWZjMWU0ODU2MDA5YjhmZDczMjFjMDg5ZTNl
NGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aApAQCAtNDUsOCArNDUsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4g
Y3JlYXRlKAotICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKKyAg
ICBzdGF0aWMgUmVmPFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+
IGNyZWF0ZShQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVC
bG9jayopOwogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRlKENvZGVCbG9j
ayosIENvbXBpbGF0aW9uUmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAKaW5kZXggNGFhMTQyOGE2Y2RkNmRhMDg1N2ZmMzU1NWMyN2Y1ZDFkNDMyNjNhMS4u
NGE4ZjU3MjI0OGQwY2JiNmQ4OGUyMWY0ZWJhNmFiZjRkZjRkMTY4NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgdm9pZCBXb3Jr
bGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSkKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8V29ya2xpc3Q+IFdvcmtsaXN0Ojpj
cmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50
IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoQ1N0cmlu
ZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJp
b3JpdHkpCiB7Ci0gICAgUmVmUHRyPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZihuZXcgV29y
a2xpc3Qod29ya2xpc3ROYW1lKSk7CisgICAgUmVmPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJl
ZigqbmV3IFdvcmtsaXN0KHdvcmtsaXN0TmFtZSkpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRp
b24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVByaW9yaXR5KTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQpAQCAtNDA2LDcgKzQwNiw3IEBAIFdvcmtsaXN0KiBlbnN1cmVHbG9iYWxERkdXb3JrbGlz
dCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlz
dE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9u
Y2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gV29ya2xpc3Q6OmNy
ZWF0ZSgiREZHIFdvcmtsaXN0IiwgT3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMo
KSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYo
KTsKKyAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiREZH
IFdvcmtsaXN0IiwgT3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9u
czo6cHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9
KTsKICAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xpc3Q7CiB9CkBAIC00MjIsNyArNDIyLDcg
QEAgV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAg
dGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBP
cHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURl
bHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxG
VExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRpb25zOjpu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExD
b21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiB0aGVHbG9i
YWxGVExXb3JrbGlzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApp
bmRleCBmNjFhZTRhZWI4Yzc0Y2U1OWU5OTBkY2M2YTE0Mjk4ZTA2YzljYTk3Li5iZDZlNmZhNzVm
NjI0MGUyN2QzMGU2MzMyOTZkMWE1NjUyNTBmZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIH5Xb3JrbGlz
dCgpOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmlu
ZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJp
b3JpdHkgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3Jr
bGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkg
PSAwKTsKICAgICAKICAgICB2b2lkIGVucXVldWUoUGFzc1JlZlB0cjxQbGFuPik7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxi
YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNr
LmgKaW5kZXggMjhjZmRkYjc3ZWI4MzkzNTgzYjJjOGI3ZWZiODVlMWQyNjI5YzVmNi4uZTBmZjc4
ODQ1NDZiZGI4NmRiY2E2MWE5YjRkODFjNWVmM2NlYThlZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMjgsNiArMjgs
OCBAQAogCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAKKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBF
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CkBAIC00
OSw3ICs1MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSBv
dmVycmlkZTsKIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NB
Y3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIoSGVhcCogaGVhcCkKK2lubGluZSBSZWZQ
dHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1l
cihIZWFwKiBoZWFwKQogewogICAgIHJldHVybiBzX3Nob3VsZENyZWF0ZUdDVGltZXIgPyBhZG9w
dFJlZihuZXcgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSkgOiBudWxscHRyOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5o
CmluZGV4IDg4Y2ViZDlkOTU5NjczNzAzZTU4ZmRhNjc2YmZhNmQ4MzNlZjljY2YuLjNiMWI0NTAw
NWM1NWIwNjZjN2I5MWQ2YzRlNjRkNzcwZDU0ZDA5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwog
fTsKIAotaW5saW5lIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmNyZWF0ZUZ1bGxUaW1lcihIZWFwKiBoZWFwKQoraW5saW5lIFJlZlB0cjxHQ0FjdGl2
aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlRnVsbFRpbWVyKEhlYXAqIGhl
YXApCiB7CiAgICAgcmV0dXJuIHNfc2hvdWxkQ3JlYXRlR0NUaW1lciA/IGFkb3B0UmVmKG5ldyBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApKSA6IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGYzMGMyNzcwZTY0
N2YxZWM3NGU2NzU1ZmQ5N2FhYjBkY2VmMzNlZDkuLjNkMDdlZmFhMmUxNjM4NzViMDJhMzJkYzA3
YjgwOWNkZWNmMjlhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dD
QWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0
aXZpdHlDYWxsYmFjay5oCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEdDQWN0aXZpdHlDYWxs
YmFja19oCiAKICNpbmNsdWRlICJIZWFwVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFVTRShDRikKICNpbmNsdWRlIDxD
b3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBI
ZWFwOwogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGlj
IEhlYXBUaW1lciwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEdDQWN0aXZpdHlDYWxsYmFj
az4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRnVsbFRpbWVyKEhlYXAqKTsKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUVkZW5UaW1lcihI
ZWFwKik7CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUZ1bGxU
aW1lcihIZWFwKik7CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0
ZUVkZW5UaW1lcihIZWFwKik7CiAKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhv
c3QuaAppbmRleCBhZjFlMGNiMTUxMDM3NWFiMzQ0MDZjNGM1OTQ4NjA2YTYzYzczMmNiLi5hZTUz
MGEyMDI3MjBiMjE4NTk5ZjhjOTY1MTAwOGU3OGE3NjQ0MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRF
IEluamVjdGVkU2NyaXB0SG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEluamVjdGVkU2NyaXB0SG9z
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVkU2NyaXB0SG9zdCk7IH0KKyAg
ICBzdGF0aWMgUmVmPEluamVjdGVkU2NyaXB0SG9zdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbmplY3RlZFNjcmlwdEhvc3QpOyB9CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3Jp
cHRIb3N0KCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBzdWJ0eXBlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlKSB7IHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFt
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1l
LmgKaW5kZXggYjM0NGMzM2ZiZGVlMjQ4ZGFlN2M5ZmNhOTEyZTQyMDcxZDdlNTMyZi4uNWNmYmIy
M2JhMWExZTkzYTNlYTAyYTQyODIyOTY4YjViZjQ1ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKQEAgLTM4LDkg
KzM4LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJh
bWUgOiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8SlNDOjpEZWJ1Z2dlckNhbGxGcmFtZT4gZGVidWdnZXJDYWxsRnJhbWUpCisgICAgc3RhdGlj
IFJlZjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUoUGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2Vy
Q2FsbEZyYW1lPiBkZWJ1Z2dlckNhbGxGcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSmF2YVNjcmlwdENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZy
YW1lKSk7CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAK
aW5kZXggNDEwMGEzZjk5NWU5MzM2NjRhOTM3MTBjMzBlOGMyMTRhMGIzYjhlYi4uNTFkMWZlNjU4
ZDU2YTk1YWFkNWJkYmE0MzM5ZmMyYzkyYWFlYTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcApAQCAtMzcsOSArMzcsOSBA
QAogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IFNjcmlwdEFyZ3VtZW50czo6Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgVmVj
dG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKQorUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4gU2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRl
LCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTY3JpcHRBcmd1bWVudHMoc2NyaXB0U3RhdGUsIGFyZ3VtZW50cykp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcmlwdEFyZ3VtZW50cyhzY3JpcHRTdGF0ZSwg
YXJndW1lbnRzKSk7CiB9CiAKIFNjcmlwdEFyZ3VtZW50czo6U2NyaXB0QXJndW1lbnRzKEpTQzo6
RXhlY1N0YXRlKiBleGVjU3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFy
Z3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2Ny
aXB0QXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFy
Z3VtZW50cy5oCmluZGV4IDUzMzdlMDE5ZTA5YzM5NTE3ODAzYjg0ZDc3OWZkYmZhMzIxMmE3OTAu
LjcyMDBhYjQ4YWQ2NTQzZGRhNzI3MTY4OTIyOWEzNTgzY2Q0MGQ5MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaApAQCAtNTEsNyAr
NTEsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
U2NyaXB0QXJndW1lbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyaXB0QXJndW1lbnRzPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlND
OjpFeGVjU3RhdGUqLCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMp
OworICAgIHN0YXRpYyBSZWY8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUq
LCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpOwogICAgIH5TY3Jp
cHRBcmd1bWVudHMoKTsKIAogICAgIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBhcmd1
bWVudEF0KHNpemVfdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJSb3V0aW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJS
b3V0aW5lLmgKaW5kZXggODQ5NDkyYjM0ZDg1ZGE4NmM2OTUzODc1MzQ5ZjA2NjUyNmU2MjRhMS4u
YjIxMTNhNjVmMWY4M2E2ZDc4ZTk2YTkxYTc1ZDRkMTM0NjU4ZGU3OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKICAgICAKICAgICAvLyBVc2UgdGhpcyBpZiB5b3Ugd2FudCB0byBwYXNzIGEgQ29kZVB0ciB0
byBzb21lb25lIHdobyBpbnNpc3RzIG9uIHRha2luZwogICAgIC8vIGEgUmVmUHRyPEpJVFN0dWJS
b3V0aW5lPi4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4gY3JlYXRlU2Vs
Zk1hbmFnZWRSb3V0aW5lKAorICAgIHN0YXRpYyBSZWY8SklUU3R1YlJvdXRpbmU+IGNyZWF0ZVNl
bGZNYW5hZ2VkUm91dGluZSgKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJhd0NvZGVQ
b2ludGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGlu
ZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihyYXdDb2Rl
UG9pbnRlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSklUU3R1YlJvdXRpbmUo
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYocmF3Q29kZVBv
aW50ZXIpKSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgfkpJVFN0dWJSb3V0aW5lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCmluZGV4IDQ3ODYzMTJkZWYwOWIwNGYwM2E0
NTZiYjZhZWU5NmM3OGI2ZDJhMmEuLmY3ZjBhYjliYzYxOWExODkwMDU0Mjg0ODFhMThkM2UxMDNm
Mjc0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCkBAIC0zNyw5ICszNyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkgeyB9CiBKSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6fkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrKCkgeyB9CiAKLVBhc3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2s+IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKQorUmVmPEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBKSVRUb0RGR0RlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjazo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOwogfQogCiB2b2lkIEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjb21waWxhdGlvbkRpZEJlY29tZVJl
YWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggNWEx
YzdmZjFjNTI0NDhkNGRjOTJkMjVkMjJkNGI3MDlhMTEyNGUyMS4uZjY0Yjk3OWNlY2NjZDQzOTMy
ZjMyZmQ4OGQ1YjQ2YjI2NGI1ODExZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApA
QCAtNDIsNyArNDIsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SklUVG9E
RkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91
c2x5KENvZGVCbG9jayopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRp
ZENvbXBsZXRlKENvZGVCbG9jayosIENvbXBpbGF0aW9uUmVzdWx0KSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggODc3MGFhYmViMzFiODJkYmU0MTc0NGI2YTliMjFhMmVlMzNjYmEw
MC4uMTc1ZjI4NzEzZjU3MmI1YWMxZjBkZjFmZjE0M2VkNTVlYmE0NTQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTE1MDQsNyArMTUwNCw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKICAgICAvLyBOb3RlIHRoYXQgdGhlIG9wdGlvbnMgcGFyc2luZyBjYW4gYWZmZWN0
IFZNIGNyZWF0aW9uLCBhbmQgdGh1cwogICAgIC8vIGNvbWVzIGZpcnN0LgogICAgIENvbW1hbmRM
aW5lIG9wdGlvbnMoYXJnYywgYXJndik7Ci0gICAgVk0qIHZtID0gVk06OmNyZWF0ZShMYXJnZUhl
YXApLmxlYWtSZWYoKTsKKyAgICBWTSogdm0gPSAmVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtS
ZWYoKTsKICAgICBpbnQgcmVzdWx0OwogICAgIHsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2tl
cih2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9y
cy5oCmluZGV4IGZlZjBmNzIzN2Y0YWE2MzE2ZGNhYTQ2YjMxY2ZjODE1M2RlNGIzMmYuLjdlMjZl
YzNjOGU0NTVlODlkYjFkMjBhZTY4MmExMjA4MjdmY2U3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC05NDMsOSArOTQzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KICAgICAKLSAgICBpbmxpbmUgUGFzc1JlZlB0
cjxBcnJheVBhdHRlcm5Ob2RlPiBBcnJheVBhdHRlcm5Ob2RlOjpjcmVhdGUoKQorICAgIGlubGlu
ZSBSZWY8QXJyYXlQYXR0ZXJuTm9kZT4gQXJyYXlQYXR0ZXJuTm9kZTo6Y3JlYXRlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlQYXR0ZXJuTm9kZSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFycmF5UGF0dGVybk5vZGUpOwogICAgIH0KICAgICAKICAg
ICBpbmxpbmUgT2JqZWN0UGF0dGVybk5vZGU6Ok9iamVjdFBhdHRlcm5Ob2RlKCkKQEAgLTk1Mywx
NCArOTUzLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgaW5s
aW5lIFBhc3NSZWZQdHI8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2RlOjpjcmVh
dGUoKQorICAgIGlubGluZSBSZWY8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2Rl
OjpjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RQYXR0
ZXJuTm9kZSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iamVjdFBhdHRlcm5Ob2Rl
KTsKICAgICB9CiAKLSAgICBpbmxpbmUgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gQmluZGluZ05v
ZGU6OmNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpCisgICAgaW5saW5lIFJl
ZjxCaW5kaW5nTm9kZT4gQmluZGluZ05vZGU6OmNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3Vu
ZFByb3BlcnR5LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBlbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpbmRpbmdOb2Rl
KGJvdW5kUHJvcGVydHksIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQmluZGluZ05vZGUoYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCkpOwogICAgIH0KICAgICAK
ICAgICBpbmxpbmUgQmluZGluZ05vZGU6OkJpbmRpbmdOb2RlKGNvbnN0IElkZW50aWZpZXImIGJv
dW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAKaW5kZXggZmY5
YWE0NGFkMTQ3OGFiNzA5MWRhYjQ4MTY1NDAyNGQxMWZhMDUzYS4uMDdlMGQzN2ZkZmNjMTkxNmY5
NzU0M2EyODExZDQ0NzE2MTk2YTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBFdmFsTm9kZTo6RXZhbE5vZGUoUGFyc2VyQXJlbmEm
IHBhcnNlckFyZW5hLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0TG9jYXRpbwogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25Cb2R5Tm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEZ1bmN0aW9uUGFyYW1ldGVycz4gRnVu
Y3Rpb25QYXJhbWV0ZXJzOjpjcmVhdGUoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIpCitS
ZWY8RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZShQYXJhbWV0
ZXJOb2RlKiBmaXJzdFBhcmFtZXRlcikKIHsKICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCA9
IDA7CiAgICAgZm9yIChQYXJhbWV0ZXJOb2RlKiBwYXJhbWV0ZXIgPSBmaXJzdFBhcmFtZXRlcjsg
cGFyYW1ldGVyOyBwYXJhbWV0ZXIgPSBwYXJhbWV0ZXItPm5leHRQYXJhbSgpKQpAQCAtMTQ3LDcg
KzE0Nyw3IEBAIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRl
cnM6OmNyZWF0ZShQYXJhbWV0ZXJOb2RlKiBmaXJzdFBhCiAKICAgICBzaXplX3Qgb2JqZWN0U2l6
ZSA9IHNpemVvZihGdW5jdGlvblBhcmFtZXRlcnMpIC0gc2l6ZW9mKHZvaWQqKSArIHNpemVvZihE
ZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKikgKiBwYXJhbWV0ZXJDb3VudDsKICAgICB2b2lkKiBz
bG90ID0gZmFzdE1hbGxvYyhvYmplY3RTaXplKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChz
bG90KSBGdW5jdGlvblBhcmFtZXRlcnMoZmlyc3RQYXJhbWV0ZXIsIHBhcmFtZXRlckNvdW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKHNsb3QpIEZ1bmN0aW9uUGFyYW1ldGVycyhmaXJz
dFBhcmFtZXRlciwgcGFyYW1ldGVyQ291bnQpKTsKIH0KIAogRnVuY3Rpb25QYXJhbWV0ZXJzOjpG
dW5jdGlvblBhcmFtZXRlcnMoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIsIHVuc2lnbmVk
IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggOTJmMWEyMWViOWY2
NmMyOTc3MzliODVlOGE1OGExYmY5MGY1MTNiMS4uN2IwMGM3ZmUxMzc2Yjc2ODkzNjhlZmU2M2U0
YzAxMGZjNjQ0NGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTYz
NCw3ICsxNjM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGdW5jdGlvblBhcmFtZXRlcnMp
OwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0
ZXJzPiBjcmVhdGUoUGFyYW1ldGVyTm9kZSopOworICAgICAgICBzdGF0aWMgUmVmPEZ1bmN0aW9u
UGFyYW1ldGVycz4gY3JlYXRlKFBhcmFtZXRlck5vZGUqKTsKICAgICAgICAgfkZ1bmN0aW9uUGFy
YW1ldGVycygpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3Np
emU7IH0KQEAgLTE3ODIsNyArMTc4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3Mg
QXJyYXlQYXR0ZXJuTm9kZSA6IHB1YmxpYyBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5UGF0dGVybk5vZGU+IGNy
ZWF0ZSgpOworICAgICAgICBzdGF0aWMgUmVmPEFycmF5UGF0dGVybk5vZGU+IGNyZWF0ZSgpOwog
ICAgICAgICB2b2lkIGFwcGVuZEluZGV4KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIERlY29uc3Ry
dWN0aW9uUGF0dGVybk5vZGUqIG5vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fdGFyZ2V0
UGF0dGVybnMuYXBwZW5kKG5vZGUpOwpAQCAtMTgwMCw3ICsxODAwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgCiAgICAgY2xhc3MgT2JqZWN0UGF0dGVybk5vZGUgOiBwdWJsaWMgRGVjb25zdHJ1
Y3Rpb25QYXR0ZXJuTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxPYmplY3RQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CisgICAgICAgIHN0YXRpYyBSZWY8T2JqZWN0
UGF0dGVybk5vZGU+IGNyZWF0ZSgpOwogICAgICAgICB2b2lkIGFwcGVuZEVudHJ5KGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIGJvb2wgd2FzU3Ry
aW5nLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiBwYXR0ZXJuKQogICAgICAgICB7CiAgICAg
ICAgICAgICBtX3RhcmdldFBhdHRlcm5zLmFwcGVuZChFbnRyeShpZGVudGlmaWVyLCB3YXNTdHJp
bmcsIHBhdHRlcm4pKTsKQEAgLTE4MjcsNyArMTgyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgQmluZGluZ05vZGUgOiBwdWJsaWMgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSB7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gY3Jl
YXRlKGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCk7CisgICAgICAgIHN0YXRpYyBSZWY8
QmluZGluZ05vZGU+IGNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOwogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9i
b3VuZFByb3BlcnR5OyB9CiAKICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90U3RhcnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCA0ZmM5NTk1Mjc3YzMwYmY3YjQyZmQ0
M2QzMWY3M2Q5ZTM1YTAxNmVhLi5jY2NhYmYzNjk2NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2
YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5o
CkBAIC03NCw5ICs3NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5nU291
cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgIHN0
YXRpYyBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9
IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwsIHN0
YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKHNvdXJjZSwgdXJsLCBzdGFydFBvc2l0aW9uKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcAppbmRleCAwNjIyNDNiNGY2
OGEwMTk2ZjllZjAxM2Y4ZTBmNDdmNjgyN2I3ZmNmLi5mM2Q0NTBhYjIzMDM4MzBkYzIzMTAyMTU2
Y2IwMWM2OTMwMmQzYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGUuY3BwCkBAIC0zMSw5ICszMSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNzUmVmUHRy
PFByb2ZpbGU+IFByb2ZpbGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1
aWQsIGRvdWJsZSBzdGFydFRpbWUpCitSZWY8UHJvZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGUodGl0bGUsIHVpZCwgc3RhcnRUaW1lKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpKTsKIH0K
IAogUHJvZmlsZTo6UHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRv
dWJsZSBzdGFydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaApp
bmRleCBkYjE5YmY4YjJiMzU2MjJhNGU4OTAzM2NlZmNmNDEyODg0ZjUzYjcyLi40MWNiNjcwY2Fl
N2NhOWViMTdhZTQ2NGRhYzNlZTMxYzFhMWYxZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIFByb2ZpbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxl
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmlsZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlKTsKKyAgICBzdGF0aWMgUmVmPFBy
b2ZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7
CiAgICAgdmlydHVhbCB+UHJvZmlsZSgpOwogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAppbmRleCA1NmNkZjZmNjczZWE4ZmM1MDYyYzA5
ODdmMGY3NGQ2ZmNjYTE0OWE0Li5mNzBlNGEzZjY0OTlkNGQwYjQ4NmMxMmUwMGQ4MzkwMTVkOWQ1
MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVH
ZW5lcmF0b3IuY3BwCkBAIC0zOSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNz
UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxT
dG9wd2F0Y2g+IHN0b3B3YXRjaCkKK1JlZjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2VuZXJh
dG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25l
ZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9maWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVHZW5lcmF0b3IoZXhlYywgdGl0bGUs
IHVpZCwgc3RvcHdhdGNoKSk7CiB9CiAKIFByb2ZpbGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBh
c3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAppbmRleCAzZTMwMWFlMzY5OThmYTZiOGUw
MDlkODY5NjA0ZjdlMDU1YzBkYjMzLi4zODdlZDVmNGE3MDQ0MzNkMDYzZGM3YzY5MTFiZGUxODMx
MTVkOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFz
cyBQcm9maWxlR2VuZXJhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRvcj4g
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVHZW5lcmF0
b3I+IGNyZWF0ZShFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVk
IHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKKyAgICAgICAgc3RhdGljIFJlZjxQcm9maWxl
R2VuZXJhdG9yPiBjcmVhdGUoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCB1
bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7CiAKICAgICAgICAgLy8gTWVtYmVy
cwogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKaW5kZXggOWFjNTU2NTllOTlkNmRk
NzNjYzNjMzA5NWYzNzZiZDlhMjhkMDRjMy4uZmNhZWUwZTI0MjI5OWM2NTZiNWE1YTc2N2EwNDEx
ZDU1YWVkZTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmgKQEAgLTQ0LDE0ICs0NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFBy
b2ZpbGVOb2RlIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZU5vZGU+IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllciwg
UHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCisgICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+
IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXIm
IGNhbGxJZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUs
IGNhbGxJZGVudGlmaWVyLCBwYXJlbnROb2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBwYXJl
bnROb2RlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9maWxl
Tm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9k
ZSkKKyAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2Fs
bGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxG
cmFtZSwgbm9kZSkpOwogICAgICAgICB9CiAKICAgICAgICAgc3RydWN0IENhbGwgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKaW5kZXggYTdiNmYzM2Q3ODk0
MjFhOWFiYzE1OTllOTA3YzA1YTFjODk3NzVjZS4uYWY4M2I0OGU0Mjc5ZGYwYWQwMjIyYTg3YWZl
YTc0NjhlOTE0ZWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1
ZmZlci5oCkBAIC05MCwxNCArOTAsMTQgQEAgcHJpdmF0ZToKIAogY2xhc3MgQXJyYXlCdWZmZXIg
OiBwdWJsaWMgR0NJbmNvbWluZ1JlZkNvdW50ZWQ8QXJyYXlCdWZmZXI+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZSh1bnNpZ25lZCBu
dW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplKTsKLSAgICBzdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJheUJ1ZmZlciopOwotICAgIHN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHZvaWQqIHNvdXJj
ZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7Ci0gICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBjcmVhdGUoQXJyYXlCdWZmZXJDb250ZW50cyYpOwotICAgIHN0YXRpYyBpbmxp
bmUgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlQWRvcHRlZChjb25zdCB2b2lkKiBkYXRh
LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKKyAgICBzdGF0aWMgaW5saW5lIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNp
emUpOworICAgIHN0YXRpYyBpbmxpbmUgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoQXJyYXlC
dWZmZXIqKTsKKyAgICBzdGF0aWMgaW5saW5lIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CisgICAgc3RhdGljIGlubGlu
ZSBSZWY8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJheUJ1ZmZlckNvbnRlbnRzJik7CisgICAgc3Rh
dGljIGlubGluZSBSZWY8QXJyYXlCdWZmZXI+IGNyZWF0ZUFkb3B0ZWQoY29uc3Qgdm9pZCogZGF0
YSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAKICAgICAvLyBPbmx5IGZvciB1c2UgYnkgVWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQgYW5kIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
QXJyYXlCdWZmZXIuCi0gICAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBj
cmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50
Qnl0ZVNpemUpOworICAgIHN0YXRpYyBpbmxpbmUgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGVV
bmluaXRpYWxpemVkKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNp
emUpOwogCiAgICAgaW5saW5lIHZvaWQqIGRhdGEoKTsKICAgICBpbmxpbmUgY29uc3Qgdm9pZCog
ZGF0YSgpIGNvbnN0OwpAQCAtMTE5LDEwICsxMTksMTAgQEAgcHVibGljOgogICAgIH5BcnJheUJ1
ZmZlcigpIHsgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0
ZVNpemUsIEFycmF5QnVmZmVyQ29udGVudHM6OkluaXRpYWxpemF0aW9uUG9saWN5KTsKKyAgICBz
dGF0aWMgaW5saW5lIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1l
bnRzLCB1bnNpZ25lZCBlbGVtZW50Qnl0ZVNpemUsIEFycmF5QnVmZmVyQ29udGVudHM6OkluaXRp
YWxpemF0aW9uUG9saWN5KTsKIAogICAgIGlubGluZSBBcnJheUJ1ZmZlcihBcnJheUJ1ZmZlckNv
bnRlbnRzJik7Ci0gICAgaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNsaWNlSW1wbCh1
bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdDsKKyAgICBpbmxpbmUgUmVmUHRyPEFy
cmF5QnVmZmVyPiBzbGljZUltcGwodW5zaWduZWQgYmVnaW4sIHVuc2lnbmVkIGVuZCkgY29uc3Q7
CiAgICAgaW5saW5lIHVuc2lnbmVkIGNsYW1wSW5kZXgoaW50IGluZGV4KSBjb25zdDsKICAgICBz
dGF0aWMgaW5saW5lIGludCBjbGFtcFZhbHVlKGludCB4LCBpbnQgbGVmdCwgaW50IHJpZ2h0KTsK
IApAQCAtMTQzLDUwICsxNDMsNTAgQEAgaW50IEFycmF5QnVmZmVyOjpjbGFtcFZhbHVlKGludCB4
LCBpbnQgbGVmdCwgaW50IHJpZ2h0KQogICAgIHJldHVybiB4OwogfQogCi1QYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNp
Z25lZCBlbGVtZW50Qnl0ZVNpemUpCitSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpj
cmVhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSkKIHsK
ICAgICByZXR1cm4gY3JlYXRlKG51bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUsIEFycmF5QnVm
ZmVyQ29udGVudHM6Olplcm9Jbml0aWFsaXplKTsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlciogb3RoZXIpCitSZWZQdHI8QXJyYXlC
dWZmZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXIqIG90aGVyKQogewogICAgIHJl
dHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG90aGVyLT5kYXRhKCksIG90aGVyLT5ieXRlTGVuZ3Ro
KCkpOwogfQogCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNv
bnN0IHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK1JlZlB0cjxBcnJheUJ1ZmZl
cj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVM
ZW5ndGgpCiB7CiAgICAgQXJyYXlCdWZmZXJDb250ZW50cyBjb250ZW50czsKICAgICBBcnJheUJ1
ZmZlckNvbnRlbnRzOjp0cnlBbGxvY2F0ZShieXRlTGVuZ3RoLCAxLCBBcnJheUJ1ZmZlckNvbnRl
bnRzOjpaZXJvSW5pdGlhbGl6ZSwgY29udGVudHMpOwogICAgIGlmICghY29udGVudHMubV9kYXRh
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPSBhZG9wdFJlZihuZXcgQXJyYXlCdWZmZXIoY29udGVudHMp
KTsKICAgICBBU1NFUlQoIWJ5dGVMZW5ndGggfHwgc291cmNlKTsKICAgICBtZW1jcHkoYnVmZmVy
LT5kYXRhKCksIHNvdXJjZSwgYnl0ZUxlbmd0aCk7Ci0gICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJy
YXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50cykKK1JlZjxBcnJh
eUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlckNvbnRlbnRzJiBjb250ZW50
cykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFycmF5QnVmZmVyKGNvbnRlbnRzKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXJyYXlCdWZmZXIoY29udGVudHMpKTsKIH0KIAotUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZUFkb3B0ZWQoY29uc3Qgdm9p
ZCogZGF0YSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK1JlZjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZm
ZXI6OmNyZWF0ZUFkb3B0ZWQoY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkK
IHsKICAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIGNvbnRlbnRzKGNvbnN0X2Nhc3Q8dm9pZCo+KGRh
dGEpLCBieXRlTGVuZ3RoKTsKICAgICByZXR1cm4gY3JlYXRlKGNvbnRlbnRzKTsKIH0KIAotUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQodW5z
aWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSkKK1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbnVtRWxl
bWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSkKIHsKICAgICByZXR1cm4gY3JlYXRlKG51
bUVsZW1lbnRzLCBlbGVtZW50Qnl0ZVNpemUsIEFycmF5QnVmZmVyQ29udGVudHM6OkRvbnRJbml0
aWFsaXplKTsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0
ZSh1bnNpZ25lZCBudW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXplLCBBcnJheUJ1
ZmZlckNvbnRlbnRzOjpJbml0aWFsaXphdGlvblBvbGljeSBwb2xpY3kpCitSZWZQdHI8QXJyYXlC
dWZmZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUodW5zaWduZWQgbnVtRWxlbWVudHMsIHVuc2lnbmVk
IGVsZW1lbnRCeXRlU2l6ZSwgQXJyYXlCdWZmZXJDb250ZW50czo6SW5pdGlhbGl6YXRpb25Qb2xp
Y3kgcG9saWN5KQogewogICAgIEFycmF5QnVmZmVyQ29udGVudHMgY29udGVudHM7CiAgICAgQXJy
YXlCdWZmZXJDb250ZW50czo6dHJ5QWxsb2NhdGUobnVtRWxlbWVudHMsIGVsZW1lbnRCeXRlU2l6
ZSwgcG9saWN5LCBjb250ZW50cyk7CiAgICAgaWYgKCFjb250ZW50cy5tX2RhdGEpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEFycmF5QnVmZmVyKGNvbnRlbnRzKSk7CiB9CiAKQEAgLTIyNiw3ICsyMjYsNyBAQCBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6c2xpY2UoaW50IGJlZ2luKSBjb25zdAog
ICAgIHJldHVybiBzbGljZUltcGwoY2xhbXBJbmRleChiZWdpbiksIGJ5dGVMZW5ndGgoKSk7CiB9
CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpzbGljZUltcGwodW5zaWdu
ZWQgYmVnaW4sIHVuc2lnbmVkIGVuZCkgY29uc3QKK1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlC
dWZmZXI6OnNsaWNlSW1wbCh1bnNpZ25lZCBiZWdpbiwgdW5zaWduZWQgZW5kKSBjb25zdAogewog
ICAgIHVuc2lnbmVkIHNpemUgPSBiZWdpbiA8PSBlbmQgPyBlbmQgLSBiZWdpbiA6IDA7CiAgICAg
cmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEo
KSkgKyBiZWdpbiwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRhVmlldy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmll
dy5jcHAKaW5kZXggMGM4M2Q2ZTk1YjBlMjRjNDllYTRmOTkwOTQ4ZjEyZTRhNGNhMDJiNy4uNzhl
NzQzZmMxNWY4MGJiZmY1MjZmOGU3NzM2OWUzYjAxNjQ3N2FkZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIERhdGFWaWV3
OjpEYXRhVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3Ojpj
cmVhdGUoCitSZWY8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVu
Z3RoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zm
c2V0LCBieXRlTGVuZ3RoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVZpZXcoYnVm
ZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+
IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2VkQnVmZmVyKQor
UmVmPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHBh
c3NlZEJ1ZmZlcikKIHsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHBhc3NlZEJ1
ZmZlcjsKICAgICByZXR1cm4gY3JlYXRlKGJ1ZmZlciwgMCwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKaW5kZXggNGE4YWE5MjU4
YWQxMTliNTc0OTIzYjg3ODc1NmVhODhhNDBiMDY4Yy4uYTAxZDEzNTA2NjlmM2M3NWVjYWE1N2Rj
YjI0NjQzYTcwY2VmMGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0YVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmll
dy5oCkBAIC0zNyw4ICszNyw4IEBAIHByb3RlY3RlZDoKICAgICBEYXRhVmlldyhQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7
CiAgICAgCiBwdWJsaWM6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4g
Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUmVmPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2ln
bmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIFJlZjxEYXRhVmll
dz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKICAgICAKICAgICB2aXJ0dWFsIHVu
c2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCmluZGV4IDVmOGIxYjI2
NWEwMTRhMjVhZjg1OGJlMTc5YTBkNWNhYWJjNDdmN2EuLjZlYmJiMGQ5OGJiM2I1MGZkNzlkN2U2
NzMxNjJhNTg4NzZmYTdkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlQ2FjaGUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogY2xhc3MgRGF0ZUluc3RhbmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVJbnN0YW5j
ZURhdGE+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlSW5zdGFuY2VEYXRh
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KKyAg
ICBzdGF0aWMgUmVmPERhdGVJbnN0YW5jZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KIAogICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVU
aW1lQ2FjaGVkRm9yTVM7CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUgbV9jYWNoZWRHcmVnb3JpYW5E
YXRlVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZVJlYWN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVJlYWN0aW9uLmNwcAppbmRleCAxYTk0YzcxOTVlMzVlZTcyZmVhNmYwZjk1OGU0OWQ1MWUzNjEw
ZGY1Li5mNTNjY2NiNWEzNjI5YmMwM2ExYWVjODIzOGY4ZDEwYTNjMmZjZDhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwCkBA
IC01OSw5ICs1OSw5IEBAIHByaXZhdGU6CiAgICAgU3Ryb25nPFVua25vd24+IG1fYXJndW1lbnQ7
CiB9OwogCi1QYXNzUmVmUHRyPE1pY3JvdGFzaz4gY3JlYXRlRXhlY3V0ZVByb21pc2VSZWFjdGlv
bk1pY3JvdGFzayhWTSYgdm0sIEpTUHJvbWlzZVJlYWN0aW9uKiByZWFjdGlvbiwgSlNWYWx1ZSBh
cmd1bWVudCkKK1JlZjxNaWNyb3Rhc2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNy
b3Rhc2soVk0mIHZtLCBKU1Byb21pc2VSZWFjdGlvbiogcmVhY3Rpb24sIEpTVmFsdWUgYXJndW1l
bnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWlj
cm90YXNrKHZtLCByZWFjdGlvbiwgYXJndW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKHZtLCByZWFjdGlvbiwgYXJndW1lbnQp
KTsKIH0KIAogdm9pZCBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrOjpydW4oRXhlY1N0
YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlUmVhY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVJlYWN0aW9uLmgKaW5kZXggMDliZTJkZmJhNDU4YzAxYWY0MTYyYTI4ZTkwNWJhNmQ1NGFmYzE3
OC4uNzY3MjhmNDVlMjFhNGM3ZGE4YzM5NDk0NTBhYWNmNDgwY2YyOWJiYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCkBAIC02MSw3
ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1faGFuZGxlcjsK
IH07CiAKLVBhc3NSZWZQdHI8TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9u
TWljcm90YXNrKFZNJiwgSlNQcm9taXNlUmVhY3Rpb24qLCBKU1ZhbHVlKTsKK1JlZjxNaWNyb3Rh
c2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mLCBKU1Byb21pc2VS
ZWFjdGlvbiosIEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKaW5kZXggOTFhZjNh
Mjc4ZTY1OWMwYzhhZWJmOGZlNmVjOTFmZTBkOTJhZWMxNy4uYzJmMTNkOGMzNzI5YWU1YWI3YmQz
OWRiNzRlMzQ1ODgzZTRjODY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFByb3BlcnR5
TmFtZUFycmF5RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb3BlcnR5TmFtZUFycmF5RGF0YT4g
ewogcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPElkZW50aWZpZXIsIDIwPiBQcm9wZXJ0eU5h
bWVWZWN0b3I7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9wZXJ0eU5hbWVBcnJheURhdGEpOyB9
CisgICAgc3RhdGljIFJlZjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUHJvcGVydHlOYW1lQXJyYXlEYXRhKTsgfQogCiAgICAgUHJvcGVydHlO
YW1lVmVjdG9yJiBwcm9wZXJ0eU5hbWVWZWN0b3IoKSB7IHJldHVybiBtX3Byb3BlcnR5TmFtZVZl
Y3RvcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBl
U2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgKaW5kZXggZDhm
NTFlYTYyODEzZmIwOGNlMmE2MjE0ZDkyMTZhZmJkMDk0MzhlZC4uZWIyOWU2YzVmMzM3YjMyM2Ex
MTNlZTA3YmUxZDc4OGNjMjZjNDdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZVNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVTZXQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVTaGFwZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFN0cnVjdHVyZVNoYXBlPiB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlU2hhcGUo
KTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZVNoYXBlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU3RydWN0dXJlU2hhcGUpOyB9CisgICAgc3RhdGljIFJlZjxTdHJ1
Y3R1cmVTaGFwZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJ1Y3R1cmVTaGFw
ZSk7IH0KICAgICBTdHJpbmcgcHJvcGVydHlIYXNoKCk7CiAgICAgdm9pZCBtYXJrQXNGaW5hbCgp
OwogICAgIHZvaWQgYWRkUHJvcGVydHkoVW5pcXVlZFN0cmluZ0ltcGwmKTsKQEAgLTgyLDcgKzgy
LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFR5cGVTZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxUeXBlU2V0
PiB7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlU2V0PiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgVHlwZVNldCk7IH0KKyAgICBzdGF0aWMgUmVmPFR5cGVTZXQ+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwZVNldCk7IH0KICAgICBUeXBlU2V0
KCk7CiAgICAgdm9pZCBhZGRUeXBlSW5mb3JtYXRpb24oUnVudGltZVR5cGUsIFBhc3NSZWZQdHI8
U3RydWN0dXJlU2hhcGU+LCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJh
c2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmgKaW5k
ZXggZDY0OGZjZDhjOTJhYTE4NGIxZDUyNGQ2OGQzNDZlYThjNTliM2RkOC4uZWUyNzQ2ZDc4ZDgz
NjAwZTdlMjFmZWI1YjZiZTE5ZmYwYTVlZDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlZEFycmF5QmFzZS5oCkBAIC0xMDgsMjYgKzEwOCwyNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgc3RhdGljIFJlZlB0
cjxTdWJjbGFzcz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWYoYnVmZmVyKTsKICAgICAgICAgaWYgKCF2ZXJpZnlTdWJSYW5nZTxUPihi
dWYsIGJ5dGVPZmZzZXQsIGxlbmd0aCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xh
c3MoYnVmLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBj
cmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0aWMgUmVmUHRyPFN1
YmNsYXNzPiBjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAg
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5p
dGlhbGl6ZWQobGVuZ3RoLCBzaXplb2YoVCkpOwogICAgICAgICBpZiAoIWJ1ZmZlci5nZXQoKSkK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiBjcmVhdGU8U3ViY2xhc3M+KGJ1ZmZlci5yZWxlYXNlKCksIDAsIGxlbmd0aCk7
CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIFBhc3NSZWZQdHI8
U3ViY2xhc3M+IHN1YmFycmF5SW1wbChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisgICAgUmVm
UHRyPFN1YmNsYXNzPiBzdWJhcnJheUltcGwoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogICAg
IHsKICAgICAgICAgdW5zaWduZWQgb2Zmc2V0LCBsZW5ndGg7CiAgICAgICAgIGNhbGN1bGF0ZU9m
ZnNldEFuZExlbmd0aChzdGFydCwgZW5kLCBtX2xlbmd0aCwgJm9mZnNldCwgJmxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYjg5ZDNlYjQwMzdhNzUzM2MzNWI2
NmJjYTI0YjI1MTM4N2I5MTEyNy4uNmE0Yjg0YzU0ZTMxZDY5NDdlZjk4ZGU0ODQ4ZWI3ODU2N2Y0
M2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzQwLDE3ICszNDAs
MTcgQEAgVk06On5WTSgpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxWTT4gVk06OmNyZWF0ZUNv
bnRleHRHcm91cChIZWFwVHlwZSBoZWFwVHlwZSkKK1JlZjxWTT4gVk06OmNyZWF0ZUNvbnRleHRH
cm91cChIZWFwVHlwZSBoZWFwVHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZNKEFQ
SUNvbnRleHRHcm91cCwgaGVhcFR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWTShB
UElDb250ZXh0R3JvdXAsIGhlYXBUeXBlKSk7CiB9CiAKLVBhc3NSZWZQdHI8Vk0+IFZNOjpjcmVh
dGUoSGVhcFR5cGUgaGVhcFR5cGUpCitSZWY8Vk0+IFZNOjpjcmVhdGUoSGVhcFR5cGUgaGVhcFR5
cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWTShEZWZhdWx0LCBoZWFwVHlwZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZNKERlZmF1bHQsIGhlYXBUeXBlKSk7CiB9CiAKLVBh
c3NSZWZQdHI8Vk0+IFZNOjpjcmVhdGVMZWFrZWQoSGVhcFR5cGUgaGVhcFR5cGUpCitSZWY8Vk0+
IFZNOjpjcmVhdGVMZWFrZWQoSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZShoZWFwVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA0NzgxNjFk
ZjY5Njk5ODc3YzM0NTcxM2ZiNjJhNGVhNGFiNTdmMzkxLi4xZDcyMmY5YWMwMzg3YTQxODdkODBm
MTJhZjQ1MjhjMzJlYWE1NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTIx
Myw5ICsyMTMsOSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wg
c2hhcmVkSW5zdGFuY2VFeGlzdHMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgVk0m
IHNoYXJlZEluc3RhbmNlKCk7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1Jl
ZlB0cjxWTT4gY3JlYXRlKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKLSAgICBKU19FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUGFzc1JlZlB0cjxWTT4gY3JlYXRlTGVha2VkKEhlYXBUeXBlID0gU21hbGxI
ZWFwKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWTT4gY3JlYXRlQ29udGV4dEdyb3VwKEhlYXBU
eXBlID0gU21hbGxIZWFwKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZNPiBj
cmVhdGUoSGVhcFR5cGUgPSBTbWFsbEhlYXApOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8Vk0+IGNyZWF0ZUxlYWtlZChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CisgICAgc3RhdGlj
IFJlZjxWTT4gY3JlYXRlQ29udGV4dEdyb3VwKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKICAgICBK
U19FWFBPUlRfUFJJVkFURSB+Vk0oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAppbmRleCBmNGFhZWM5OTgwNzIyNWRl
ZjMzNjY1ODEwNzI5MWIwMzVkZDI3MmExLi4wYzcwODk2NTQ2MjNlNWY2NjQ2OWE0YWRjNmRlYTFk
MGY0ZDkwZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFy
RXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVndWxhckV4
cHJlc3Npb24uY3BwCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
WWFyciB7CiAKIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOjpQcml2YXRlIDogcHVibGljIFJlZkNv
dW50ZWQ8UmVndWxhckV4cHJlc3Npb246OlByaXZhdGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQcml2YXRlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBUZXh0Q2Fz
ZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwgTXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2Rl
KQorICAgIHN0YXRpYyBSZWY8UHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0dGVybiwg
VGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11bHRpbGluZU1vZGUgbXVsdGls
aW5lTW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJpdmF0ZShwYXR0
ZXJuLCBjYXNlU2Vuc2l0aXZpdHksIG11bHRpbGluZU1vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUHJpdmF0ZShwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZpdHksIG11bHRpbGluZU1v
ZGUpKTsKICAgICB9CiAKICAgICBpbnQgbGFzdE1hdGNoTGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYmMwMmIxNTQxNjI3NGY1
ZTU1MjQ5OTNiN2Q0YmQxZTVlNDIwNjY3ZS4uOGRjZTQ0MmE0MmZhYzlkMjIxMmNmMjBkOTdlMGUw
ZTA4NTY3NDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgVk0mIEpTRE9NV2luZG93QmFzZTo6Y29tbW9u
Vk0oKQogICAgIHN0YXRpYyBWTSogdm0gPSBudWxscHRyOwogICAgIGlmICghdm0pIHsKICAgICAg
ICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgICAgICB2bSA9
IFZNOjpjcmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CisgICAgICAgIHZtID0gJlZN
OjpjcmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICAgICAgdm0tPnNldEV4Y2x1c2l2ZVRocmVhZChzdGQ6OnRoaXNfdGhyZWFkOjpnZXRfaWQo
KSk7CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254478</attachid>
            <date>2015-06-08 00:54:39 -0700</date>
            <delta_ts>2015-06-08 09:04:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145750-20150608165418.patch</filename>
            <type>text/plain</type>
            <size>49769</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGQ1MjMyY2U1NmIwZTYwN2RjYjc1ZjZkZjdjYzk5M2E2YmQ1MjQzLi42ZmZjZjc3MmYzYzhiMGQ5
MmYwOTlhMTc3YzUxNzM0MTZhYWQ2NDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMTUtMDYtMDcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQ
SS9KU0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAg
ICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUp
OgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KToKKyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGlj
UHJvcGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
OjpjcmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6
R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNj
cmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZN
YW5hZ2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5
UGF0dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpj
cmVhdGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6OkRh
dGFWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5j
ZURhdGE6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OmNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2spOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5RGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlU2hhcGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAoSlNDOjpUeXBl
ZEFycmF5QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQpOgorICAgICAgICAoSlNDOjpUeXBlZEFycmF5QmFzZTo6c3ViYXJyYXlJ
bXBsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0
ZUNvbnRleHRHcm91cCk6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpWTTo6Y3JlYXRlTGVha2VkKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICog
eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ3VsYXJF
eHByZXNzaW9uOjpQcml2YXRlOjpjcmVhdGUpOgorCiAyMDE1LTA2LTA2ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXR1cm5lZCBFeGNlcHRpb24qIHZhbHVlcyBu
ZWVkIHRvIGJlIGluaXRpYWxpemVkIHRvIG51bGxwdHIgd2hlbiBubyBleGNlcHRpb25zIGFyZSB0
aHJvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDg2MDFmY2U5NjkxMzEyZjBiZGRjOTg0ZmVmZDQ2MDM3ZDM5
YjNkNC4uZTg4MWY0OGZjMWYxMjQxNTlkYzY2YmUwMjk1NGM4Mzc0MDQxYjU2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5r
aW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNzUmVmUHRyIGluIEphdmFTY3JpcHRD
b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU3
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBh
IHN0ZXAgdG8gcHVyZ2UgUGFzc1JlZlB0ciwgdGhpcyBwYXRjaCByZXBsYWNlcyBQYXNzUmVmUHRy
IHdpdGggUmVmIG9yIFJlZlB0ci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjb21tb25WTSk6CisKIDIwMTUtMDYt
MDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoVHJh
Y2VyOiBbVVNFUl0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50IGF0IGNv
bS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBv
bGljeSBjb25zdCArIDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2xhc3NSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApp
bmRleCBlMzU0N2QyZjVkM2NkMDQyM2NiYjQ1YTJmMTM4Yzc0NzRlYWRiYjllLi5hOGU3Y2I3ZDQ1
NWQyZDAxYjk0OTI2ZjIzOGExY2UwYjNhMTEyOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDbGFzc1JlZi5jcHAKQEAgLTEwOCw5ICsxMDgsOSBAQCBPcGFxdWVKU0NsYXNzOjp+T3Bh
cXVlSlNDbGFzcygpCiAgICAgICAgIEpTQ2xhc3NSZWxlYXNlKHByb3RvdHlwZUNsYXNzKTsKIH0K
IAotUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1dG9t
YXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbikKK1JlZjxP
cGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShj
b25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwogfQogCiBQYXNzUmVmUHRyPE9w
YXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlv
biogY2xpZW50RGVmaW5pdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDbGFzc1JlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgK
aW5kZXggZDI5OGExNjE5Yzk2NmNkZWFhYzYwOTlmZDkyNDk4MjViMzdkNWMwZS4uNjg3ZDhiOWI5
NGQ5MTgzYjhhNjk5MzA5MzAyZTdiZGZkNzU0NzZlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NsYXNzUmVmLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiBzdHJ1Y3QgT3BhcXVl
SlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVKU0NsYXNzPiB7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNvbnN0IEpTQ2xhc3NE
ZWZpbml0aW9uKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRl
Tm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsKKyAgICBzdGF0
aWMgUmVmPE9wYXF1ZUpTQ2xhc3M+IGNyZWF0ZU5vQXV0b21hdGljUHJvdG90eXBlKGNvbnN0IEpT
Q2xhc3NEZWZpbml0aW9uKik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfk9wYXF1ZUpTQ2xhc3Mo
KTsKICAgICAKICAgICBTdHJpbmcgY2xhc3NOYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggNTg4OTkxODc5NDlmZGVlODljZmM0ZjdiMmZhYmRi
MjNhZTNjODk5OC4uNDk3NmMyOWFlZWVmOTEzOTNiYjBhODcyOWU1MDA2NDcyNjRjMWY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApAQCAtNzYsNyArNzYs
NyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0M6OmphdmFTY3JpcHRDb3JlQVBJ
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRH
cm91cENyZWF0ZSgpCiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIHJldHVybiB0
b1JlZihWTTo6Y3JlYXRlQ29udGV4dEdyb3VwKCkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9S
ZWYoJlZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKS5sZWFrUmVmKCkpOwogfQogCiBKU0NvbnRleHRH
cm91cFJlZiBKU0NvbnRleHRHcm91cFJldGFpbihKU0NvbnRleHRHcm91cFJlZiBncm91cCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKaW5kZXggOTlkN2YzMWU3ODNm
MjZiYWMxYjdkYWEwNjM0MmY4MjRlZDY2ZTVkNi4uNDc0N2Q5N2Y2Mjc1NWY1YTUwMTEwZGRjMzEx
MzE2NTg2NjEzNDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Nj
cmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5j
cHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogc3RydWN0IE9wYXF1
ZUpTU2NyaXB0IDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
V1RGOjpQYXNzUmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUoVk0qIHZtLCBjb25zdCBTdHJp
bmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCisg
ICAgc3RhdGljIFdURjo6UmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUoVk0qIHZtLCBjb25z
dCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZihuZXcgT3BhcXVlSlNTY3Jp
cHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJu
IFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgdXJsLCBzdGFydGluZ0xpbmVO
dW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1N0cmluZ1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVm
LmNwcAppbmRleCAzYjc1ZjNkZmE5ZjcxYzJkODM2MDU4YTBhZGJkYzg0YTZjZDJkMGY1Li5jOWIz
ODBjZTY1NDE1OWQzY2QxMWViZTI1OTA0NmJjNjkxZWQwZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV1RGOjpVbmljb2RlOwogSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMpCiB7CiAgICAgaW5pdGlhbGl6
ZVRocmVhZGluZygpOwotICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNoYXJzLCBu
dW1DaGFycykubGVha1JlZigpOworICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShj
aGFycywgbnVtQ2hhcnMpLmxlYWtSZWYoKTsKIH0KIAogSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQpAQCAtNTEsMTIgKzUxLDEyIEBA
IEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNvbnN0IGNoYXIqIHN0
cmluZykKICAgICAgICAgY29uc3QgTENoYXIqIHN0cmluZ1N0YXJ0ID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KHN0cmluZyk7CiAgICAgICAgIGlmIChjb252ZXJzaW9uT0sgPT0gY29u
dmVydFVURjhUb1VURjE2KCZzdHJpbmcsIHN0cmluZyArIGxlbmd0aCwgJnAsIHAgKyBsZW5ndGgs
ICZzb3VyY2VJc0FsbEFTQ0lJKSkgewogICAgICAgICAgICAgaWYgKHNvdXJjZUlzQWxsQVNDSUkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoc3RyaW5nU3Rh
cnQsIGxlbmd0aCkubGVha1JlZigpOwotICAgICAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5n
OjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRhKCkpLmxlYWtSZWYoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoc3RyaW5nU3RhcnQs
IGxlbmd0aCkubGVha1JlZigpOworICAgICAgICAgICAgcmV0dXJuICZPcGFxdWVKU1N0cmluZzo6
Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgpKS5sZWFrUmVmKCk7CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZSgpLmxlYWtS
ZWYoKTsKKyAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKS5sZWFrUmVmKCk7CiB9
CiAKIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoY29uc3Qg
SlNDaGFyKiBjaGFycywgc2l6ZV90IG51bUNoYXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL09wYXF1ZUpTU3RyaW5nLmNwcAppbmRleCA3ZjllZGI0MTM2ZTI3NDk5NzQ3ZDI5NmQyZjFh
MmRjNDg5YjA0NDNkLi4wN2E3OWFkOTllNmRjN2YzMWM1ZjhmYmFhOTI0MWVmMTJmZWEyNGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcApAQCAtMzQs
NyArMzQsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1QYXNzUmVmUHRyPE9wYXF1ZUpT
U3RyaW5nPiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVm
UHRyPE9wYXF1ZUpTU3RyaW5nPiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewogICAgIGlmIChzdHJpbmcuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmlu
Zy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oCmluZGV4IDAz
YWU1Nzc5MDRjY2FiNTdmYjQwN2ZjNTUxNGRjODM5MzFmNjkwYTQuLjIwODEzMWIzYjQxNThlN2M2
ZmNmZGU5MWU0NmMzNTc3ODk3YWRjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09w
YXF1ZUpTU3RyaW5nLmgKQEAgLTM2LDIyICszNiwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKIH0KIAog
c3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1
ZUpTU3RyaW5nPiB7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0
ZSgpCisgICAgc3RhdGljIFJlZjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BhcXVlSlNTdHJpbmcpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1N0cmluZyk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5z
aWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25z
dCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVu
Z3RoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNy
ZWF0ZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHN0YXRp
YyBSZWY8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5z
aWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVK
U1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQogCi0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShj
b25zdCBTdHJpbmcmKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPE9wYXF1
ZUpTU3RyaW5nPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB+T3BhcXVlSlNTdHJpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9TdGF0aWNQcm9wZXJ0eUFuYWx5c2lzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaAppbmRleCAyOTNjMjI0
MTRhNjIxMGJlMWZmN2U3YjFlMjhmYTRmMzUyMjQwMDAwLi41YTk5MThkZDE1ODBhY2Y3OTE5M2Jm
MWM0NzI5YWJiMjRhZTY5M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vIFJlZmVyZW5jZSBjb3VudCBpbmRpY2F0ZXMgbnVtYmVy
IG9mIGxpdmUgcmVnaXN0ZXJzIHRoYXQgYWxpYXMgdGhpcyBvYmplY3QuCiBjbGFzcyBTdGF0aWNQ
cm9wZXJ0eUFuYWx5c2lzIDogcHVibGljIFJlZkNvdW50ZWQ8U3RhdGljUHJvcGVydHlBbmFseXNp
cz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0YXRpY1Byb3BlcnR5QW5hbHlz
aXM+IGNyZWF0ZShWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9yT3Zl
cmZsb3c+KiBpbnN0cnVjdGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKKyAgICBzdGF0aWMgUmVmPFN0
YXRpY1Byb3BlcnR5QW5hbHlzaXM+IGNyZWF0ZShWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwg
MCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+KiBpbnN0cnVjdGlvbnMsIHVuc2lnbmVkIHRhcmdldCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RhdGljUHJvcGVydHlBbmFseXNp
cyhpbnN0cnVjdGlvbnMsIHRhcmdldCkpOyAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3RhdGljUHJvcGVydHlBbmFseXNpcyhpbnN0cnVjdGlvbnMsIHRhcmdldCkpOyAKICAgICB9CiAK
ICAgICB2b2lkIGFkZFByb3BlcnR5SW5kZXgodW5zaWduZWQgcHJvcGVydHlJbmRleCkgeyBtX3By
b3BlcnR5SW5kZXhlcy5hZGQocHJvcGVydHlJbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmgKaW5kZXggNWM3ZDc1YWRjOTQ4
YjI2NTEyMjkwODM3MTU3NWFjMmM1N2JkN2Q2NC4uZGY2MWM2YWEzOTM1NTQ3YWM3ODUxNzNkZWUx
MDdiNTBjM2E0MGY2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQ2FsbEZyYW1lLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgRGVidWdnZXJDYWxs
RnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxEZWJ1Z2dlckNhbGxGcmFtZT4gewogcHVibGljOgog
ICAgIGVudW0gVHlwZSB7IFByb2dyYW1UeXBlLCBGdW5jdGlvblR5cGUgfTsKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBjcmVhdGUoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCisgICAgc3RhdGljIFJlZjxEZWJ1Z2dlckNhbGxGcmFtZT4gY3JlYXRlKENhbGxGcmFtZSog
Y2FsbEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWJ1Z2dlckNh
bGxGcmFtZShjYWxsRnJhbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVidWdn
ZXJDYWxsRnJhbWUoY2FsbEZyYW1lKSk7CiAgICAgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
ZXhwbGljaXQgRGVidWdnZXJDYWxsRnJhbWUoQ2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2suY3BwCmluZGV4IGQwMTYyYjc5ZTVmNDYxYTU4OGE5YjJjZmQ0ZjBkMDI2ZjFm
NjViMGYuLmRkODEwOGE3NjA5OWY4YTY3ZmQzZmI3ZGRlMzMxMWY3NTk1OTk3MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCkBAIC00MywxMCArNDMsOSBAQCBUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
CiAKIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2soKSB7IH0KIAotUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaz4gVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKLSAg
ICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKQorUmVmPFRvRlRMRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrPiBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3Jl
YXRlKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2sp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjayhkZmdDb2RlQmxvY2spKTsKIH0KIAogdm9pZCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IGYxYWM0YTY4ZmM2NDk3MzBhNjViNmRhYzA4ZWQ2
OTU4MWJkMzk5MmYuLjNlMGVhMDJkMGZhMjIzNjRiOGM2OTBmYjE3MTUxNTc5ZjExNGYxN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRM
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKQEAgLTQ1LDggKzQ1LDcgQEAgcHJvdGVjdGVk
OgogcHVibGljOgogICAgIHZpcnR1YWwgflRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjaz4gY3JlYXRlKAotICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2Nr
KTsKKyAgICBzdGF0aWMgUmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVh
dGUoUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jayk7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIGNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sq
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBD
b21waWxhdGlvblJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmNwcAppbmRleCA0N2M0ZmJiZWM1MWVlZjk2Mjg1MjUyYjQ0ODAwYjA2OWMz
ZWM0ZGNhLi43MGNjODI1MDIyNjJlMTczYzMwM2Y2NDg3MTg1ZDAzZmRkMWY1ZjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTQ1
LDExICs0NSwxMCBAQCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
Ojp+VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpbwogewogfQogCi1QYXNzUmVmUHRy
PFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+Ci1Ub0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoCitSZWY8VG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+
IGRmZ0NvZGVCbG9jaykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ayhkZmdDb2RlQmxvY2spKTsKIH0KIAogdm9pZCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrOjpjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHko
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4
IGM1M2RmOTFmNzY5ZDdmODAyNmE1YjRhYmNmNjc3ZWMxOTZjZjg0ZTQuLmM5ZGNmNmQ3YzAxZmMx
ZTQ4NTYwMDliOGZkNzMyMWMwODllM2U0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCkBAIC00NSw4ICs0NSw3IEBAIHByb3RlY3RlZDoKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJs
b2NrPiBkZmdDb2RlQmxvY2spOworICAgIHN0YXRpYyBSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdD
b2RlQmxvY2spOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJl
YWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKik7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0
aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCA0YWExNDI4YTZjZGQ2ZGEwODU3
ZmYzNTU1YzI3ZjVkMWQ0MzI2M2ExLi40YThmNTcyMjQ4ZDBjYmI2ZDg4ZTIxZjRlYmE2YWJmNGRm
NGQxNjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAt
NjgsOSArNjgsOSBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1i
ZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgIH0KIH0KIAotUGFzc1JlZlB0
cjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWdu
ZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlzdD4g
V29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZU
aHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKLSAgICBSZWZQdHI8V29ya2xpc3Q+IHJl
c3VsdCA9IGFkb3B0UmVmKG5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29y
a2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1lKSk7CiAg
ICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3Jp
dHkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAgV29ya2xpc3Qq
IGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
aW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5p
dGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZH
V29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1i
ZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21w
aWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9
ICZXb3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0Nv
bXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVh
ZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlz
dDsKIH0KQEAgLTQyMiw3ICs0MjIsNyBAQCBXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xp
c3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xp
c3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RP
bmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0Ojpj
cmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRz
KCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVm
KCk7CisgICAgICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZU
TCBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlv
bnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAg
fSk7CiAgICAgcmV0dXJuIHRoZUdsb2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oCmluZGV4IGY2MWFlNGFlYjhjNzRjZTU5ZTk5MGRjYzZhMTQy
OThlMDZjOWNhOTcuLmJkNmU2ZmE3NWY2MjQwZTI3ZDMwZTYzMzI5NmQxYTU2NTI1MGZkMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogCiAgICAgfldvcmtsaXN0KCk7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V29ya2xpc3Q+IGNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZU
aHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xp
c3Q+IGNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNz
UmVmUHRyPFBsYW4+KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCAyOGNmZGRiNzdlYjgzOTM1ODNiMmM4Yjdl
ZmI4NWUxZDI2MjljNWY2Li5lMGZmNzg4NDU0NmJkYjg2ZGJjYTYxYTliNGQ4MWM1ZWYzY2VhOGVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJh
Y2suaCIKIAorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NB
Y3Rpdml0eUNhbGxiYWNrIHsKQEAgLTQ5LDcgKzUxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKIAotaW5saW5lIFBhc3NSZWZQdHI8
R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1lcihI
ZWFwKiBoZWFwKQoraW5saW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlD
YWxsYmFjazo6Y3JlYXRlRWRlblRpbWVyKEhlYXAqIGhlYXApCiB7CiAgICAgcmV0dXJuIHNfc2hv
dWxkQ3JlYXRlR0NUaW1lciA/IGFkb3B0UmVmKG5ldyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKGhl
YXApKSA6IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggODhjZWJkOWQ5NTk2NzM3MDNlNThmZGE2NzZi
ZmE2ZDgzM2VmOWNjZi4uM2IxYjQ1MDA1YzU1YjA2NmM3YjkxZDZjNGU2NGQ3NzBkNTRkMDk4MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxs
YmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2Fs
bGJhY2suaApAQCAtNDksNyArNDksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBkb3VibGUg
ZGVhdGhSYXRlKCkgb3ZlcnJpZGU7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5
Q2FsbGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlRnVsbFRpbWVyKEhlYXAqIGhlYXAp
CitpbmxpbmUgUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NBY3Rpdml0eUNhbGxiYWNrOjpj
cmVhdGVGdWxsVGltZXIoSGVhcCogaGVhcCkKIHsKICAgICByZXR1cm4gc19zaG91bGRDcmVhdGVH
Q1RpbWVyID8gYWRvcHRSZWYobmV3IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpIDogbnVs
bHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZp
dHlDYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxi
YWNrLmgKaW5kZXggZjMwYzI3NzBlNjQ3ZjFlYzc0ZTY3NTVmZDk3YWFiMGRjZWYzM2VkOS4uM2Qw
N2VmYWEyZTE2Mzg3NWIwMmEzMmRjMDdiODA5Y2RlY2YyOWFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTMwLDcgKzMwLDcgQEAK
ICNkZWZpbmUgR0NBY3Rpdml0eUNhbGxiYWNrX2gKIAogI2luY2x1ZGUgIkhlYXBUaW1lci5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAj
aWYgVVNFKENGKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBA
IC00Myw4ICs0Myw4IEBAIGNsYXNzIEhlYXA7CiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBHQ0Fj
dGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgSGVhcFRpbWVyLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8R0NBY3Rpdml0eUNhbGxiYWNrPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBjcmVh
dGVGdWxsVGltZXIoSGVhcCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxs
YmFjaz4gY3JlYXRlRWRlblRpbWVyKEhlYXAqKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdDQWN0aXZp
dHlDYWxsYmFjaz4gY3JlYXRlRnVsbFRpbWVyKEhlYXAqKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdD
QWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRWRlblRpbWVyKEhlYXAqKTsKIAogICAgIEdDQWN0aXZp
dHlDYWxsYmFjayhIZWFwKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IGFmMWUwY2IxNTEwMzc1YWIzNDQwNmM0
YzU5NDg2MDZhNjNjNzMyY2IuLmFlNTMwYTIwMjcyMGIyMTg1OTlmOGM5NjUxMDA4ZTc4YTc2NDQx
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAog
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHRIb3N0IDogcHVibGljIFJlZkNv
dW50ZWQ8SW5qZWN0ZWRTY3JpcHRIb3N0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5qZWN0ZWRTY3JpcHRIb3N0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSW5q
ZWN0ZWRTY3JpcHRIb3N0KTsgfQorICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRTY3JpcHRIb3N0PiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkU2NyaXB0SG9zdCk7IH0KICAg
ICB2aXJ0dWFsIH5JbmplY3RlZFNjcmlwdEhvc3QoKTsKIAogICAgIHZpcnR1YWwgSlNDOjpKU1Zh
bHVlIHN1YnR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpIHsgcmV0dXJuIEpTQzo6
anNVbmRlZmluZWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRleCBiMzQ0YzMzZmJkZWUyNDhkYWU3YzlmY2E5
MTJlNDIwNzFkN2U1MzJmLi41Y2ZiYjIzYmExYTFlOTNhM2VhMDJhNDI4MjI5NjhiNWJmNDVlNjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3Jp
cHRDYWxsRnJhbWUuaApAQCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAog
Y2xhc3MgSmF2YVNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEphdmFTY3JpcHRD
YWxsRnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2Fs
bEZyYW1lPiBjcmVhdGUoUGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBkZWJ1Z2dl
ckNhbGxGcmFtZSkKKyAgICBzdGF0aWMgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShQ
YXNzUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2FsbEZyYW1lKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVn
Z2VyQ2FsbEZyYW1lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEphdmFTY3JpcHRD
YWxsRnJhbWUoZGVidWdnZXJDYWxsRnJhbWUpKTsKICAgICB9CiAKICAgICBKYXZhU2NyaXB0Q2Fs
bEZyYW1lKiBjYWxsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvU2NyaXB0QXJndW1lbnRzLmNwcAppbmRleCA0MTAwYTNmOTk1ZTkzMzY2NGE5MzcxMGMzMGU4
YzIxNGEwYjNiOGViLi41MWQxZmU2NThkNTZhOTVhYWQ1YmRiYTQzMzlmYzJjOTJhYWVhM2M0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVu
dHMuY3BwCkBAIC0zNyw5ICszNyw5IEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1QYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gU2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqIHNjcmlwdFN0YXRlLCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1
bWVudHMpCitSZWY8U2NyaXB0QXJndW1lbnRzPiBTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZShKU0M6
OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4m
IGFyZ3VtZW50cykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmlwdEFyZ3VtZW50cyhz
Y3JpcHRTdGF0ZSwgYXJndW1lbnRzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2NyaXB0
QXJndW1lbnRzKHNjcmlwdFN0YXRlLCBhcmd1bWVudHMpKTsKIH0KIAogU2NyaXB0QXJndW1lbnRz
OjpTY3JpcHRBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSwgVmVjdG9yPERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKaW5kZXggNTMzN2UwMTllMDljMzk1MTc4
MDNiODRkNzc5ZmRiZmEzMjEyYTc5MC4uNzIwMGFiNDhhZDY1NDNkZGE3MjcxNjg5MjI5YTM1ODNj
ZDQwZDkwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3Jp
cHRBcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dEFyZ3VtZW50cy5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBTY3JpcHRBcmd1bWVudHMgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTY3JpcHRBcmd1bWVudHM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIFZlY3RvcjxEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZT4mIGFyZ3VtZW50cyk7CisgICAgc3RhdGljIFJlZjxTY3JpcHRBcmd1bWVudHM+
IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4m
IGFyZ3VtZW50cyk7CiAgICAgflNjcmlwdEFyZ3VtZW50cygpOwogCiAgICAgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmIGFyZ3VtZW50QXQoc2l6ZV90KSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAppbmRleCA4NDk0OTJiMzRkODVkYTg2YzY5
NTM4NzUzNDlmMDY2NTI2ZTYyNGExLi5iMjExM2E2NWYxZjgzYTZkNzhlOTZhOTFhNzVkNGQxMzQ2
NThkZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0
aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCkBA
IC02MCwxMCArNjAsMTAgQEAgcHVibGljOgogICAgIAogICAgIC8vIFVzZSB0aGlzIGlmIHlvdSB3
YW50IHRvIHBhc3MgYSBDb2RlUHRyIHRvIHNvbWVvbmUgd2hvIGluc2lzdHMgb24gdGFraW5nCiAg
ICAgLy8gYSBSZWZQdHI8SklUU3R1YlJvdXRpbmU+LgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJ
VFN0dWJSb3V0aW5lPiBjcmVhdGVTZWxmTWFuYWdlZFJvdXRpbmUoCisgICAgc3RhdGljIFJlZjxK
SVRTdHViUm91dGluZT4gY3JlYXRlU2VsZk1hbmFnZWRSb3V0aW5lKAogICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgcmF3Q29kZVBvaW50ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2Vs
Zk1hbmFnZWRDb2RlUmVmKHJhd0NvZGVQb2ludGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBKSVRTdHViUm91dGluZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZN
YW5hZ2VkQ29kZVJlZihyYXdDb2RlUG9pbnRlcikpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVh
bCB+SklUU3R1YlJvdXRpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKaW5k
ZXggNDc4NjMxMmRlZjA5YjA0ZjAzYTQ1NmJiNmFlZTk2Yzc4YjZkMmEyYS4uZjdmMGFiOWJjNjE5
YTE4OTAwNTQyODQ4MWExOGQzZTEwM2YyNzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5jcHAKQEAgLTM3LDkgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiBKSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2soKSB7IH0KIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+SklUVG9ERkdE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSB7IH0KIAotUGFzc1JlZlB0cjxKSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2s6OmNyZWF0ZSgpCitSZWY8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+
IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2soKSk7CiB9CiAKIHZvaWQgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OmNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseSgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2suaAppbmRleCA1YTFjN2ZmMWM1MjQ0OGQ0ZGM5MmQyNWQyMmQ0YjcwOWExMTI0
ZTIxLi5mNjRiOTc5Y2VjY2NkNDM5MzJmMzJmZDg4ZDViNDZiMjY0YjU4MTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5oCkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOwog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2s+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s+IGNyZWF0ZSgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRp
ZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25S
ZXN1bHQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA4NzcwYWFiZWIzMWI4MmRi
ZTQxNzQ0YjZhOWIyMWEyZWUzM2NiYTAwLi4xNzVmMjg3MTNmNTcyYjVhYzFmMGRmMWZmMTQzZWQ1
NWViYTQ1NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMTUwNCw3ICsxNTA0LDcgQEAgaW50
IGpzY21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIC8vIE5vdGUgdGhhdCB0aGUgb3B0
aW9ucyBwYXJzaW5nIGNhbiBhZmZlY3QgVk0gY3JlYXRpb24sIGFuZCB0aHVzCiAgICAgLy8gY29t
ZXMgZmlyc3QuCiAgICAgQ29tbWFuZExpbmUgb3B0aW9ucyhhcmdjLCBhcmd2KTsKLSAgICBWTSog
dm0gPSBWTTo6Y3JlYXRlKExhcmdlSGVhcCkubGVha1JlZigpOworICAgIFZNKiB2bSA9ICZWTTo6
Y3JlYXRlKExhcmdlSGVhcCkubGVha1JlZigpOwogICAgIGludCByZXN1bHQ7CiAgICAgewogICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggZmVmMGY3MjM3ZjRhYTYzMTZkY2FhNDZi
MzFjZmM4MTUzZGU0YjMyZi4uN2UyNmVjM2M4ZTQ1NWU4OWRiMWQyMGFlNjgyYTEyMDgyN2ZjZTc5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKQEAgLTk0Myw5ICs5NDMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogICAg
IAotICAgIGlubGluZSBQYXNzUmVmUHRyPEFycmF5UGF0dGVybk5vZGU+IEFycmF5UGF0dGVybk5v
ZGU6OmNyZWF0ZSgpCisgICAgaW5saW5lIFJlZjxBcnJheVBhdHRlcm5Ob2RlPiBBcnJheVBhdHRl
cm5Ob2RlOjpjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcnJh
eVBhdHRlcm5Ob2RlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXJyYXlQYXR0ZXJu
Tm9kZSk7CiAgICAgfQogICAgIAogICAgIGlubGluZSBPYmplY3RQYXR0ZXJuTm9kZTo6T2JqZWN0
UGF0dGVybk5vZGUoKQpAQCAtOTUzLDE0ICs5NTMsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ewogICAgIH0KICAgICAKLSAgICBpbmxpbmUgUGFzc1JlZlB0cjxPYmplY3RQYXR0ZXJuTm9kZT4g
T2JqZWN0UGF0dGVybk5vZGU6OmNyZWF0ZSgpCisgICAgaW5saW5lIFJlZjxPYmplY3RQYXR0ZXJu
Tm9kZT4gT2JqZWN0UGF0dGVybk5vZGU6OmNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE9iamVjdFBhdHRlcm5Ob2RlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgT2JqZWN0UGF0dGVybk5vZGUpOwogICAgIH0KIAotICAgIGlubGluZSBQYXNzUmVmUHRy
PEJpbmRpbmdOb2RlPiBCaW5kaW5nTm9kZTo6Y3JlYXRlKGNvbnN0IElkZW50aWZpZXImIGJvdW5k
UHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGVuZCkKKyAgICBpbmxpbmUgUmVmPEJpbmRpbmdOb2RlPiBCaW5kaW5nTm9kZTo6Y3JlYXRl
KGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBz
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQmluZGluZ05vZGUoYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCaW5kaW5nTm9kZShib3VuZFByb3BlcnR5LCBzdGFy
dCwgZW5kKSk7CiAgICAgfQogICAgIAogICAgIGlubGluZSBCaW5kaW5nTm9kZTo6QmluZGluZ05v
ZGUoY29uc3QgSWRlbnRpZmllciYgYm91bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmNwcAppbmRleCBmZjlhYTQ0YWQxNDc4YWI3MDkxZGFiNDgxNjU0MDI0ZDExZmEw
NTNhLi4wN2UwZDM3ZmRmY2MxOTE2Zjk3NTQzYTI4MTFkNDQ3MTYxOTZhMmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIEV2YWxOb2Rl
OjpFdmFsTm9kZShQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgc3RhcnRMb2NhdGlvCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvbkJvZHlOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVBhc3NSZWZQdHI8
RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZShQYXJhbWV0ZXJO
b2RlKiBmaXJzdFBhcmFtZXRlcikKK1JlZjxGdW5jdGlvblBhcmFtZXRlcnM+IEZ1bmN0aW9uUGFy
YW1ldGVyczo6Y3JlYXRlKFBhcmFtZXRlck5vZGUqIGZpcnN0UGFyYW1ldGVyKQogewogICAgIHVu
c2lnbmVkIHBhcmFtZXRlckNvdW50ID0gMDsKICAgICBmb3IgKFBhcmFtZXRlck5vZGUqIHBhcmFt
ZXRlciA9IGZpcnN0UGFyYW1ldGVyOyBwYXJhbWV0ZXI7IHBhcmFtZXRlciA9IHBhcmFtZXRlci0+
bmV4dFBhcmFtKCkpCkBAIC0xNDcsNyArMTQ3LDcgQEAgUGFzc1JlZlB0cjxGdW5jdGlvblBhcmFt
ZXRlcnM+IEZ1bmN0aW9uUGFyYW1ldGVyczo6Y3JlYXRlKFBhcmFtZXRlck5vZGUqIGZpcnN0UGEK
IAogICAgIHNpemVfdCBvYmplY3RTaXplID0gc2l6ZW9mKEZ1bmN0aW9uUGFyYW1ldGVycykgLSBz
aXplb2Yodm9pZCopICsgc2l6ZW9mKERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUqKSAqIHBhcmFt
ZXRlckNvdW50OwogICAgIHZvaWQqIHNsb3QgPSBmYXN0TWFsbG9jKG9iamVjdFNpemUpOwotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgKHNsb3QpIEZ1bmN0aW9uUGFyYW1ldGVycyhmaXJzdFBhcmFt
ZXRlciwgcGFyYW1ldGVyQ291bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoc2xvdCkg
RnVuY3Rpb25QYXJhbWV0ZXJzKGZpcnN0UGFyYW1ldGVyLCBwYXJhbWV0ZXJDb3VudCkpOwogfQog
CiBGdW5jdGlvblBhcmFtZXRlcnM6OkZ1bmN0aW9uUGFyYW1ldGVycyhQYXJhbWV0ZXJOb2RlKiBm
aXJzdFBhcmFtZXRlciwgdW5zaWduZWQgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuaAppbmRleCA5MmYxYTIxZWI5ZjY2YzI5NzczOWI4NWU4YTU4YTFiZjkwZjUxM2IxLi43YjAw
YzdmZTEzNzZiNzY4OTM2OGVmZTYzZTRjMDEwZmM2NDQ0ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEZ1bmN0aW9uUGFyYW1ldGVycyk7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IGNyZWF0ZShQYXJhbWV0ZXJOb2RlKik7CisgICAg
ICAgIHN0YXRpYyBSZWY8RnVuY3Rpb25QYXJhbWV0ZXJzPiBjcmVhdGUoUGFyYW1ldGVyTm9kZSop
OwogICAgICAgICB+RnVuY3Rpb25QYXJhbWV0ZXJzKCk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQpAQCAtMTc4Miw3ICsxNzgyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBjbGFzcyBBcnJheVBhdHRlcm5Ob2RlIDogcHVibGljIERlY29uc3Ry
dWN0aW9uUGF0dGVybk5vZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8QXJyYXlQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CisgICAgICAgIHN0YXRpYyBSZWY8QXJyYXlQ
YXR0ZXJuTm9kZT4gY3JlYXRlKCk7CiAgICAgICAgIHZvaWQgYXBwZW5kSW5kZXgoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSogbm9kZSkKICAgICAgICAg
ewogICAgICAgICAgICAgbV90YXJnZXRQYXR0ZXJucy5hcHBlbmQobm9kZSk7CkBAIC0xODAwLDcg
KzE4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAKICAgICBjbGFzcyBPYmplY3RQYXR0ZXJu
Tm9kZSA6IHB1YmxpYyBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iamVjdFBhdHRlcm5Ob2RlPiBjcmVhdGUoKTsKKyAg
ICAgICAgc3RhdGljIFJlZjxPYmplY3RQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CiAgICAgICAgIHZv
aWQgYXBwZW5kRW50cnkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYg
aWRlbnRpZmllciwgYm9vbCB3YXNTdHJpbmcsIERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUqIHBh
dHRlcm4pCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fdGFyZ2V0UGF0dGVybnMuYXBwZW5kKEVu
dHJ5KGlkZW50aWZpZXIsIHdhc1N0cmluZywgcGF0dGVybikpOwpAQCAtMTgyNyw3ICsxODI3LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBCaW5kaW5nTm9kZSA6IHB1YmxpYyBEZWNv
bnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEJpbmRpbmdOb2RlPiBjcmVhdGUoY29uc3QgSWRlbnRpZmllciYgYm91bmRQcm9wZXJ0
eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5k
KTsKKyAgICAgICAgc3RhdGljIFJlZjxCaW5kaW5nTm9kZT4gY3JlYXRlKGNvbnN0IElkZW50aWZp
ZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGVuZCk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVy
dHkoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kUHJvcGVydHk7IH0KIAogICAgICAgICBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RTdGFydDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4
IDRmYzk1OTUyNzdjMzBiZjdiNDJmZDQzZDMxZjczZDllMzVhMDE2ZWEuLmNjY2FiZjM2OTY0ZjQx
MWE2NGNiYWUyNTkyZDI0ZjQyNGYwMjZiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTc0LDkgKzc0LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBjbGFzcyBTdHJpbmdTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRl
ciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdTb3VyY2VQ
cm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uOjptaW5pbXVt
UG9zaXRpb24oKSkKKyAgICAgICAgc3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uOjptaW5pbXVtUG9zaXRpb24oKSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdTb3VyY2VQ
cm92aWRlcihzb3VyY2UsIHVybCwgc3RhcnRQb3NpdGlvbikpOworICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwsIHN0YXJ0UG9z
aXRpb24pKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGUuY3BwCmluZGV4IDA2MjI0M2I0ZjY4YTAxOTZmOWVmMDEzZjhlMGY0N2Y2ODI3YjdmY2YuLmYz
ZDQ1MGFiMjMwMzgzMGRjMjMxMDIxNTZjYjAxYzY5MzAyZDNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLVBhc3NSZWZQdHI8UHJvZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKK1JlZjxQcm9maWxl
PiBQcm9maWxlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3Vi
bGUgc3RhcnRUaW1lKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZmlsZSh0aXRsZSwg
dWlkLCBzdGFydFRpbWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlKHRpdGxl
LCB1aWQsIHN0YXJ0VGltZSkpOwogfQogCiBQcm9maWxlOjpQcm9maWxlKGNvbnN0IFN0cmluZyYg
dGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZS5oCmluZGV4IGRiMTliZjhiMmIzNTYyMmE0ZTg5MDMzY2VmY2Y0
MTI4ODRmNTNiNzIuLjQxY2I2NzBjYWU3Y2E5ZWIxN2FlNDY0ZGFjM2VlMzFjMWExZjFmOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaApAQCAtMzUsNyArMzUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgUHJvZmlsZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFByb2ZpbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQcm9maWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3Vi
bGUpOworICAgIHN0YXRpYyBSZWY8UHJvZmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUs
IHVuc2lnbmVkIHVpZCwgZG91YmxlKTsKICAgICB2aXJ0dWFsIH5Qcm9maWxlKCk7CiAKICAgICBj
b25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmluZGV4
IDU2Y2RmNmY2NzNlYThmYzUwNjJjMDk4N2YwZjc0ZDZmY2NhMTQ5YTQuLmY3MGU0YTNmNjQ5OWQ0
ZDBiNDg2YzEyZTAwZDgzOTAxNWQ5ZDUyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKQEAgLTM5LDkgKzM5LDkgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLVBhc3NSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4gUHJvZmlsZUdl
bmVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5z
aWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQorUmVmPFByb2ZpbGVH
ZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3
YXRjaCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVHZW5lcmF0b3IoZXhlYywg
dGl0bGUsIHVpZCwgc3RvcHdhdGNoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmls
ZUdlbmVyYXRvcihleGVjLCB0aXRsZSwgdWlkLCBzdG9wd2F0Y2gpKTsKIH0KIAogUHJvZmlsZUdl
bmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmlu
ZGV4IDNlMzAxYWUzNjk5OGZhNmI4ZTAwOWQ4Njk2MDRmN2UwNTVjMGRiMzMuLjM4N2VkNWY0YTcw
NDQzM2QwNjNkYzdjNjkxMWJkZTE4MzExNWQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaApAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFByb2ZpbGVHZW5lcmF0b3IgOiBwdWJsaWMgUmVmQ291
bnRlZDxQcm9maWxlR2VuZXJhdG9yPiAgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4gY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6
U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOworICAg
ICAgICBzdGF0aWMgUmVmPFByb2ZpbGVHZW5lcmF0b3I+IGNyZWF0ZShFeGVjU3RhdGUqLCBjb25z
dCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+
KTsKIAogICAgICAgICAvLyBNZW1iZXJzCiAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRs
ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUu
aAppbmRleCA5YWM1NTY1OWU5OWQ2ZGQ3M2NjM2MzMDk1ZjM3NmJkOWEyOGQwNGMzLi5mY2FlZTBl
MjQyMjk5YzY1NmI1YTVhNzY3YTA0MTFkNTVhZWRlNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaApAQCAtNDQsMTQgKzQ0LDE0IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgY2xhc3MgUHJvZmlsZU5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9m
aWxlTm9kZT4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmls
ZU5vZGU+IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50
aWZpZXImIGNhbGxJZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKKyAgICAgICAg
c3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1l
LCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJl
bnROb2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2Zp
bGVOb2RlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIHBhcmVudE5vZGUpKTsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFt
ZSwgY2FsbElkZW50aWZpZXIsIHBhcmVudE5vZGUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxs
RnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlKQorICAgICAgICBzdGF0aWMgUmVmPFByb2ZpbGVOb2Rl
PiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVOb2RlKGNh
bGxlckNhbGxGcmFtZSwgbm9kZSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UHJvZmlsZU5vZGUoY2FsbGVyQ2FsbEZyYW1lLCBub2RlKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdHJ1Y3QgQ2FsbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRhVmlldy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5j
cHAKaW5kZXggMGM4M2Q2ZTk1YjBlMjRjNDllYTRmOTkwOTQ4ZjEyZTRhNGNhMDJiNy4uNzhlNzQz
ZmMxNWY4MGJiZmY1MjZmOGU3NzM2OWUzYjAxNjQ3N2FkZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGFWaWV3LmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIERhdGFWaWV3OjpE
YXRhVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIHVuc2lnbmVkCiB7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVh
dGUoCitSZWY8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3Ro
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0
LCBieXRlTGVuZ3RoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVZpZXcoYnVmZmVy
LCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+IERh
dGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2VkQnVmZmVyKQorUmVm
PERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHBhc3Nl
ZEJ1ZmZlcikKIHsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHBhc3NlZEJ1ZmZl
cjsKICAgICByZXR1cm4gY3JlYXRlKGJ1ZmZlciwgMCwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKaW5kZXggNGE4YWE5MjU4YWQx
MTliNTc0OTIzYjg3ODc1NmVhODhhNDBiMDY4Yy4uYTAxZDEzNTA2NjlmM2M3NWVjYWE1N2RjYjI0
NjQzYTcwY2VmMGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0YVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5o
CkBAIC0zNyw4ICszNyw4IEBAIHByb3RlY3RlZDoKICAgICBEYXRhVmlldyhQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAg
ICAgCiBwdWJsaWM6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8RGF0
YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3Jl
YXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0
aWMgUmVmPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIFJlZjxEYXRhVmlldz4g
Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKICAgICAKICAgICB2aXJ0dWFsIHVuc2ln
bmVkIGJ5dGVMZW5ndGgoKSBjb25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCmluZGV4IDVmOGIxYjI2NWEw
MTRhMjVhZjg1OGJlMTc5YTBkNWNhYWJjNDdmN2EuLjZlYmJiMGQ5OGJiM2I1MGZkNzlkN2U2NzMx
NjJhNTg4NzZmYTdkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVJbnN0YW5jZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlQ2FjaGUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
Y2xhc3MgRGF0ZUluc3RhbmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVJbnN0YW5jZURh
dGE+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlSW5zdGFuY2VEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KKyAgICBz
dGF0aWMgUmVmPERhdGVJbnN0YW5jZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KIAogICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1l
Q2FjaGVkRm9yTVM7CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUgbV9jYWNoZWRHcmVnb3JpYW5EYXRl
VGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVJlYWN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJl
YWN0aW9uLmNwcAppbmRleCAxYTk0YzcxOTVlMzVlZTcyZmVhNmYwZjk1OGU0OWQ1MWUzNjEwZGY1
Li5mNTNjY2NiNWEzNjI5YmMwM2ExYWVjODIzOGY4ZDEwYTNjMmZjZDhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwCkBAIC01
OSw5ICs1OSw5IEBAIHByaXZhdGU6CiAgICAgU3Ryb25nPFVua25vd24+IG1fYXJndW1lbnQ7CiB9
OwogCi1QYXNzUmVmUHRyPE1pY3JvdGFzaz4gY3JlYXRlRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1p
Y3JvdGFzayhWTSYgdm0sIEpTUHJvbWlzZVJlYWN0aW9uKiByZWFjdGlvbiwgSlNWYWx1ZSBhcmd1
bWVudCkKK1JlZjxNaWNyb3Rhc2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rh
c2soVk0mIHZtLCBKU1Byb21pc2VSZWFjdGlvbiogcmVhY3Rpb24sIEpTVmFsdWUgYXJndW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90
YXNrKHZtLCByZWFjdGlvbiwgYXJndW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBF
eGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKHZtLCByZWFjdGlvbiwgYXJndW1lbnQpKTsK
IH0KIAogdm9pZCBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrOjpydW4oRXhlY1N0YXRl
KiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlUmVhY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJl
YWN0aW9uLmgKaW5kZXggMDliZTJkZmJhNDU4YzAxYWY0MTYyYTI4ZTkwNWJhNmQ1NGFmYzE3OC4u
NzY3MjhmNDVlMjFhNGM3ZGE4YzM5NDk0NTBhYWNmNDgwY2YyOWJiYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1faGFuZGxlcjsKIH07
CiAKLVBhc3NSZWZQdHI8TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWlj
cm90YXNrKFZNJiwgSlNQcm9taXNlUmVhY3Rpb24qLCBKU1ZhbHVlKTsKK1JlZjxNaWNyb3Rhc2s+
IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mLCBKU1Byb21pc2VSZWFj
dGlvbiosIEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKaW5kZXggOTFhZjNhMjc4
ZTY1OWMwYzhhZWJmOGZlNmVjOTFmZTBkOTJhZWMxNy4uYzJmMTNkOGMzNzI5YWU1YWI3YmQzOWRi
NzRlMzQ1ODgzZTRjODY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlOYW1lQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFByb3BlcnR5TmFt
ZUFycmF5RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPElkZW50aWZpZXIsIDIwPiBQcm9wZXJ0eU5hbWVW
ZWN0b3I7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9wZXJ0eU5hbWVBcnJheURhdGEpOyB9Cisg
ICAgc3RhdGljIFJlZjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUHJvcGVydHlOYW1lQXJyYXlEYXRhKTsgfQogCiAgICAgUHJvcGVydHlOYW1l
VmVjdG9yJiBwcm9wZXJ0eU5hbWVWZWN0b3IoKSB7IHJldHVybiBtX3Byb3BlcnR5TmFtZVZlY3Rv
cjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgKaW5kZXggZDhmNTFl
YTYyODEzZmIwOGNlMmE2MjE0ZDkyMTZhZmJkMDk0MzhlZC4uZWIyOWU2YzVmMzM3YjMyM2ExMTNl
ZTA3YmUxZDc4OGNjMjZjNDdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVT
ZXQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVTaGFwZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFN0cnVjdHVyZVNoYXBlPiB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlU2hhcGUoKTsK
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZVNoYXBlPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3RydWN0dXJlU2hhcGUpOyB9CisgICAgc3RhdGljIFJlZjxTdHJ1Y3R1
cmVTaGFwZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJ1Y3R1cmVTaGFwZSk7
IH0KICAgICBTdHJpbmcgcHJvcGVydHlIYXNoKCk7CiAgICAgdm9pZCBtYXJrQXNGaW5hbCgpOwog
ICAgIHZvaWQgYWRkUHJvcGVydHkoVW5pcXVlZFN0cmluZ0ltcGwmKTsKQEAgLTgyLDcgKzgyLDcg
QEAgcHJpdmF0ZToKIGNsYXNzIFR5cGVTZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxUeXBlU2V0PiB7
CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlU2V0PiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgVHlwZVNldCk7IH0KKyAgICBzdGF0aWMgUmVmPFR5cGVTZXQ+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwZVNldCk7IH0KICAgICBUeXBlU2V0KCk7
CiAgICAgdm9pZCBhZGRUeXBlSW5mb3JtYXRpb24oUnVudGltZVR5cGUsIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlU2hhcGU+LCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXgg
ZDY0OGZjZDhjOTJhYTE4NGIxZDUyNGQ2OGQzNDZlYThjNTliM2RkOC4uZWUyNzQ2ZDc4ZDgzNjAw
ZTdlMjFmZWI1YjZiZTE5ZmYwYTVlZDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlZEFycmF5QmFzZS5oCkBAIC0xMDgsMjYgKzEwOCwyNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN1YmNsYXNzPiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1
bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgc3RhdGljIFJlZlB0cjxT
dWJjbGFzcz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgUmVmUHRyPEFycmF5
QnVmZmVyPiBidWYoYnVmZmVyKTsKICAgICAgICAgaWYgKCF2ZXJpZnlTdWJSYW5nZTxUPihidWYs
IGJ5dGVPZmZzZXQsIGxlbmd0aCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xhc3Mo
YnVmLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVh
dGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0aWMgUmVmUHRyPFN1YmNs
YXNzPiBjcmVhdGVVbmluaXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQobGVuZ3RoLCBzaXplb2YoVCkpOwogICAgICAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKLSAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IHJldHVybiBjcmVhdGU8U3ViY2xhc3M+KGJ1ZmZlci5yZWxlYXNlKCksIDAsIGxlbmd0aCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIFBhc3NSZWZQdHI8U3Vi
Y2xhc3M+IHN1YmFycmF5SW1wbChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisgICAgUmVmUHRy
PFN1YmNsYXNzPiBzdWJhcnJheUltcGwoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogICAgIHsK
ICAgICAgICAgdW5zaWduZWQgb2Zmc2V0LCBsZW5ndGg7CiAgICAgICAgIGNhbGN1bGF0ZU9mZnNl
dEFuZExlbmd0aChzdGFydCwgZW5kLCBtX2xlbmd0aCwgJm9mZnNldCwgJmxlbmd0aCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYjg5ZDNlYjQwMzdhNzUzM2MzNWI2NmJj
YTI0YjI1MTM4N2I5MTEyNy4uNmE0Yjg0YzU0ZTMxZDY5NDdlZjk4ZGU0ODQ4ZWI3ODU2N2Y0M2Nh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzQwLDE3ICszNDAsMTcg
QEAgVk06On5WTSgpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxWTT4gVk06OmNyZWF0ZUNvbnRl
eHRHcm91cChIZWFwVHlwZSBoZWFwVHlwZSkKK1JlZjxWTT4gVk06OmNyZWF0ZUNvbnRleHRHcm91
cChIZWFwVHlwZSBoZWFwVHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZNKEFQSUNv
bnRleHRHcm91cCwgaGVhcFR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWTShBUElD
b250ZXh0R3JvdXAsIGhlYXBUeXBlKSk7CiB9CiAKLVBhc3NSZWZQdHI8Vk0+IFZNOjpjcmVhdGUo
SGVhcFR5cGUgaGVhcFR5cGUpCitSZWY8Vk0+IFZNOjpjcmVhdGUoSGVhcFR5cGUgaGVhcFR5cGUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWTShEZWZhdWx0LCBoZWFwVHlwZSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZNKERlZmF1bHQsIGhlYXBUeXBlKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8Vk0+IFZNOjpjcmVhdGVMZWFrZWQoSGVhcFR5cGUgaGVhcFR5cGUpCitSZWY8Vk0+IFZN
OjpjcmVhdGVMZWFrZWQoSGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSho
ZWFwVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA0NzgxNjFkZjY5
Njk5ODc3YzM0NTcxM2ZiNjJhNGVhNGFiNTdmMzkxLi4xZDcyMmY5YWMwMzg3YTQxODdkODBmMTJh
ZjQ1MjhjMzJlYWE1NTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTIxMyw5
ICsyMTMsOSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgc2hh
cmVkSW5zdGFuY2VFeGlzdHMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgVk0mIHNo
YXJlZEluc3RhbmNlKCk7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0
cjxWTT4gY3JlYXRlKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUGFzc1JlZlB0cjxWTT4gY3JlYXRlTGVha2VkKEhlYXBUeXBlID0gU21hbGxIZWFw
KTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxWTT4gY3JlYXRlQ29udGV4dEdyb3VwKEhlYXBUeXBl
ID0gU21hbGxIZWFwKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZNPiBjcmVh
dGUoSGVhcFR5cGUgPSBTbWFsbEhlYXApOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBS
ZWY8Vk0+IGNyZWF0ZUxlYWtlZChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CisgICAgc3RhdGljIFJl
ZjxWTT4gY3JlYXRlQ29udGV4dEdyb3VwKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKICAgICBKU19F
WFBPUlRfUFJJVkFURSB+Vk0oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAppbmRleCBmNGFhZWM5OTgwNzIyNWRlZjMz
NjY1ODEwNzI5MWIwMzVkZDI3MmExLi4wYzcwODk2NTQ2MjNlNWY2NjQ2OWE0YWRjNmRlYTFkMGY0
ZDkwZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVndWxhckV4cHJl
c3Npb24uY3BwCkBAIC0zNyw5ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFy
ciB7CiAKIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOjpQcml2YXRlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVndWxhckV4cHJlc3Npb246OlByaXZhdGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxQcml2YXRlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBUZXh0Q2FzZVNl
bnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwgTXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2RlKQor
ICAgIHN0YXRpYyBSZWY8UHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgVGV4
dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11bHRpbGluZU1vZGUgbXVsdGlsaW5l
TW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJpdmF0ZShwYXR0ZXJu
LCBjYXNlU2Vuc2l0aXZpdHksIG11bHRpbGluZU1vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUHJpdmF0ZShwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZpdHksIG11bHRpbGluZU1vZGUp
KTsKICAgICB9CiAKICAgICBpbnQgbGFzdE1hdGNoTGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYmMwMmIxNTQxNjI3NGY1ZTU1
MjQ5OTNiN2Q0YmQxZTVlNDIwNjY3ZS4uOGRjZTQ0MmE0MmZhYzlkMjIxMmNmMjBkOTdlMGUwZTA4
NTY3NDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgVk0mIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0o
KQogICAgIHN0YXRpYyBWTSogdm0gPSBudWxscHRyOwogICAgIGlmICghdm0pIHsKICAgICAgICAg
U2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgICAgICB2bSA9IFZN
OjpjcmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CisgICAgICAgIHZtID0gJlZNOjpj
cmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICAgICAgdm0tPnNldEV4Y2x1c2l2ZVRocmVhZChzdGQ6OnRoaXNfdGhyZWFkOjpnZXRfaWQoKSk7
CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254495</attachid>
            <date>2015-06-08 09:04:39 -0700</date>
            <delta_ts>2015-06-08 17:08:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145750-20150609010412.patch</filename>
            <type>text/plain</type>
            <size>51916</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGQ1MjMyY2U1NmIwZTYwN2RjYjc1ZjZkZjdjYzk5M2E2YmQ1MjQzLi4xOGIyZDUxMjBjNGU0ZDQ2
OTNiZjU1OGE2MTI4YzNhNjNlNmE3NThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMTUtMDYtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQ
SS9KU0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAg
ICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUp
OgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KToKKyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGlj
UHJvcGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
OjpjcmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6
R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNj
cmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZN
YW5hZ2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5
UGF0dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpj
cmVhdGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6OkRh
dGFWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5j
ZURhdGE6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OmNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2spOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5RGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlU2hhcGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAoSlNDOjpUeXBl
ZEFycmF5QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQpOgorICAgICAgICAoSlNDOjpUeXBlZEFycmF5QmFzZTo6c3ViYXJyYXlJ
bXBsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0
ZUNvbnRleHRHcm91cCk6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpWTTo6Y3JlYXRlTGVha2VkKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICog
eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ3VsYXJF
eHByZXNzaW9uOjpQcml2YXRlOjpjcmVhdGUpOgorCiAyMDE1LTA2LTA2ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXR1cm5lZCBFeGNlcHRpb24qIHZhbHVlcyBu
ZWVkIHRvIGJlIGluaXRpYWxpemVkIHRvIG51bGxwdHIgd2hlbiBubyBleGNlcHRpb25zIGFyZSB0
aHJvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNThkMGY2Yjk1NmM3NzZhNzdmYjk0YTBhOTg2NjUxZWM2
N2YzYy4uZTc3Njc0YjVkMjhiZDdmNDk0MzQyYmIzMWViOGJlNTlhYmJjZjcxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTA4ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5r
aW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNzUmVmUHRyIGluIEphdmFTY3JpcHRD
b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU3
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBh
IHN0ZXAgdG8gcHVyZ2UgUGFzc1JlZlB0ciwgdGhpcyBwYXRjaCByZXBsYWNlcyBQYXNzUmVmUHRy
IHdpdGggUmVmIG9yIFJlZlB0ci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjb21tb25WTSk6CisKIDIwMTUtMDYt
MDggIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVz
ZSBtb2Rlcm4gZm9yLWxvb3BzIGluIFdlYkNvcmUvTW9kdWxlcyAtIDIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGUzNTQ3ZDJmNWQzY2QwNDIzY2JiNDVhMmYx
MzhjNzQ3NGVhZGJiOWUuLmE4ZTdjYjdkNDU1ZDJkMDFiOTQ5MjZmMjM4YTFjZTBiM2ExMTI4Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMTA4LDkgKzEw
OCw5IEBAIE9wYXF1ZUpTQ2xhc3M6On5PcGFxdWVKU0NsYXNzKCkKICAgICAgICAgSlNDbGFzc1Jl
bGVhc2UocHJvdG90eXBlQ2xhc3MpOwogfQogCi1QYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9w
YXF1ZUpTQ2xhc3M6OmNyZWF0ZU5vQXV0b21hdGljUHJvdG90eXBlKGNvbnN0IEpTQ2xhc3NEZWZp
bml0aW9uKiBkZWZpbml0aW9uKQorUmVmPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNy
ZWF0ZU5vQXV0b21hdGljUHJvdG90eXBlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBkZWZpbml0
aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BhcXVlSlNDbGFzcyhkZWZpbml0aW9u
LCAwKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNDbGFzcyhkZWZpbml0aW9u
LCAwKSk7CiB9CiAKIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gT3BhcXVlSlNDbGFzczo6Y3Jl
YXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBjbGllbnREZWZpbml0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAppbmRleCBkMjk4YTE2MTljOTY2Y2RlYWFjNjA5OWZk
OTI0OTgyNWIzN2Q1YzBlLi42ODdkOGI5Yjk0ZDkxODNiOGE2OTkzMDkzMDJlN2JkZmQ3NTQ3NmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaApAQCAtODYsNyArODYsNyBA
QCBwdWJsaWM6CiAKIHN0cnVjdCBPcGFxdWVKU0NsYXNzIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPE9wYXF1ZUpTQ2xhc3M+IHsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU0Ns
YXNzPiBjcmVhdGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxPcGFxdWVKU0NsYXNzPiBjcmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0Ns
YXNzRGVmaW5pdGlvbiopOworICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNDbGFzcz4gY3JlYXRlTm9B
dXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsKICAgICBKU19FWFBP
UlRfUFJJVkFURSB+T3BhcXVlSlNDbGFzcygpOwogICAgIAogICAgIFN0cmluZyBjbGFzc05hbWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAppbmRleCA1ODg5
OTE4Nzk0OWZkZWU4OWNmYzRmN2IyZmFiZGIyM2FlM2M4OTk4Li40OTc2YzI5YWVlZWY5MTM5M2Ji
MGE4NzI5ZTUwMDY0NzI2NGMxZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwCkBAIC03Niw3ICs3Niw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlIEpTQzo6amF2YVNjcmlwdENvcmVBUElHbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKIEpT
Q29udGV4dEdyb3VwUmVmIEpTQ29udGV4dEdyb3VwQ3JlYXRlKCkKIHsKICAgICBpbml0aWFsaXpl
VGhyZWFkaW5nKCk7Ci0gICAgcmV0dXJuIHRvUmVmKFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKS5s
ZWFrUmVmKCkpOworICAgIHJldHVybiB0b1JlZigmVk06OmNyZWF0ZUNvbnRleHRHcm91cCgpLmxl
YWtSZWYoKSk7CiB9CiAKIEpTQ29udGV4dEdyb3VwUmVmIEpTQ29udGV4dEdyb3VwUmV0YWluKEpT
Q29udGV4dEdyb3VwUmVmIGdyb3VwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0
UmVmLmNwcAppbmRleCA5OWQ3ZjMxZTc4M2YyNmJhYzFiN2RhYTA2MzQyZjgyNGVkNjZlNWQ2Li40
NzQ3ZDk3ZjYyNzU1ZjVhNTAxMTBkZGMzMTEzMTY1ODY2MTM0NDRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtNDEsOSArNDEsOSBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiBzdHJ1Y3QgT3BhcXVlSlNTY3JpcHQgOiBwdWJsaWMgU291cmNlUHJvdmlk
ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBXVEY6OlBhc3NSZWZQdHI8T3BhcXVlSlNTY3JpcHQ+
IGNyZWF0ZShWTSogdm0sIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKKyAgICBzdGF0aWMgV1RGOjpSZWZQdHI8T3BhcXVlSlNT
Y3JpcHQ+IGNyZWF0ZShWTSogdm0sIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgc3RhcnRpbmdMaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6
OmFkb3B0UmVmKG5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgdXJsLCBzdGFydGluZ0xpbmVOdW1iZXIs
IHNvdXJjZSkpOworICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2Ny
aXB0KHZtLCB1cmwsIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKSk7CiAgICAgfQogCiAgICAg
dmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWYuY3BwCmluZGV4IDNiNzVmM2RmYTlmNzFjMmQ4MzYw
NThhMGFkYmRjODRhNmNkMmQwZjUuLmM5YjM4MGNlNjU0MTU5ZDNjZDExZWJlMjU5MDQ2YmM2OTFl
ZDBmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWYu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWYuY3BwCkBAIC0z
Nyw3ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiBKU1N0cmluZ1JlZiBK
U1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKGNvbnN0IEpTQ2hhciogY2hhcnMsIHNpemVfdCBu
dW1DaGFycykKIHsKICAgICBpbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgcmV0dXJuIE9wYXF1
ZUpTU3RyaW5nOjpjcmVhdGUoY2hhcnMsIG51bUNoYXJzKS5sZWFrUmVmKCk7CisgICAgcmV0dXJu
ICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNoYXJzLCBudW1DaGFycykubGVha1JlZigpOwogfQog
CiBKU1N0cmluZ1JlZiBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKiBz
dHJpbmcpCkBAIC01MSwxMiArNTEsMTIgQEAgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQogICAgICAgICBjb25zdCBMQ2hhciogc3Ry
aW5nU3RhcnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oc3RyaW5nKTsKICAgICAg
ICAgaWYgKGNvbnZlcnNpb25PSyA9PSBjb252ZXJ0VVRGOFRvVVRGMTYoJnN0cmluZywgc3RyaW5n
ICsgbGVuZ3RoLCAmcCwgcCArIGxlbmd0aCwgJnNvdXJjZUlzQWxsQVNDSUkpKSB7CiAgICAgICAg
ICAgICBpZiAoc291cmNlSXNBbGxBU0NJSSkKLSAgICAgICAgICAgICAgICByZXR1cm4gT3BhcXVl
SlNTdHJpbmc6OmNyZWF0ZShzdHJpbmdTdGFydCwgbGVuZ3RoKS5sZWFrUmVmKCk7Ci0gICAgICAg
ICAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWZmZXIuZGF0YSgpLCBwIC0gYnVm
ZmVyLmRhdGEoKSkubGVha1JlZigpOworICAgICAgICAgICAgICAgIHJldHVybiAmT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZShzdHJpbmdTdGFydCwgbGVuZ3RoKS5sZWFrUmVmKCk7CisgICAgICAgICAg
ICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZl
ci5kYXRhKCkpLmxlYWtSZWYoKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBPcGFx
dWVKU1N0cmluZzo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiAmT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKIH0KIAogSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVyc05vQ29weShjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmQ0YuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmNwcAppbmRleCA1MjQx
YTliY2UxZDAzNjg0ODA1ZDlkMTMxMjljZDk2ZWQ0MzFiNmE2Li4wNTg3MjU5M2Y2ZGJiOWE4NTNh
ODE2MWE2OWJiZGY3NDJhMjMzM2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTU3RyaW5nUmVmQ0YuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
dHJpbmdSZWZDRi5jcHAKQEAgLTQxLDE4ICs0MSwxOCBAQCBKU1N0cmluZ1JlZiBKU1N0cmluZ0Ny
ZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBzdHJpbmcpCiAgICAgLy8gaXQgY2FuIGhvbGQu
ICAoPHJkYXI6Ly9wcm9ibGVtLzY4MDY0Nzg+KQogICAgIHNpemVfdCBsZW5ndGggPSBDRlN0cmlu
Z0dldExlbmd0aChzdHJpbmcpOwogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gT3Bh
cXVlSlNTdHJpbmc6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpLCAw
KS5sZWFrUmVmKCk7CisgICAgICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpLCAwKS5sZWFrUmVmKCk7CiAKICAgICBWZWN0
b3I8TENoYXIsIDEwMjQ+IGxjaGFyQnVmZmVyKGxlbmd0aCk7CiAgICAgQ0ZJbmRleCB1c2VkQnVm
ZmVyTGVuZ3RoOwogICAgIENGSW5kZXggY29udmVydGVkU2l6ZSA9IENGU3RyaW5nR2V0Qnl0ZXMo
c3RyaW5nLCBDRlJhbmdlTWFrZSgwLCBsZW5ndGgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGlu
MSwgMCwgZmFsc2UsIGxjaGFyQnVmZmVyLmRhdGEoKSwgbGVuZ3RoLCAmdXNlZEJ1ZmZlckxlbmd0
aCk7CiAgICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4oY29udmVydGVkU2l6ZSkgPT0gbGVuZ3Ro
ICYmIHN0YXRpY19jYXN0PHNpemVfdD4odXNlZEJ1ZmZlckxlbmd0aCkgPT0gbGVuZ3RoKQotICAg
ICAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShsY2hhckJ1ZmZlci5kYXRhKCksIGxl
bmd0aCkubGVha1JlZigpOworICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUo
bGNoYXJCdWZmZXIuZGF0YSgpLCBsZW5ndGgpLmxlYWtSZWYoKTsKIAogICAgIGF1dG8gYnVmZmVy
ID0gc3RkOjptYWtlX3VuaXF1ZTxVbmlDaGFyW10+KGxlbmd0aCk7CiAgICAgQ0ZTdHJpbmdHZXRD
aGFyYWN0ZXJzKHN0cmluZywgQ0ZSYW5nZU1ha2UoMCwgbGVuZ3RoKSwgYnVmZmVyLmdldCgpKTsK
ICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihVbmlDaGFyKSA9PSBzaXplb2YoVUNoYXIpLCAiVW5p
Q2hhciBhbmQgVUNoYXIgbXVzdCBiZSBzYW1lIHNpemUiKTsKLSAgICByZXR1cm4gT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PFVDaGFyKj4oYnVmZmVyLmdldCgpKSwgbGVu
Z3RoKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8VUNoYXIqPihidWZmZXIuZ2V0KCkpLCBsZW5ndGgpLmxlYWtSZWYoKTsKIH0K
IAogQ0ZTdHJpbmdSZWYgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBKU1N0cmluZ1JlZiBzdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3Bh
cXVlSlNTdHJpbmcuY3BwCmluZGV4IDdmOWVkYjQxMzZlMjc0OTk3NDdkMjk2ZDJmMWEyZGM0ODli
MDQ0M2QuLjA3YTc5YWQ5OWU2ZGM3ZjMxYzVmOGZiYWE5MjQxZWYxMmZlYTI0ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuY3BwCkBAIC0zNCw3ICszNCw3
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLVBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+
IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitSZWZQdHI8T3Bh
cXVlSlNTdHJpbmc+IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CiAgICAgaWYgKHN0cmluZy5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgKaW5kZXggMDNhZTU3Nzkw
NGNjYWI1N2ZiNDA3ZmM1NTE0ZGM4MzkzMWY2OTBhNC4uMjA4MTMxYjNiNDE1OGU3YzZmY2ZkZTkx
ZTQ2YzM1Nzc4OTdhZGM2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNT
dHJpbmcuaApAQCAtMzYsMjIgKzM2LDIyIEBAIG5hbWVzcGFjZSBKU0MgewogfQogCiBzdHJ1Y3Qg
T3BhcXVlSlNTdHJpbmcgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNTdHJp
bmc+IHsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKCkKKyAg
ICBzdGF0aWMgUmVmPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE9wYXF1ZUpTU3RyaW5nKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxP
cGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCisgICAgc3RhdGljIFJlZjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0IExDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE9wYXF1ZUpTU3RyaW5nKGNoYXJhY3RlcnMsIGxlbmd0aCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgc3RhdGljIFJlZjxP
cGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTU3RyaW5n
KGNoYXJhY3RlcnMsIGxlbmd0aCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPcGFx
dWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKICAgICB9CiAKLSAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0IFN0
cmluZyYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWZQdHI8T3BhcXVlSlNTdHJp
bmc+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5PcGFx
dWVKU1N0cmluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvU3RhdGljUHJvcGVydHlBbmFseXNpcy5oCmluZGV4IDI5M2MyMjQxNGE2MjEw
YmUxZmY3ZTdiMWUyOGZhNGYzNTIyNDAwMDAuLjVhOTkxOGRkMTU4MGFjZjc5MTkzYmYxYzQ3Mjlh
YmIyNGFlNjkzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvU3RhdGljUHJvcGVydHlBbmFseXNpcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvU3RhdGljUHJvcGVydHlBbmFseXNpcy5oCkBAIC0zNSw5ICszNSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogLy8gUmVmZXJlbmNlIGNvdW50IGluZGljYXRlcyBudW1iZXIgb2YgbGl2
ZSByZWdpc3RlcnMgdGhhdCBhbGlhcyB0aGlzIG9iamVjdC4KIGNsYXNzIFN0YXRpY1Byb3BlcnR5
QW5hbHlzaXMgOiBwdWJsaWMgUmVmQ291bnRlZDxTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RhdGljUHJvcGVydHlBbmFseXNpcz4gY3Jl
YXRlKFZlY3RvcjxVbmxpbmtlZEluc3RydWN0aW9uLCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4q
IGluc3RydWN0aW9ucywgdW5zaWduZWQgdGFyZ2V0KQorICAgIHN0YXRpYyBSZWY8U3RhdGljUHJv
cGVydHlBbmFseXNpcz4gY3JlYXRlKFZlY3RvcjxVbmxpbmtlZEluc3RydWN0aW9uLCAwLCBVbnNh
ZmVWZWN0b3JPdmVyZmxvdz4qIGluc3RydWN0aW9ucywgdW5zaWduZWQgdGFyZ2V0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzKGluc3Ry
dWN0aW9ucywgdGFyZ2V0KSk7IAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdGF0aWNQ
cm9wZXJ0eUFuYWx5c2lzKGluc3RydWN0aW9ucywgdGFyZ2V0KSk7IAogICAgIH0KIAogICAgIHZv
aWQgYWRkUHJvcGVydHlJbmRleCh1bnNpZ25lZCBwcm9wZXJ0eUluZGV4KSB7IG1fcHJvcGVydHlJ
bmRleGVzLmFkZChwcm9wZXJ0eUluZGV4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaAppbmRleCA1YzdkNzVhZGM5NDhiMjY1MTIy
OTA4MzcxNTc1YWMyYzU3YmQ3ZDY0Li5kZjYxYzZhYTM5MzU1NDdhYzc4NTE3M2RlZTEwN2I1MGMz
YTQwZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJDYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJDYWxsRnJhbWUuaApAQCAtNDYsOSArNDYsOSBAQCBjbGFzcyBEZWJ1Z2dlckNhbGxGcmFtZSA6
IHB1YmxpYyBSZWZDb3VudGVkPERlYnVnZ2VyQ2FsbEZyYW1lPiB7CiBwdWJsaWM6CiAgICAgZW51
bSBUeXBlIHsgUHJvZ3JhbVR5cGUsIEZ1bmN0aW9uVHlwZSB9OwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNyZWF0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKKyAg
ICBzdGF0aWMgUmVmPERlYnVnZ2VyQ2FsbEZyYW1lPiBjcmVhdGUoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlYnVnZ2VyQ2FsbEZyYW1l
KGNhbGxGcmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWJ1Z2dlckNhbGxG
cmFtZShjYWxsRnJhbWUpKTsKICAgICB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBleHBsaWNp
dCBEZWJ1Z2dlckNhbGxGcmFtZShDYWxsRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5jcHAKaW5kZXggZDAxNjJiNzllNWY0NjFhNTg4YTliMmNmZDRmMGQwMjZmMWY2NWIwZi4u
ZGQ4MTA4YTc2MDk5ZjhhNjdmZDNmYjdkZGUzMzExZjc1OTU5OTczMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTQzLDEwICs0Myw5IEBAIFRvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrOjpUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygKIAogVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6On5Ub0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjaygpIHsgfQogCi1QYXNzUmVmUHRyPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKAotICAgIFBhc3NS
ZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spCitSZWY8VG9GVExEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2s+IFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoUGFz
c1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jaykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKGRmZ0NvZGVCbG9jaykpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKGRm
Z0NvZGVCbG9jaykpOwogfQogCiB2b2lkIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
Ojpjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKaW5kZXggZjFhYzRhNjhmYzY0OTczMGE2NWI2ZGFjMDhlZDY5NTgxYmQz
OTkyZi4uM2UwZWEwMmQwZmEyMjM2NGI4YzY5MGZiMTcxNTE1NzlmMTE0ZjE3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suaApAQCAtNDUsOCArNDUsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBj
cmVhdGUoCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spOworICAg
IHN0YXRpYyBSZWY8VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShQYXNz
UmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayopOwogICAg
IHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvbXBpbGF0
aW9uUmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suY3BwCmluZGV4IDQ3YzRmYmJlYzUxZWVmOTYyODUyNTJiNDQ4MDBiMDY5YzNlYzRkY2Eu
LjcwY2M4MjUwMjI2MmUxNzNjMzAzZjY0ODcxODVkMDNmZGQxZjVmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcApAQCAtNDUsMTEgKzQ1
LDEwIEBAIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6On5Ub0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvCiB7CiB9CiAKLVBhc3NSZWZQdHI8VG9GVExG
b3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4KLVRvRlRMRm9yT1NSRW50cnlE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKK1JlZjxUb0ZUTEZvck9TUkVudHJ5
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29k
ZUJsb2NrKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVG9GVExGb3JPU1JFbnRyeURlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKGRmZ0Nv
ZGVCbG9jaykpOwogfQogCiB2b2lkIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseSgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
b0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggYzUzZGY5
MWY3NjlkN2Y4MDI2YTViNGFiY2Y2NzdlYzE5NmNmODRlNC4uYzlkY2Y2ZDdjMDFmYzFlNDg1NjAw
OWI4ZmQ3MzIxYzA4OWUzZTRjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmgKQEAgLTQ1LDggKzQ1LDcgQEAgcHJvdGVjdGVkOgogcHVibGljOgog
ICAgIHZpcnR1YWwgflRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
KTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgKLSAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRm
Z0NvZGVCbG9jayk7CisgICAgc3RhdGljIFJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9j
ayk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3lu
Y2hyb25vdXNseShDb2RlQmxvY2sqKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRD
b21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDRhYTE0MjhhNmNkZDZkYTA4NTdmZjM1NTVj
MjdmNWQxZDQzMjYzYTEuLjRhOGY1NzIyNDhkMGNiYjZkODhlMjFmNGViYTZhYmY0ZGY0ZDE2ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC02OCw5ICs2
OCw5IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhy
ZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPFdvcmts
aXN0PiBXb3JrbGlzdDo6Y3JlYXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1i
ZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQorUmVmPFdvcmtsaXN0PiBXb3JrbGlz
dDo6Y3JlYXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMs
IGludCByZWxhdGl2ZVByaW9yaXR5KQogewotICAgIFJlZlB0cjxXb3JrbGlzdD4gcmVzdWx0ID0g
YWRvcHRSZWYobmV3IFdvcmtsaXN0KHdvcmtsaXN0TmFtZSkpOworICAgIFJlZjxXb3JrbGlzdD4g
cmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKICAgICByZXN1
bHQtPmZpbmlzaENyZWF0aW9uKG51bWJlck9mVGhyZWFkcywgcmVsYXRpdmVQcmlvcml0eSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTQwNiw3ICs0MDYsNyBAQCBXb3JrbGlzdCogZW5zdXJl
R2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFs
aXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXpl
R2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlz
dCA9IFdvcmtsaXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mREZH
Q29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhy
ZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmts
aXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJU
aHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5s
ZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OwogfQpA
QCAtNDIyLDcgKzQyMiw3IEBAIFdvcmtsaXN0KiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7
CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VG
bGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFn
LCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gV29ya2xpc3Q6OmNyZWF0ZSgi
RlRMIFdvcmtsaXN0IiwgT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSwgT3B0
aW9uczo6cHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAg
ICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiRlRMIFdvcmts
aXN0IiwgT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJp
b3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKICAg
ICByZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmgKaW5kZXggZjYxYWU0YWViOGM3NGNlNTllOTkwZGNjNmExNDI5OGUwNmM5
Y2E5Ny4uYmQ2ZTZmYTc1ZjYyNDBlMjdkMzBlNjMzMjk2ZDFhNTY1MjUwZmQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6
CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXb3JrbGlz
dD4gY3JlYXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMs
IGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CisgICAgc3RhdGljIFJlZjxXb3JrbGlzdD4gY3Jl
YXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCBy
ZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKFBhc3NSZWZQdHI8
UGxhbj4pOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRl
bkdDQWN0aXZpdHlDYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdD
QWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IDI4Y2ZkZGI3N2ViODM5MzU4M2IyYzhiN2VmYjg1ZTFk
MjYyOWM1ZjYuLmUwZmY3ODg0NTQ2YmRiODZkYmNhNjFhOWI0ZDgxYzVlZjNjZWE4ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNr
LmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUgIkdDQWN0aXZpdHlDYWxsYmFjay5oIgog
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNf
RVhQT1JUX1BSSVZBVEUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBHQ0FjdGl2aXR5
Q2FsbGJhY2sgewpAQCAtNDksNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBkb3Vi
bGUgZGVhdGhSYXRlKCkgb3ZlcnJpZGU7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxHQ0FjdGl2
aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlRWRlblRpbWVyKEhlYXAqIGhl
YXApCitpbmxpbmUgUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NBY3Rpdml0eUNhbGxiYWNr
OjpjcmVhdGVFZGVuVGltZXIoSGVhcCogaGVhcCkKIHsKICAgICByZXR1cm4gc19zaG91bGRDcmVh
dGVHQ1RpbWVyID8gYWRvcHRSZWYobmV3IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpIDog
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0Fj
dGl2aXR5Q2FsbGJhY2suaAppbmRleCA4OGNlYmQ5ZDk1OTY3MzcwM2U1OGZkYTY3NmJmYTZkODMz
ZWY5Y2NmLi4zYjFiNDUwMDVjNTViMDY2YzdiOTFkNmM0ZTY0ZDc3MGQ1NGQwOTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5o
CkBAIC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJh
dGUoKSBvdmVycmlkZTsKIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFj
az4gR0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVGdWxsVGltZXIoSGVhcCogaGVhcCkKK2lubGlu
ZSBSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUZ1
bGxUaW1lcihIZWFwKiBoZWFwKQogewogICAgIHJldHVybiBzX3Nob3VsZENyZWF0ZUdDVGltZXIg
PyBhZG9wdFJlZihuZXcgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSkgOiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxi
YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaApp
bmRleCBmMzBjMjc3MGU2NDdmMWVjNzRlNjc1NWZkOTdhYWIwZGNlZjMzZWQ5Li4zZDA3ZWZhYTJl
MTYzODc1YjAyYTMyZGMwN2I4MDljZGVjZjI5YWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMzAsNyArMzAsNyBAQAogI2RlZmlu
ZSBHQ0FjdGl2aXR5Q2FsbGJhY2tfaAogCiAjaW5jbHVkZSAiSGVhcFRpbWVyLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBVU0Uo
Q0YpCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KQEAgLTQzLDgg
KzQzLDggQEAgY2xhc3MgSGVhcDsKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEdDQWN0aXZpdHlD
YWxsYmFjayA6IHB1YmxpYyBIZWFwVGltZXIsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxH
Q0FjdGl2aXR5Q2FsbGJhY2s+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUZ1bGxU
aW1lcihIZWFwKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBj
cmVhdGVFZGVuVGltZXIoSGVhcCopOworICAgIHN0YXRpYyBSZWZQdHI8R0NBY3Rpdml0eUNhbGxi
YWNrPiBjcmVhdGVGdWxsVGltZXIoSGVhcCopOworICAgIHN0YXRpYyBSZWZQdHI8R0NBY3Rpdml0
eUNhbGxiYWNrPiBjcmVhdGVFZGVuVGltZXIoSGVhcCopOwogCiAgICAgR0NBY3Rpdml0eUNhbGxi
YWNrKEhlYXAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRIb3N0LmgKaW5kZXggYWYxZTBjYjE1MTAzNzVhYjM0NDA2YzRjNTk0ODYw
NmE2M2M3MzJjYi4uYWU1MzBhMjAyNzIwYjIxODU5OWY4Yzk2NTEwMDhlNzhhNzY0NDFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhv
c3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBjbGFzcyBK
U19FWFBPUlRfUFJJVkFURSBJbmplY3RlZFNjcmlwdEhvc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxJ
bmplY3RlZFNjcmlwdEhvc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmpl
Y3RlZFNjcmlwdEhvc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmplY3RlZFNj
cmlwdEhvc3QpOyB9CisgICAgc3RhdGljIFJlZjxJbmplY3RlZFNjcmlwdEhvc3Q+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRTY3JpcHRIb3N0KTsgfQogICAgIHZpcnR1
YWwgfkluamVjdGVkU2NyaXB0SG9zdCgpOwogCiAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgc3Vi
dHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSkgeyByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0ph
dmFTY3JpcHRDYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2
YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IGIzNDRjMzNmYmRlZTI0OGRhZTdjOWZjYTkxMmU0MjA3
MWQ3ZTUzMmYuLjVjZmJiMjNiYTFhMWU5M2EzZWEwMmE0MjgyMjk2OGI1YmY0NWU2OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFt
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxG
cmFtZS5oCkBAIC0zOCw5ICszOCw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBjbGFzcyBK
YXZhU2NyaXB0Q2FsbEZyYW1lIDogcHVibGljIFJlZkNvdW50ZWQ8SmF2YVNjcmlwdENhbGxGcmFt
ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+
IGNyZWF0ZShQYXNzUmVmUHRyPEpTQzo6RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2FsbEZy
YW1lKQorICAgIHN0YXRpYyBSZWY8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8SlNDOjpEZWJ1Z2dlckNhbGxGcmFtZT4gZGVidWdnZXJDYWxsRnJhbWUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdnZXJDYWxs
RnJhbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSmF2YVNjcmlwdENhbGxGcmFt
ZShkZWJ1Z2dlckNhbGxGcmFtZSkpOwogICAgIH0KIAogICAgIEphdmFTY3JpcHRDYWxsRnJhbWUq
IGNhbGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9T
Y3JpcHRBcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3Jp
cHRBcmd1bWVudHMuY3BwCmluZGV4IDQxMDBhM2Y5OTVlOTMzNjY0YTkzNzEwYzMwZThjMjE0YTBi
M2I4ZWIuLjUxZDFmZTY1OGQ1NmE5NWFhZDViZGJhNDMzOWZjMmM5MmFhZWEzYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAK
QEAgLTM3LDkgKzM3LDkgQEAKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKLVBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiBTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSog
c2NyaXB0U3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFyZ3VtZW50cykK
K1JlZjxTY3JpcHRBcmd1bWVudHM+IFNjcmlwdEFyZ3VtZW50czo6Y3JlYXRlKEpTQzo6RXhlY1N0
YXRlKiBzY3JpcHRTdGF0ZSwgVmVjdG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1l
bnRzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2NyaXB0QXJndW1lbnRzKHNjcmlwdFN0
YXRlLCBhcmd1bWVudHMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JpcHRBcmd1bWVu
dHMoc2NyaXB0U3RhdGUsIGFyZ3VtZW50cykpOwogfQogCiBTY3JpcHRBcmd1bWVudHM6OlNjcmlw
dEFyZ3VtZW50cyhKU0M6OkV4ZWNTdGF0ZSogZXhlY1N0YXRlLCBWZWN0b3I8RGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaAppbmRleCA1MzM3ZTAxOWUwOWMzOTUxNzgwM2I4NGQ3
NzlmZGJmYTMyMTJhNzkwLi43MjAwYWI0OGFkNjU0M2RkYTcyNzE2ODkyMjlhMzU4M2NkNDBkOTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3Vt
ZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIFNjcmlwdEFyZ3VtZW50cyA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmlw
dEFyZ3VtZW50cz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgVmVjdG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlPiYgYXJndW1lbnRzKTsKKyAgICBzdGF0aWMgUmVmPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRl
KEpTQzo6RXhlY1N0YXRlKiwgVmVjdG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1l
bnRzKTsKICAgICB+U2NyaXB0QXJndW1lbnRzKCk7CiAKICAgICBjb25zdCBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSYgYXJndW1lbnRBdChzaXplX3QpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHViUm91dGluZS5oCmluZGV4IDg0OTQ5MmIzNGQ4NWRhODZjNjk1Mzg3NTM0
OWYwNjY1MjZlNjI0YTEuLmIyMTEzYTY1ZjFmODNhNmQ3OGU5NmE5MWE3NWQ0ZDEzNDY1OGRlNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKQEAgLTYwLDEw
ICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVXNlIHRoaXMgaWYgeW91IHdhbnQgdG8g
cGFzcyBhIENvZGVQdHIgdG8gc29tZW9uZSB3aG8gaW5zaXN0cyBvbiB0YWtpbmcKICAgICAvLyBh
IFJlZlB0cjxKSVRTdHViUm91dGluZT4uCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SklUU3R1YlJv
dXRpbmU+IGNyZWF0ZVNlbGZNYW5hZ2VkUm91dGluZSgKKyAgICBzdGF0aWMgUmVmPEpJVFN0dWJS
b3V0aW5lPiBjcmVhdGVTZWxmTWFuYWdlZFJvdXRpbmUoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciByYXdDb2RlUG9pbnRlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSklUU3R1YlJvdXRpbmUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdl
ZENvZGVSZWYocmF3Q29kZVBvaW50ZXIpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEpJVFN0dWJSb3V0aW5lKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRD
b2RlUmVmKHJhd0NvZGVQb2ludGVyKSkpOwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5KSVRT
dHViUm91dGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAppbmRleCA0Nzg2
MzEyZGVmMDliMDRmMDNhNDU2YmI2YWVlOTZjNzhiNmQyYTJhLi5mN2YwYWI5YmM2MTlhMTg5MDA1
NDI4NDgxYTE4ZDNlMTAzZjI3NGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNw
cApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIEpJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrOjpKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIHsg
fQogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6On5KSVRUb0RGR0RlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjaygpIHsgfQogCi1QYXNzUmVmUHRyPEpJVFRvREZHRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrPiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6
Y3JlYXRlKCkKK1JlZjxKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gSklUVG9E
RkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygp
KTsKIH0KIAogdm9pZCBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGls
YXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oCmluZGV4IDVhMWM3ZmYxYzUyNDQ4ZDRkYzkyZDI1ZDIyZDRiNzA5YTExMjRlMjEuLmY2
NGI5NzljZWNjY2Q0MzkzMmYzMmZkODhkNWI0NmIyNjRiNTgxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJvdGVjdGVkOgogcHVibGljOgogICAg
IHZpcnR1YWwgfkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3Jl
YXRlKCk7CisgICAgc3RhdGljIFJlZjxKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
az4gY3JlYXRlKCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQmVjb21l
UmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJlc3VsdCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDg3NzBhYWJlYjMxYjgyZGJlNDE3NDRi
NmE5YjIxYTJlZTMzY2JhMDAuLjE3NWYyODcxM2Y1NzJiNWFjMWYwZGYxZmYxNDNlZDU1ZWJhNDU0
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBpbnQganNjbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgLy8gTm90ZSB0aGF0IHRoZSBvcHRpb25zIHBh
cnNpbmcgY2FuIGFmZmVjdCBWTSBjcmVhdGlvbiwgYW5kIHRodXMKICAgICAvLyBjb21lcyBmaXJz
dC4KICAgICBDb21tYW5kTGluZSBvcHRpb25zKGFyZ2MsIGFyZ3YpOwotICAgIFZNKiB2bSA9IFZN
OjpjcmVhdGUoTGFyZ2VIZWFwKS5sZWFrUmVmKCk7CisgICAgVk0qIHZtID0gJlZNOjpjcmVhdGUo
TGFyZ2VIZWFwKS5sZWFrUmVmKCk7CiAgICAgaW50IHJlc3VsdDsKICAgICB7CiAgICAgICAgIEpT
TG9ja0hvbGRlciBsb2NrZXIodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBmZWYwZjcyMzdmNGFhNjMxNmRjYWE0NmIzMWNmYzgx
NTNkZTRiMzJmLi43ZTI2ZWMzYzhlNDU1ZTg5ZGIxZDIwYWU2ODJhMTIwODI3ZmNlNzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAt
OTQzLDkgKzk0Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAgICAgCi0gICAg
aW5saW5lIFBhc3NSZWZQdHI8QXJyYXlQYXR0ZXJuTm9kZT4gQXJyYXlQYXR0ZXJuTm9kZTo6Y3Jl
YXRlKCkKKyAgICBpbmxpbmUgUmVmPEFycmF5UGF0dGVybk5vZGU+IEFycmF5UGF0dGVybk5vZGU6
OmNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFycmF5UGF0dGVy
bk5vZGUpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcnJheVBhdHRlcm5Ob2RlKTsK
ICAgICB9CiAgICAgCiAgICAgaW5saW5lIE9iamVjdFBhdHRlcm5Ob2RlOjpPYmplY3RQYXR0ZXJu
Tm9kZSgpCkBAIC05NTMsMTQgKzk1MywxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAg
fQogICAgIAotICAgIGlubGluZSBQYXNzUmVmUHRyPE9iamVjdFBhdHRlcm5Ob2RlPiBPYmplY3RQ
YXR0ZXJuTm9kZTo6Y3JlYXRlKCkKKyAgICBpbmxpbmUgUmVmPE9iamVjdFBhdHRlcm5Ob2RlPiBP
YmplY3RQYXR0ZXJuTm9kZTo6Y3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgT2JqZWN0UGF0dGVybk5vZGUpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBP
YmplY3RQYXR0ZXJuTm9kZSk7CiAgICAgfQogCi0gICAgaW5saW5lIFBhc3NSZWZQdHI8QmluZGlu
Z05vZGU+IEJpbmRpbmdOb2RlOjpjcmVhdGUoY29uc3QgSWRlbnRpZmllciYgYm91bmRQcm9wZXJ0
eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5k
KQorICAgIGlubGluZSBSZWY8QmluZGluZ05vZGU+IEJpbmRpbmdOb2RlOjpjcmVhdGUoY29uc3Qg
SWRlbnRpZmllciYgYm91bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZW5kKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBCaW5kaW5nTm9kZShib3VuZFByb3BlcnR5LCBzdGFydCwgZW5kKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEJpbmRpbmdOb2RlKGJvdW5kUHJvcGVydHksIHN0YXJ0LCBlbmQp
KTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIEJpbmRpbmdOb2RlOjpCaW5kaW5nTm9kZShjb25z
dCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuY3BwCmluZGV4IGZmOWFhNDRhZDE0NzhhYjcwOTFkYWI0ODE2NTQwMjRkMTFmYTA1M2EuLjA3
ZTBkMzdmZGZjYzE5MTZmOTc1NDNhMjgxMWQ0NDcxNjE5NmEyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgRXZhbE5vZGU6OkV2YWxO
b2RlKFBhcnNlckFyZW5hJiBwYXJzZXJBcmVuYSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFy
dExvY2F0aW8KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9uQm9k
eU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUGFzc1JlZlB0cjxGdW5jdGlv
blBhcmFtZXRlcnM+IEZ1bmN0aW9uUGFyYW1ldGVyczo6Y3JlYXRlKFBhcmFtZXRlck5vZGUqIGZp
cnN0UGFyYW1ldGVyKQorUmVmPEZ1bmN0aW9uUGFyYW1ldGVycz4gRnVuY3Rpb25QYXJhbWV0ZXJz
OjpjcmVhdGUoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIpCiB7CiAgICAgdW5zaWduZWQg
cGFyYW1ldGVyQ291bnQgPSAwOwogICAgIGZvciAoUGFyYW1ldGVyTm9kZSogcGFyYW1ldGVyID0g
Zmlyc3RQYXJhbWV0ZXI7IHBhcmFtZXRlcjsgcGFyYW1ldGVyID0gcGFyYW1ldGVyLT5uZXh0UGFy
YW0oKSkKQEAgLTE0Nyw3ICsxNDcsNyBAQCBQYXNzUmVmUHRyPEZ1bmN0aW9uUGFyYW1ldGVycz4g
RnVuY3Rpb25QYXJhbWV0ZXJzOjpjcmVhdGUoUGFyYW1ldGVyTm9kZSogZmlyc3RQYQogCiAgICAg
c2l6ZV90IG9iamVjdFNpemUgPSBzaXplb2YoRnVuY3Rpb25QYXJhbWV0ZXJzKSAtIHNpemVvZih2
b2lkKikgKyBzaXplb2YoRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSopICogcGFyYW1ldGVyQ291
bnQ7CiAgICAgdm9pZCogc2xvdCA9IGZhc3RNYWxsb2Mob2JqZWN0U2l6ZSk7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyAoc2xvdCkgRnVuY3Rpb25QYXJhbWV0ZXJzKGZpcnN0UGFyYW1ldGVyLCBw
YXJhbWV0ZXJDb3VudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChzbG90KSBGdW5jdGlv
blBhcmFtZXRlcnMoZmlyc3RQYXJhbWV0ZXIsIHBhcmFtZXRlckNvdW50KSk7CiB9CiAKIEZ1bmN0
aW9uUGFyYW1ldGVyczo6RnVuY3Rpb25QYXJhbWV0ZXJzKFBhcmFtZXRlck5vZGUqIGZpcnN0UGFy
YW1ldGVyLCB1bnNpZ25lZCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmlu
ZGV4IDkyZjFhMjFlYjlmNjZjMjk3NzM5Yjg1ZThhNThhMWJmOTBmNTEzYjEuLjdiMDBjN2ZlMTM3
NmI3Njg5MzY4ZWZlNjNlNGMwMTBmYzY0NDRlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKQEAgLTE2MzQsNyArMTYzNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnVu
Y3Rpb25QYXJhbWV0ZXJzKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZ1bmN0aW9uUGFyYW1ldGVycz4gY3JlYXRlKFBhcmFtZXRlck5vZGUqKTsKKyAgICAgICAgc3Rh
dGljIFJlZjxGdW5jdGlvblBhcmFtZXRlcnM+IGNyZWF0ZShQYXJhbWV0ZXJOb2RlKik7CiAgICAg
ICAgIH5GdW5jdGlvblBhcmFtZXRlcnMoKTsKIAogICAgICAgICB1bnNpZ25lZCBzaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zaXplOyB9CkBAIC0xNzgyLDcgKzE3ODIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIGNsYXNzIEFycmF5UGF0dGVybk5vZGUgOiBwdWJsaWMgRGVjb25zdHJ1Y3Rpb25Q
YXR0ZXJuTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJh
eVBhdHRlcm5Ob2RlPiBjcmVhdGUoKTsKKyAgICAgICAgc3RhdGljIFJlZjxBcnJheVBhdHRlcm5O
b2RlPiBjcmVhdGUoKTsKICAgICAgICAgdm9pZCBhcHBlbmRJbmRleChjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiBub2RlKQogICAgICAgICB7CiAgICAg
ICAgICAgICBtX3RhcmdldFBhdHRlcm5zLmFwcGVuZChub2RlKTsKQEAgLTE4MDAsNyArMTgwMCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIAogICAgIGNsYXNzIE9iamVjdFBhdHRlcm5Ob2RlIDog
cHVibGljIERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8T2JqZWN0UGF0dGVybk5vZGU+IGNyZWF0ZSgpOworICAgICAgICBz
dGF0aWMgUmVmPE9iamVjdFBhdHRlcm5Ob2RlPiBjcmVhdGUoKTsKICAgICAgICAgdm9pZCBhcHBl
bmRFbnRyeShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBib29sIHdhc1N0cmluZywgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSogcGF0dGVybikK
ICAgICAgICAgewogICAgICAgICAgICAgbV90YXJnZXRQYXR0ZXJucy5hcHBlbmQoRW50cnkoaWRl
bnRpZmllciwgd2FzU3RyaW5nLCBwYXR0ZXJuKSk7CkBAIC0xODI3LDcgKzE4MjcsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEJpbmRpbmdOb2RlIDogcHVibGljIERlY29uc3RydWN0
aW9uUGF0dGVybk5vZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
QmluZGluZ05vZGU+IGNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOworICAg
ICAgICBzdGF0aWMgUmVmPEJpbmRpbmdOb2RlPiBjcmVhdGUoY29uc3QgSWRlbnRpZmllciYgYm91
bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZW5kKTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgYm91bmRQcm9wZXJ0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fYm91bmRQcm9wZXJ0eTsgfQogCiAgICAgICAgIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9kaXZvdFN0YXJ0OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggNGZjOTU5
NTI3N2MzMGJmN2I0MmZkNDNkMzFmNzNkOWUzNWEwMTZlYS4uY2NjYWJmMzY5NjRmNDExYTY0Y2Jh
ZTI1OTJkMjRmNDI0ZjAyNmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuaApAQCAtNzQsOSArNzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IGNsYXNzIFN0cmluZ1NvdXJjZVByb3ZpZGVyIDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ1NvdXJjZVByb3ZpZGVy
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlv
bigpKQorICAgICAgICBzdGF0aWMgUmVmPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24m
IHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmluZ1NvdXJjZVByb3ZpZGVy
KHNvdXJjZSwgdXJsLCBzdGFydFBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHVybCwgc3RhcnRQb3NpdGlvbikp
OwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNv
bnN0IG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAK
aW5kZXggMDYyMjQzYjRmNjhhMDE5NmY5ZWYwMTNmOGUwZjQ3ZjY4MjdiN2ZjZi4uZjNkNDUwYWIy
MzAzODMwZGMyMzEwMjE1NmNiMDFjNjkzMDJkM2E1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotUGFzc1JlZlB0cjxQcm9maWxlPiBQcm9maWxlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB0
aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKQorUmVmPFByb2ZpbGU+IFByb2Zp
bGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFy
dFRpbWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlKHRpdGxlLCB1aWQsIHN0
YXJ0VGltZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGUodGl0bGUsIHVpZCwg
c3RhcnRUaW1lKSk7CiB9CiAKIFByb2ZpbGU6OlByb2ZpbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwg
dW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlLmgKaW5kZXggZGIxOWJmOGIyYjM1NjIyYTRlODkwMzNjZWZjZjQxMjg4NGY1
M2I3Mi4uNDFjYjY3MGNhZTdjYTllYjE3YWU0NjRkYWMzZWUzMWMxYTFmMWY5MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBQcm9maWxlIDogcHVibGljIFJl
ZkNvdW50ZWQ8UHJvZmlsZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2Zp
bGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7Cisg
ICAgc3RhdGljIFJlZjxQcm9maWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWdu
ZWQgdWlkLCBkb3VibGUpOwogICAgIHZpcnR1YWwgflByb2ZpbGUoKTsKIAogICAgIGNvbnN0IFN0
cmluZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKaW5kZXggNTZjZGY2
ZjY3M2VhOGZjNTA2MmMwOTg3ZjBmNzRkNmZjY2ExNDlhNC4uZjcwZTRhM2Y2NDk5ZDRkMGI0ODZj
MTJlMDBkODM5MDE1ZDlkNTJhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcApAQCAtMzksOSArMzksOSBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotUGFzc1JlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2VuZXJhdG9y
OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1
aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCitSZWY8UHJvZmlsZUdlbmVyYXRv
cj4gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZmlsZUdlbmVyYXRvcihleGVjLCB0aXRsZSwg
dWlkLCBzdG9wd2F0Y2gpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlR2VuZXJh
dG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkpOwogfQogCiBQcm9maWxlR2VuZXJhdG9y
OjpQcm9maWxlR2VuZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwg
dW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKaW5kZXggM2Uz
MDFhZTM2OTk4ZmE2YjhlMDA5ZDg2OTYwNGY3ZTA1NWMwZGIzMy4uMzg3ZWQ1ZjRhNzA0NDMzZDA2
M2RjN2M2OTExYmRlMTgzMTE1ZDhmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgY2xhc3MgUHJvZmlsZUdlbmVyYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBy
b2ZpbGVHZW5lcmF0b3I+ICB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQcm9maWxlR2VuZXJhdG9yPiBjcmVhdGUoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcm
IHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7CisgICAgICAgIHN0
YXRpYyBSZWY8UHJvZmlsZUdlbmVyYXRvcj4gY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6
U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwogCiAg
ICAgICAgIC8vIE1lbWJlcnMKICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5v
ZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oCmluZGV4
IDlhYzU1NjU5ZTk5ZDZkZDczY2MzYzMwOTVmMzc2YmQ5YTI4ZDA0YzMuLmZjYWVlMGUyNDIyOTlj
NjU2YjVhNWE3NjdhMDQxMWQ1NWFlZGU3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlTm9kZS5oCkBAIC00NCwxNCArNDQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBjbGFzcyBQcm9maWxlTm9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb2ZpbGVOb2Rl
PiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4g
Y3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYg
Y2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQorICAgICAgICBzdGF0aWMg
UmVmPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0
IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllciwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZmlsZU5vZGUo
Y2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciwgcGFyZW50Tm9kZSkpOworICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZU5vZGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxs
SWRlbnRpZmllciwgcGFyZW50Tm9kZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8UHJvZmlsZU5vZGU+IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwg
UHJvZmlsZU5vZGUqIG5vZGUpCisgICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+IGNyZWF0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgUHJvZmlsZU5vZGUqIG5vZGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZmlsZU5vZGUoY2FsbGVyQ2Fs
bEZyYW1lLCBub2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxl
Tm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0cnVj
dCBDYWxsIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFW
aWV3LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmNwcAppbmRl
eCAwYzgzZDZlOTViMGUyNGM0OWVhNGY5OTA5NDhmMTJlNGE0Y2EwMmI3Li43OGU3NDNmYzE1Zjgw
YmJmZjUyNmY4ZTc3MzY5ZTNiMDE2NDc3YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRhVmlldy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0YVZpZXcuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgRGF0YVZpZXc6OkRhdGFWaWV3
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQKIHsKIH0KIAotUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZSgKK1Jl
ZjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZSgKICAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVM
ZW5ndGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVP
ZmZzZXQsIGJ5dGVMZW5ndGgpKTsKIH0KIAotUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6
OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBwYXNzZWRCdWZmZXIpCitSZWY8RGF0YVZp
ZXc+IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2VkQnVmZmVy
KQogewogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gcGFzc2VkQnVmZmVyOwogICAg
IHJldHVybiBjcmVhdGUoYnVmZmVyLCAwLCBidWZmZXItPmJ5dGVMZW5ndGgoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaAppbmRleCA0YThhYTkyNThhZDExOWI1NzQ5
MjNiODc4NzU2ZWE4OGE0MGIwNjhjLi5hMDFkMTM1MDY2OWYzYzc1ZWNhYTU3ZGNiMjQ2NDNhNzBj
ZWYwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmll
dy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKQEAgLTM3
LDggKzM3LDggQEAgcHJvdGVjdGVkOgogICAgIERhdGFWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKICAgICAKIHB1
YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4g
Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4pOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8
RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgUmVmPERhdGFWaWV3PiBjcmVhdGUo
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4pOwogICAgIAogICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0
ZUxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKaW5kZXggNWY4YjFiMjY1YTAxNGEyNWFm
ODU4YmUxNzlhMGQ1Y2FhYmM0N2Y3YS4uNmViYmIwZDk4YmIzYjUwZmQ3OWQ3ZTY3MzE2MmE1ODg3
NmZhN2RlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2VDYWNoZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBE
YXRlSW5zdGFuY2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0ZUluc3RhbmNlRGF0YT4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVJbnN0YW5jZURhdGE+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRlSW5zdGFuY2VEYXRhKTsgfQorICAgIHN0YXRpYyBS
ZWY8RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRl
SW5zdGFuY2VEYXRhKTsgfQogCiAgICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRG
b3JNUzsKICAgICBHcmVnb3JpYW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24u
Y3BwCmluZGV4IDFhOTRjNzE5NWUzNWVlNzJmZWE2ZjBmOTU4ZTQ5ZDUxZTM2MTBkZjUuLmY1M2Nj
Y2I1YTM2MjliYzAzYTFhZWM4MjM4ZjhkMTBhM2MyZmNkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKQEAgLTU5LDkgKzU5
LDkgQEAgcHJpdmF0ZToKICAgICBTdHJvbmc8VW5rbm93bj4gbV9hcmd1bWVudDsKIH07CiAKLVBh
c3NSZWZQdHI8TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNr
KFZNJiB2bSwgSlNQcm9taXNlUmVhY3Rpb24qIHJlYWN0aW9uLCBKU1ZhbHVlIGFyZ3VtZW50KQor
UmVmPE1pY3JvdGFzaz4gY3JlYXRlRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayhWTSYg
dm0sIEpTUHJvbWlzZVJlYWN0aW9uKiByZWFjdGlvbiwgSlNWYWx1ZSBhcmd1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2sodm0s
IHJlYWN0aW9uLCBhcmd1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4ZWN1dGVQ
cm9taXNlUmVhY3Rpb25NaWNyb3Rhc2sodm0sIHJlYWN0aW9uLCBhcmd1bWVudCkpOwogfQogCiB2
b2lkIEV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2s6OnJ1bihFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFj
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24u
aAppbmRleCAwOWJlMmRmYmE0NThjMDFhZjQxNjJhMjhlOTA1YmE2ZDU0YWZjMTc4Li43NjcyOGY0
NWUyMWE0YzdkYThjMzk0OTQ1MGFhY2Y0ODBjZjI5YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmgKQEAgLTYxLDcgKzYxLDcgQEAg
cHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV9oYW5kbGVyOwogfTsKIAotUGFz
c1JlZlB0cjxNaWNyb3Rhc2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2so
Vk0mLCBKU1Byb21pc2VSZWFjdGlvbiosIEpTVmFsdWUpOworUmVmPE1pY3JvdGFzaz4gY3JlYXRl
RXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayhWTSYsIEpTUHJvbWlzZVJlYWN0aW9uKiwg
SlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAppbmRleCA5MWFmM2EyNzhlNjU5YzBj
OGFlYmY4ZmU2ZWM5MWZlMGQ5MmFlYzE3Li5jMmYxM2Q4YzM3MjlhZTVhYjdiZDM5ZGI3NGUzNDU4
ODNlNGM4NjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU5hbWVBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5LmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgUHJvcGVydHlOYW1lQXJyYXlE
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBWZWN0b3I8SWRlbnRpZmllciwgMjA+IFByb3BlcnR5TmFtZVZlY3RvcjsK
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5TmFtZUFycmF5RGF0YSk7IH0KKyAgICBzdGF0
aWMgUmVmPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQcm9wZXJ0eU5hbWVBcnJheURhdGEpOyB9CiAKICAgICBQcm9wZXJ0eU5hbWVWZWN0b3Im
IHByb3BlcnR5TmFtZVZlY3RvcigpIHsgcmV0dXJuIG1fcHJvcGVydHlOYW1lVmVjdG9yOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAppbmRleCBkOGY1MWVhNjI4MTNm
YjA4Y2UyYTYyMTRkOTIxNmFmYmQwOTQzOGVkLi5lYjI5ZTZjNWYzMzdiMzIzYTExM2VlMDdiZTFk
Nzg4Y2MyNmM0N2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5oCkBA
IC01Myw3ICs1Myw3IEBAIGNsYXNzIFN0cnVjdHVyZVNoYXBlIDogcHVibGljIFJlZkNvdW50ZWQ8
U3RydWN0dXJlU2hhcGU+IHsKIHB1YmxpYzoKICAgICBTdHJ1Y3R1cmVTaGFwZSgpOwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlU2hhcGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTdHJ1Y3R1cmVTaGFwZSk7IH0KKyAgICBzdGF0aWMgUmVmPFN0cnVjdHVyZVNoYXBl
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0cnVjdHVyZVNoYXBlKTsgfQogICAg
IFN0cmluZyBwcm9wZXJ0eUhhc2goKTsKICAgICB2b2lkIG1hcmtBc0ZpbmFsKCk7CiAgICAgdm9p
ZCBhZGRQcm9wZXJ0eShVbmlxdWVkU3RyaW5nSW1wbCYpOwpAQCAtODIsNyArODIsNyBAQCBwcml2
YXRlOgogY2xhc3MgVHlwZVNldCA6IHB1YmxpYyBSZWZDb3VudGVkPFR5cGVTZXQ+IHsKIAogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBUeXBlU2V0KTsgfQorICAgIHN0YXRpYyBSZWY8VHlwZVNldD4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBlU2V0KTsgfQogICAgIFR5cGVTZXQoKTsKICAgICB2
b2lkIGFkZFR5cGVJbmZvcm1hdGlvbihSdW50aW1lVHlwZSwgUGFzc1JlZlB0cjxTdHJ1Y3R1cmVT
aGFwZT4sIFN0cnVjdHVyZSopOwogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5QmFzZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2UuaAppbmRleCBkNjQ4ZmNk
OGM5MmFhMTg0YjFkNTI0ZDY4ZDM0NmVhOGM1OWIzZGQ4Li5lZTI3NDZkNzhkODM2MDBlN2UyMWZl
YjViNmJlMTlmZjBhNWVkODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UeXBlZEFycmF5QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVkQXJyYXlCYXNlLmgKQEAgLTEwOCwyNiArMTA4LDI2IEBAIHByb3RlY3RlZDoKICAgICB9
CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U3ViY2xhc3M+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0aWMgUmVmUHRyPFN1YmNsYXNz
PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZihidWZmZXIpOwogICAgICAgICBpZiAoIXZlcmlmeVN1YlJhbmdlPFQ+KGJ1ZiwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdWJjbGFzcyhidWYucmVs
ZWFzZSgpLCBieXRlT2Zmc2V0LCBsZW5ndGgpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xh
c3MgU3ViY2xhc3M+Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3ViY2xhc3M+IGNyZWF0ZVVuaW5p
dGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWZQdHI8U3ViY2xhc3M+IGNy
ZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlVW5pbml0aWFsaXplZChs
ZW5ndGgsIHNpemVvZihUKSk7CiAgICAgICAgIGlmICghYnVmZmVyLmdldCgpKQotICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJu
IGNyZWF0ZTxTdWJjbGFzcz4oYnVmZmVyLnJlbGVhc2UoKSwgMCwgbGVuZ3RoKTsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgU3ViY2xhc3M+Ci0gICAgUGFzc1JlZlB0cjxTdWJjbGFzcz4g
c3ViYXJyYXlJbXBsKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKKyAgICBSZWZQdHI8U3ViY2xh
c3M+IHN1YmFycmF5SW1wbChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CiAgICAgewogICAgICAg
ICB1bnNpZ25lZCBvZmZzZXQsIGxlbmd0aDsKICAgICAgICAgY2FsY3VsYXRlT2Zmc2V0QW5kTGVu
Z3RoKHN0YXJ0LCBlbmQsIG1fbGVuZ3RoLCAmb2Zmc2V0LCAmbGVuZ3RoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBiODlkM2ViNDAzN2E3NTMzYzM1YjY2YmNhMjRiMjUx
Mzg3YjkxMTI3Li42YTRiODRjNTRlMzFkNjk0N2VmOThkZTQ4NDhlYjc4NTY3ZjQzY2FmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0zNDAsMTcgKzM0MCwxNyBAQCBWTTo6
flZNKCkKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPFZNPiBWTTo6Y3JlYXRlQ29udGV4dEdyb3Vw
KEhlYXBUeXBlIGhlYXBUeXBlKQorUmVmPFZNPiBWTTo6Y3JlYXRlQ29udGV4dEdyb3VwKEhlYXBU
eXBlIGhlYXBUeXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVk0oQVBJQ29udGV4dEdy
b3VwLCBoZWFwVHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZNKEFQSUNvbnRleHRH
cm91cCwgaGVhcFR5cGUpKTsKIH0KIAotUGFzc1JlZlB0cjxWTT4gVk06OmNyZWF0ZShIZWFwVHlw
ZSBoZWFwVHlwZSkKK1JlZjxWTT4gVk06OmNyZWF0ZShIZWFwVHlwZSBoZWFwVHlwZSkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFZNKERlZmF1bHQsIGhlYXBUeXBlKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVk0oRGVmYXVsdCwgaGVhcFR5cGUpKTsKIH0KIAotUGFzc1JlZlB0cjxW
TT4gVk06OmNyZWF0ZUxlYWtlZChIZWFwVHlwZSBoZWFwVHlwZSkKK1JlZjxWTT4gVk06OmNyZWF0
ZUxlYWtlZChIZWFwVHlwZSBoZWFwVHlwZSkKIHsKICAgICByZXR1cm4gY3JlYXRlKGhlYXBUeXBl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDQ3ODE2MWRmNjk2OTk4Nzdj
MzQ1NzEzZmI2MmE0ZWE0YWI1N2YzOTEuLjFkNzIyZjlhYzAzODdhNDE4N2Q4MGYxMmFmNDUyOGMz
MmVhYTU1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMjEzLDkgKzIxMyw5
IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBzaGFyZWRJbnN0
YW5jZUV4aXN0cygpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBWTSYgc2hhcmVkSW5z
dGFuY2UoKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPFZNPiBj
cmVhdGUoSGVhcFR5cGUgPSBTbWFsbEhlYXApOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBQYXNzUmVmUHRyPFZNPiBjcmVhdGVMZWFrZWQoSGVhcFR5cGUgPSBTbWFsbEhlYXApOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFZNPiBjcmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgPSBTbWFs
bEhlYXApOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8Vk0+IGNyZWF0ZShIZWFw
VHlwZSA9IFNtYWxsSGVhcCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWTT4g
Y3JlYXRlTGVha2VkKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKKyAgICBzdGF0aWMgUmVmPFZNPiBj
cmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgPSBTbWFsbEhlYXApOwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIH5WTSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RSZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3Bw
CmluZGV4IGY5ZTJjNDdhZTQzMTllZDc5ZDFlZWViMzQzZTJhYmM4YWQ0ODE5ZDAuLmQxOTQxNTky
YmQ3OWZhZmVhNzVmNGIwODBhMDI2YjY3OTkxOWM2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dFJlZ0V4cC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCBzdGF0aWMgdm9pZCBwYXJzZUFyZ3VtZW50
cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIENvbW1hbmRMaW5lJiBvcHRpb25zKQogCiBpbnQgcmVh
bE1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewotICAgIFZNKiB2bSA9IFZNOjpjcmVhdGUo
TGFyZ2VIZWFwKS5sZWFrUmVmKCk7CisgICAgVk0qIHZtID0gJlZNOjpjcmVhdGUoTGFyZ2VIZWFw
KS5sZWFrUmVmKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CiAKICAgICBDb21tYW5k
TGluZSBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVn
dWxhckV4cHJlc3Npb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVndWxhckV4
cHJlc3Npb24uY3BwCmluZGV4IGY0YWFlYzk5ODA3MjI1ZGVmMzM2NjU4MTA3MjkxYjAzNWRkMjcy
YTEuLjBjNzA4OTY1NDYyM2U1ZjY2NDY5YTRhZGM2ZGVhMWQwZjRkOTBkNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKQEAgLTM3LDkg
KzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBZYXJyIHsKIAogY2xhc3MgUmVndWxh
ckV4cHJlc3Npb246OlByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWd1bGFyRXhwcmVzc2lv
bjo6UHJpdmF0ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByaXZhdGU+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHBhdHRlcm4sIFRleHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNp
dGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUpCisgICAgc3RhdGljIFJlZjxQcml2
YXRlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNh
c2VTZW5zaXRpdml0eSwgTXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2RlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcml2YXRlKHBhdHRlcm4sIGNhc2VTZW5zaXRpdml0eSwg
bXVsdGlsaW5lTW9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcml2YXRlKHBh
dHRlcm4sIGNhc2VTZW5zaXRpdml0eSwgbXVsdGlsaW5lTW9kZSkpOwogICAgIH0KIAogICAgIGlu
dCBsYXN0TWF0Y2hMZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAppbmRleCBiYzAyYjE1NDE2Mjc0ZjVlNTUyNDk5M2I3ZDRiZDFlNWU0MjA2
NjdlLi44ZGNlNDQyYTQyZmFjOWQyMjEyY2YyMGQ5N2UwZTBlMDg1Njc0NDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTIwMSw3ICsy
MDEsNyBAQCBWTSYgSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpCiAgICAgc3RhdGljIFZNKiB2
bSA9IG51bGxwdHI7CiAgICAgaWYgKCF2bSkgewogICAgICAgICBTY3JpcHRDb250cm9sbGVyOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgICAgIHZtID0gVk06OmNyZWF0ZUxlYWtlZChMYXJn
ZUhlYXApLmxlYWtSZWYoKTsKKyAgICAgICAgdm0gPSAmVk06OmNyZWF0ZUxlYWtlZChMYXJnZUhl
YXApLmxlYWtSZWYoKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICB2bS0+c2V0RXhjbHVz
aXZlVGhyZWFkKHN0ZDo6dGhpc190aHJlYWQ6OmdldF9pZCgpKTsKICNlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254525</attachid>
            <date>2015-06-08 17:08:59 -0700</date>
            <delta_ts>2015-06-08 18:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145750-20150609090838.patch</filename>
            <type>text/plain</type>
            <size>51908</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZDdiMWFlYmI4NzI3ODRiZDc2ZjNhYjUyMzA1NzA2M2MxMTVjNTdkLi5kNWFkYzA1MWE1ODcyOTI2
ZTM5MzE1YzQwYTBmYWQzOTNlOGQxYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMTUtMDYtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQ
SS9KU0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAg
ICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUp
OgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KToKKyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGlj
UHJvcGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
OjpjcmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6
R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNj
cmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZN
YW5hZ2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5
UGF0dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpj
cmVhdGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6OkRh
dGFWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5j
ZURhdGE6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OmNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2spOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5RGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlU2hhcGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAoSlNDOjpUeXBl
ZEFycmF5QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQpOgorICAgICAgICAoSlNDOjpUeXBlZEFycmF5QmFzZTo6c3ViYXJyYXlJ
bXBsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0
ZUNvbnRleHRHcm91cCk6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpWTTo6Y3JlYXRlTGVha2VkKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICog
eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ3VsYXJF
eHByZXNzaW9uOjpQcml2YXRlOjpjcmVhdGUpOgorCiAyMDE1LTA2LTA3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHRpbnkgc2V0IG1hZ2ljIGluIFN0cnVj
dHVyZVNldCBzaG91bGQgYmUgYXZhaWxhYmxlIGluIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NmNlODM0
ZmFiNWZlZGM5MzgyZjlkMzNjNGIzMjY5NWQ2YTk0M2MuLjhlZDViM2ZmZTBlY2MzYjc4YWU1YmQ3
NDE1NmZlOGNmZjg5MjI2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNi0w
OCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVy
Z2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHB1cmdlIFBhc3NSZWZQdHIsIHRo
aXMgcGF0Y2ggcmVwbGFjZXMgUGFzc1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
QmFzZTo6Y29tbW9uVk0pOgorCiAyMDE1LTA2LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViQ29udGVudCBjcmFzaCBpbiBXZWJDb3JlOjpQYWdlOjpzZXNz
aW9uSUQoKSBjb25zdCArIDAgKFBhZ2UuY3BwOjE2NjApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NsYXNzUmVmLmNwcAppbmRleCBlMzU0N2QyZjVkM2NkMDQyM2NiYjQ1YTJmMTM4Yzc0NzRl
YWRiYjllLi5hOGU3Y2I3ZDQ1NWQyZDAxYjk0OTI2ZjIzOGExY2UwYjNhMTEyOGM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKQEAgLTEwOCw5ICsxMDgsOSBAQCBP
cGFxdWVKU0NsYXNzOjp+T3BhcXVlSlNDbGFzcygpCiAgICAgICAgIEpTQ2xhc3NSZWxlYXNlKHBy
b3RvdHlwZUNsYXNzKTsKIH0KIAotUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0Ns
YXNzOjpjcmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiog
ZGVmaW5pdGlvbikKK1JlZjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1
dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwog
fQogCiBQYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZShjb25z
dCBKU0NsYXNzRGVmaW5pdGlvbiogY2xpZW50RGVmaW5pdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NsYXNzUmVmLmgKaW5kZXggZDI5OGExNjE5Yzk2NmNkZWFhYzYwOTlmZDkyNDk4MjVi
MzdkNWMwZS4uNjg3ZDhiOWI5NGQ5MTgzYjhhNjk5MzA5MzAyZTdiZGZkNzU0NzZlYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGlj
OgogCiBzdHJ1Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxP
cGFxdWVKU0NsYXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3Jl
YXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3Bh
cXVlSlNDbGFzcz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmlu
aXRpb24qKTsKKyAgICBzdGF0aWMgUmVmPE9wYXF1ZUpTQ2xhc3M+IGNyZWF0ZU5vQXV0b21hdGlj
UHJvdG90eXBlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgfk9wYXF1ZUpTQ2xhc3MoKTsKICAgICAKICAgICBTdHJpbmcgY2xhc3NOYW1lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggNTg4OTkxODc5NDlm
ZGVlODljZmM0ZjdiMmZhYmRiMjNhZTNjODk5OC4uNDk3NmMyOWFlZWVmOTEzOTNiYjBhODcyOWU1
MDA2NDcyNjRjMWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcApAQCAtNzYsNyArNzYsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0M6
OmphdmFTY3JpcHRDb3JlQVBJR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBKU0NvbnRleHRH
cm91cFJlZiBKU0NvbnRleHRHcm91cENyZWF0ZSgpCiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwotICAgIHJldHVybiB0b1JlZihWTTo6Y3JlYXRlQ29udGV4dEdyb3VwKCkubGVha1JlZigp
KTsKKyAgICByZXR1cm4gdG9SZWYoJlZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKS5sZWFrUmVmKCkp
OwogfQogCiBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cFJldGFpbihKU0NvbnRleHRH
cm91cFJlZiBncm91cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
Y3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAK
aW5kZXggOTlkN2YzMWU3ODNmMjZiYWMxYjdkYWEwNjM0MmY4MjRlZDY2ZTVkNi4uNDc0N2Q5N2Y2
Mjc1NWY1YTUwMTEwZGRjMzExMzE2NTg2NjEzNDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpQYXNzUmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUo
Vk0qIHZtLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCisgICAgc3RhdGljIFdURjo6UmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBj
cmVhdGUoVk0qIHZtLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJl
ZihuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2Up
KTsKKyAgICAgICAgcmV0dXJuIFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwg
dXJsLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Y29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU3RyaW5nUmVmLmNwcAppbmRleCAzYjc1ZjNkZmE5ZjcxYzJkODM2MDU4YTBhZGJk
Yzg0YTZjZDJkMGY1Li5jOWIzODBjZTY1NDE1OWQzY2QxMWViZTI1OTA0NmJjNjkxZWQwZmZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcApAQCAtMzcsNyArMzcs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogSlNTdHJpbmdSZWYgSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMp
CiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIHJldHVybiBPcGFxdWVKU1N0cmlu
Zzo6Y3JlYXRlKGNoYXJzLCBudW1DaGFycykubGVha1JlZigpOworICAgIHJldHVybiAmT3BhcXVl
SlNTdHJpbmc6OmNyZWF0ZShjaGFycywgbnVtQ2hhcnMpLmxlYWtSZWYoKTsKIH0KIAogSlNTdHJp
bmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQpA
QCAtNTEsMTIgKzUxLDEyIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGNvbnN0IGNoYXIqIHN0cmluZykKICAgICAgICAgY29uc3QgTENoYXIqIHN0cmluZ1N0YXJ0
ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHN0cmluZyk7CiAgICAgICAgIGlmIChj
b252ZXJzaW9uT0sgPT0gY29udmVydFVURjhUb1VURjE2KCZzdHJpbmcsIHN0cmluZyArIGxlbmd0
aCwgJnAsIHAgKyBsZW5ndGgsICZzb3VyY2VJc0FsbEFTQ0lJKSkgewogICAgICAgICAgICAgaWYg
KHNvdXJjZUlzQWxsQVNDSUkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5n
OjpjcmVhdGUoc3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOwotICAgICAgICAgICAgcmV0
dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRh
KCkpLmxlYWtSZWYoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUoc3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOworICAgICAgICAgICAgcmV0dXJu
ICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgp
KS5sZWFrUmVmKCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVh
dGUoKS5sZWFrUmVmKCk7CiB9CiAKIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJh
Y3RlcnNOb0NvcHkoY29uc3QgSlNDaGFyKiBjaGFycywgc2l6ZV90IG51bUNoYXJzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5jcHAKaW5kZXggNTI0MWE5YmNlMWQw
MzY4NDgwNWQ5ZDEzMTI5Y2Q5NmVkNDMxYjZhNi4uMDU4NzI1OTNmNmRiYjlhODUzYTgxNjFhNjli
YmRmNzQyYTIzMzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0
cmluZ1JlZkNGLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVm
Q0YuY3BwCkBAIC00MSwxOCArNDEsMTggQEAgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRo
Q0ZTdHJpbmcoQ0ZTdHJpbmdSZWYgc3RyaW5nKQogICAgIC8vIGl0IGNhbiBob2xkLiAgKDxyZGFy
Oi8vcHJvYmxlbS82ODA2NDc4PikKICAgICBzaXplX3QgbGVuZ3RoID0gQ0ZTdHJpbmdHZXRMZW5n
dGgoc3RyaW5nKTsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3Ry
aW5nOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1Jl
ZigpOworICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1JlZigpOwogCiAgICAgVmVjdG9yPExDaGFy
LCAxMDI0PiBsY2hhckJ1ZmZlcihsZW5ndGgpOwogICAgIENGSW5kZXggdXNlZEJ1ZmZlckxlbmd0
aDsKICAgICBDRkluZGV4IGNvbnZlcnRlZFNpemUgPSBDRlN0cmluZ0dldEJ5dGVzKHN0cmluZywg
Q0ZSYW5nZU1ha2UoMCwgbGVuZ3RoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIDAsIGZh
bHNlLCBsY2hhckJ1ZmZlci5kYXRhKCksIGxlbmd0aCwgJnVzZWRCdWZmZXJMZW5ndGgpOwogICAg
IGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KGNvbnZlcnRlZFNpemUpID09IGxlbmd0aCAmJiBzdGF0
aWNfY2FzdDxzaXplX3Q+KHVzZWRCdWZmZXJMZW5ndGgpID09IGxlbmd0aCkKLSAgICAgICAgcmV0
dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUobGNoYXJCdWZmZXIuZGF0YSgpLCBsZW5ndGgpLmxl
YWtSZWYoKTsKKyAgICAgICAgcmV0dXJuICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGxjaGFyQnVm
ZmVyLmRhdGEoKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiAKICAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8VW5pQ2hhcltdPihsZW5ndGgpOwogICAgIENGU3RyaW5nR2V0Q2hhcmFjdGVy
cyhzdHJpbmcsIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlci5nZXQoKSk7CiAgICAgc3Rh
dGljX2Fzc2VydChzaXplb2YoVW5pQ2hhcikgPT0gc2l6ZW9mKFVDaGFyKSwgIlVuaUNoYXIgYW5k
IFVDaGFyIG11c3QgYmUgc2FtZSBzaXplIik7Ci0gICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGJ1ZmZlci5nZXQoKSksIGxlbmd0aCkubGVh
a1JlZigpOworICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShyZWludGVycHJldF9j
YXN0PFVDaGFyKj4oYnVmZmVyLmdldCgpKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiB9CiAKIENGU3Ry
aW5nUmVmIEpTU3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgSlNT
dHJpbmdSZWYgc3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3Ry
aW5nLmNwcAppbmRleCA3ZjllZGI0MTM2ZTI3NDk5NzQ3ZDI5NmQyZjFhMmRjNDg5YjA0NDNkLi4w
N2E3OWFkOTllNmRjN2YzMWM1ZjhmYmFhOTI0MWVmMTJmZWEyNGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCi1QYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBPcGFxdWVK
U1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVmUHRyPE9wYXF1ZUpTU3Ry
aW5nPiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAg
IGlmIChzdHJpbmcuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oCmluZGV4IDAzYWU1Nzc5MDRjY2FiNTdm
YjQwN2ZjNTUxNGRjODM5MzFmNjkwYTQuLjIwODEzMWIzYjQxNThlN2M2ZmNmZGU5MWU0NmMzNTc3
ODk3YWRjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNT
dHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgK
QEAgLTM2LDIyICszNiwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKIH0KIAogc3RydWN0IE9wYXF1ZUpT
U3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1ZUpTU3RyaW5nPiB7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFJlZjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgT3BhcXVlSlNTdHJpbmcpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBP
cGFxdWVKU1N0cmluZyk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNT
dHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQor
ICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNT
dHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0
ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJp
bmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVh
dGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVlSlNTdHJp
bmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9T
dGF0aWNQcm9wZXJ0eUFuYWx5c2lzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaAppbmRleCAyOTNjMjI0MTRhNjIxMGJlMWZmN2U3
YjFlMjhmYTRmMzUyMjQwMDAwLi41YTk5MThkZDE1ODBhY2Y3OTE5M2JmMWM0NzI5YWJiMjRhZTY5
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1N0YXRp
Y1Byb3BlcnR5QW5hbHlzaXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIC8vIFJlZmVyZW5jZSBjb3VudCBpbmRpY2F0ZXMgbnVtYmVyIG9mIGxpdmUgcmVnaXN0
ZXJzIHRoYXQgYWxpYXMgdGhpcyBvYmplY3QuCiBjbGFzcyBTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
IDogcHVibGljIFJlZkNvdW50ZWQ8U3RhdGljUHJvcGVydHlBbmFseXNpcz4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM+IGNyZWF0ZShWZWN0
b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+KiBpbnN0cnVj
dGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKKyAgICBzdGF0aWMgUmVmPFN0YXRpY1Byb3BlcnR5QW5h
bHlzaXM+IGNyZWF0ZShWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9y
T3ZlcmZsb3c+KiBpbnN0cnVjdGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RhdGljUHJvcGVydHlBbmFseXNpcyhpbnN0cnVjdGlvbnMs
IHRhcmdldCkpOyAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RhdGljUHJvcGVydHlB
bmFseXNpcyhpbnN0cnVjdGlvbnMsIHRhcmdldCkpOyAKICAgICB9CiAKICAgICB2b2lkIGFkZFBy
b3BlcnR5SW5kZXgodW5zaWduZWQgcHJvcGVydHlJbmRleCkgeyBtX3Byb3BlcnR5SW5kZXhlcy5h
ZGQocHJvcGVydHlJbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmgKaW5kZXggNWM3ZDc1YWRjOTQ4YjI2NTEyMjkwODM3MTU3
NWFjMmM1N2JkN2Q2NC4uZGY2MWM2YWEzOTM1NTQ3YWM3ODUxNzNkZWUxMDdiNTBjM2E0MGY2YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgRGVidWdnZXJDYWxsRnJhbWUgOiBwdWJsaWMg
UmVmQ291bnRlZDxEZWJ1Z2dlckNhbGxGcmFtZT4gewogcHVibGljOgogICAgIGVudW0gVHlwZSB7
IFByb2dyYW1UeXBlLCBGdW5jdGlvblR5cGUgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERl
YnVnZ2VyQ2FsbEZyYW1lPiBjcmVhdGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCisgICAgc3RhdGlj
IFJlZjxEZWJ1Z2dlckNhbGxGcmFtZT4gY3JlYXRlKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWJ1Z2dlckNhbGxGcmFtZShjYWxsRnJh
bWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVidWdnZXJDYWxsRnJhbWUoY2Fs
bEZyYW1lKSk7CiAgICAgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgRGVidWdn
ZXJDYWxsRnJhbWUoQ2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3Bw
CmluZGV4IGQwMTYyYjc5ZTVmNDYxYTU4OGE5YjJjZmQ0ZjBkMDI2ZjFmNjViMGYuLmRkODEwOGE3
NjA5OWY4YTY3ZmQzZmI3ZGRlMzMxMWY3NTk1OTk3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suY3BwCkBAIC00MywxMCArNDMsOSBAQCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soCiAKIFRvRlRMRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
KSB7IH0KIAotUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKLSAgICBQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gZGZnQ29kZUJsb2NrKQorUmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKFBhc3NSZWZQdHI8
Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb0ZU
TERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxv
Y2spKTsKIH0KIAogdm9pZCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGls
YXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oCmluZGV4IGYxYWM0YTY4ZmM2NDk3MzBhNjViNmRhYzA4ZWQ2OTU4MWJkMzk5MmYuLjNl
MGVhMDJkMGZhMjIzNjRiOGM2OTBmYjE3MTUxNTc5ZjExNGYxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKQEAgLTQ1LDggKzQ1LDcgQEAgcHJvdGVjdGVkOgogcHVibGljOgogICAg
IHZpcnR1YWwgflRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKAot
ICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKKyAgICBzdGF0aWMg
UmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxD
b2RlQmxvY2s+IGRmZ0NvZGVCbG9jayk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0
aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJlc3Vs
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNw
cAppbmRleCA0N2M0ZmJiZWM1MWVlZjk2Mjg1MjUyYjQ0ODAwYjA2OWMzZWM0ZGNhLi43MGNjODI1
MDIyNjJlMTczYzMwM2Y2NDg3MTg1ZDAzZmRkMWY1ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTQ1LDExICs0NSwxMCBAQCBU
b0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpbwogewogfQogCi1QYXNzUmVmUHRyPFRvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+Ci1Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoCitSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjaz5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrOjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jaykK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2sp
KTsKIH0KIAogdm9pZCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
Ojpjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IGM1M2RmOTFmNzY5ZDdm
ODAyNmE1YjRhYmNmNjc3ZWMxOTZjZjg0ZTQuLmM5ZGNmNmQ3YzAxZmMxZTQ4NTYwMDliOGZkNzMy
MWMwODllM2U0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5oCkBAIC00NSw4ICs0NSw3IEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrPiBjcmVhdGUoCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxv
Y2spOworICAgIHN0YXRpYyBSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spOwogICAg
IAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3Vz
bHkoQ29kZUJsb2NrKik7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUo
Q29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAppbmRleCA0YWExNDI4YTZjZGQ2ZGEwODU3ZmYzNTU1YzI3ZjVkMWQ0
MzI2M2ExLi40YThmNTcyMjQ4ZDBjYmI2ZDg4ZTIxZjRlYmE2YWJmNGRmNGQxNjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2
b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGlu
dCByZWxhdGl2ZVByaW9yaXR5KQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxXb3JrbGlzdD4gV29y
a2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJl
YWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0
ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVs
YXRpdmVQcmlvcml0eSkKIHsKLSAgICBSZWZQdHI8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVm
KG5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1lKSk7CiAgICAgcmVzdWx0LT5maW5p
c2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3JpdHkpOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAgV29ya2xpc3QqIGVuc3VyZUdsb2JhbERG
R1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2Jh
bFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdv
cmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3Jr
bGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVy
VGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSku
bGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3Jl
YXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygp
LCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigp
OwogICAgIH0pOwogICAgIHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTQyMiw3
ICs0MjIsNyBAQCBXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewot
ICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3Jr
bGlzdCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnBy
aW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRo
ZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9w
dGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVs
dGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJu
IHRoZUdsb2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5oCmluZGV4IGY2MWFlNGFlYjhjNzRjZTU5ZTk5MGRjYzZhMTQyOThlMDZjOWNhOTcuLmJk
NmU2ZmE3NWY2MjQwZTI3ZDMwZTYzMzI5NmQxYTU2NTI1MGZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAg
fldvcmtsaXN0KCk7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2xpc3Q+IGNyZWF0
ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVs
YXRpdmVQcmlvcml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3Ry
aW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQ
cmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+KTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2
aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2suaAppbmRleCAyOGNmZGRiNzdlYjgzOTM1ODNiMmM4YjdlZmI4NWUxZDI2MjljNWY2
Li5lMGZmNzg4NDU0NmJkYjg2ZGJjYTYxYTliNGQ4MWM1ZWYzY2VhOGVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpbmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKIAorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNr
IHsKQEAgLTQ5LDcgKzUxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgZG91YmxlIGRlYXRo
UmF0ZSgpIG92ZXJyaWRlOwogfTsKIAotaW5saW5lIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxi
YWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1lcihIZWFwKiBoZWFwKQoraW5s
aW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRl
RWRlblRpbWVyKEhlYXAqIGhlYXApCiB7CiAgICAgcmV0dXJuIHNfc2hvdWxkQ3JlYXRlR0NUaW1l
ciA/IGFkb3B0UmVmKG5ldyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApKSA6IG51bGxwdHI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0
eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNh
bGxiYWNrLmgKaW5kZXggODhjZWJkOWQ5NTk2NzM3MDNlNThmZGE2NzZiZmE2ZDgzM2VmOWNjZi4u
M2IxYjQ1MDA1YzU1YjA2NmM3YjkxZDZjNGU2NGQ3NzBkNTRkMDk4MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtNDks
NyArNDksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRlKCkgb3Zl
cnJpZGU7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0
aXZpdHlDYWxsYmFjazo6Y3JlYXRlRnVsbFRpbWVyKEhlYXAqIGhlYXApCitpbmxpbmUgUmVmUHRy
PEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVGdWxsVGltZXIo
SGVhcCogaGVhcCkKIHsKICAgICByZXR1cm4gc19zaG91bGRDcmVhdGVHQ1RpbWVyID8gYWRvcHRS
ZWYobmV3IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkpIDogbnVsbHB0cjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggZjMw
YzI3NzBlNjQ3ZjFlYzc0ZTY3NTVmZDk3YWFiMGRjZWYzM2VkOS4uM2QwN2VmYWEyZTE2Mzg3NWIw
MmEzMmRjMDdiODA5Y2RlY2YyOWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNkZWZpbmUgR0NBY3Rp
dml0eUNhbGxiYWNrX2gKIAogI2luY2x1ZGUgIkhlYXBUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgVVNFKENGKQogI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC00Myw4ICs0Myw4IEBA
IGNsYXNzIEhlYXA7CiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBHQ0FjdGl2aXR5Q2FsbGJhY2sg
OiBwdWJsaWMgSGVhcFRpbWVyLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R0NBY3Rpdml0
eUNhbGxiYWNrPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBjcmVhdGVGdWxsVGltZXIoSGVh
cCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRWRl
blRpbWVyKEhlYXAqKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3Jl
YXRlRnVsbFRpbWVyKEhlYXAqKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFj
az4gY3JlYXRlRWRlblRpbWVyKEhlYXAqKTsKIAogICAgIEdDQWN0aXZpdHlDYWxsYmFjayhIZWFw
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0SG9zdC5oCmluZGV4IGFmMWUwY2IxNTEwMzc1YWIzNDQwNmM0YzU5NDg2MDZhNjNjNzMy
Y2IuLmFlNTMwYTIwMjcyMGIyMTg1OTlmOGM5NjUxMDA4ZTc4YTc2NDQxYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaApA
QCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHRIb3N0IDogcHVibGljIFJlZkNvdW50ZWQ8SW5qZWN0ZWRT
Y3JpcHRIb3N0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRTY3Jp
cHRIb3N0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRTY3JpcHRIb3N0
KTsgfQorICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRTY3JpcHRIb3N0PiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IEluamVjdGVkU2NyaXB0SG9zdCk7IH0KICAgICB2aXJ0dWFsIH5Jbmpl
Y3RlZFNjcmlwdEhvc3QoKTsKIAogICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIHN1YnR5cGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpIHsgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaAppbmRleCBiMzQ0YzMzZmJkZWUyNDhkYWU3YzlmY2E5MTJlNDIwNzFkN2U1MzJm
Li41Y2ZiYjIzYmExYTFlOTNhM2VhMDJhNDI4MjI5NjhiNWJmNDVlNjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaApA
QCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3MgSmF2YVNjcmlw
dENhbGxGcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPEphdmFTY3JpcHRDYWxsRnJhbWU+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUo
UGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lPiBkZWJ1Z2dlckNhbGxGcmFtZSkKKyAg
ICBzdGF0aWMgUmVmPEphdmFTY3JpcHRDYWxsRnJhbWU+IGNyZWF0ZShQYXNzUmVmUHRyPEpTQzo6
RGVidWdnZXJDYWxsRnJhbWU+IGRlYnVnZ2VyQ2FsbEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZyYW1lKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEphdmFTY3JpcHRDYWxsRnJhbWUoZGVidWdn
ZXJDYWxsRnJhbWUpKTsKICAgICB9CiAKICAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYWxsZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJn
dW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcAppbmRleCA0MTAwYTNmOTk1ZTkzMzY2NGE5MzcxMGMzMGU4YzIxNGEwYjNiOGViLi41
MWQxZmU2NThkNTZhOTVhYWQ1YmRiYTQzMzlmYzJjOTJhYWVhM2M0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCkBAIC0zNyw5
ICszNyw5IEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1QYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gU2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0
YXRlLCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpCitSZWY8U2Ny
aXB0QXJndW1lbnRzPiBTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSogc2Ny
aXB0U3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFyZ3VtZW50cykKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmlwdEFyZ3VtZW50cyhzY3JpcHRTdGF0ZSwgYXJn
dW1lbnRzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2NyaXB0QXJndW1lbnRzKHNjcmlw
dFN0YXRlLCBhcmd1bWVudHMpKTsKIH0KIAogU2NyaXB0QXJndW1lbnRzOjpTY3JpcHRBcmd1bWVu
dHMoSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSwgVmVjdG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlPiYgYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
U2NyaXB0QXJndW1lbnRzLmgKaW5kZXggNTMzN2UwMTllMDljMzk1MTc4MDNiODRkNzc5ZmRiZmEz
MjEyYTc5MC4uNzIwMGFiNDhhZDY1NDNkZGE3MjcxNjg5MjI5YTM1ODNjZDQwZDkwMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oCkBA
IC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBTY3JpcHRBcmd1bWVudHMgOiBwdWJsaWMgUmVmQ291bnRlZDxTY3JpcHRBcmd1bWVu
dHM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGNy
ZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFy
Z3VtZW50cyk7CisgICAgc3RhdGljIFJlZjxTY3JpcHRBcmd1bWVudHM+IGNyZWF0ZShKU0M6OkV4
ZWNTdGF0ZSosIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFyZ3VtZW50cyk7CiAg
ICAgflNjcmlwdEFyZ3VtZW50cygpOwogCiAgICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUmIGFyZ3VtZW50QXQoc2l6ZV90KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YlJvdXRpbmUuaAppbmRleCA4NDk0OTJiMzRkODVkYTg2YzY5NTM4NzUzNDlmMDY2NTI2
ZTYyNGExLi5iMjExM2E2NWYxZjgzYTZkNzhlOTZhOTFhNzVkNGQxMzQ2NThkZTc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCkBAIC02MCwxMCArNjAsMTAg
QEAgcHVibGljOgogICAgIAogICAgIC8vIFVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIHBhc3MgYSBD
b2RlUHRyIHRvIHNvbWVvbmUgd2hvIGluc2lzdHMgb24gdGFraW5nCiAgICAgLy8gYSBSZWZQdHI8
SklUU3R1YlJvdXRpbmU+LgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBj
cmVhdGVTZWxmTWFuYWdlZFJvdXRpbmUoCisgICAgc3RhdGljIFJlZjxKSVRTdHViUm91dGluZT4g
Y3JlYXRlU2VsZk1hbmFnZWRSb3V0aW5lKAogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
cmF3Q29kZVBvaW50ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpJVFN0
dWJSb3V0aW5lKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVm
KHJhd0NvZGVQb2ludGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKSVRTdHVi
Um91dGluZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihy
YXdDb2RlUG9pbnRlcikpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+SklUU3R1YlJvdXRp
bmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKaW5kZXggNDc4NjMxMmRlZjA5
YjA0ZjAzYTQ1NmJiNmFlZTk2Yzc4YjZkMmEyYS4uZjdmMGFiOWJjNjE5YTE4OTAwNTQyODQ4MWEx
OGQzZTEwM2YyNzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTM3
LDkgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSB7IH0KIEpJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2soKSB7IH0KIAotUGFzc1JlZlB0cjxKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaz4gSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgp
CitSZWY8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IEpJVFRvREZHRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSk7CiB9CiAK
IHZvaWQgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNvbXBpbGF0aW9uRGlk
QmVjb21lUmVhZHlBc3luY2hyb25vdXNseSgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApp
bmRleCA1YTFjN2ZmMWM1MjQ0OGQ0ZGM5MmQyNWQyMmQ0YjcwOWExMTI0ZTIxLi5mNjRiOTc5Y2Vj
Y2NkNDM5MzJmMzJmZDg4ZDViNDZiMjY0YjU4MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oCkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgpOwor
ICAgIHN0YXRpYyBSZWY8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0
ZSgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5
bmNocm9ub3VzbHkoQ29kZUJsb2NrKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBp
bGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA4NzcwYWFiZWIzMWI4MmRiZTQxNzQ0YjZhOWIyMWEy
ZWUzM2NiYTAwLi4xNzVmMjg3MTNmNTcyYjVhYzFmMGRmMWZmMTQzZWQ1NWViYTQ1NDNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcApAQCAtMTUwNCw3ICsxNTA0LDcgQEAgaW50IGpzY21haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQogICAgIC8vIE5vdGUgdGhhdCB0aGUgb3B0aW9ucyBwYXJzaW5nIGNh
biBhZmZlY3QgVk0gY3JlYXRpb24sIGFuZCB0aHVzCiAgICAgLy8gY29tZXMgZmlyc3QuCiAgICAg
Q29tbWFuZExpbmUgb3B0aW9ucyhhcmdjLCBhcmd2KTsKLSAgICBWTSogdm0gPSBWTTo6Y3JlYXRl
KExhcmdlSGVhcCkubGVha1JlZigpOworICAgIFZNKiB2bSA9ICZWTTo6Y3JlYXRlKExhcmdlSGVh
cCkubGVha1JlZigpOwogICAgIGludCByZXN1bHQ7CiAgICAgewogICAgICAgICBKU0xvY2tIb2xk
ZXIgbG9ja2VyKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29u
c3RydWN0b3JzLmgKaW5kZXggZmVmMGY3MjM3ZjRhYTYzMTZkY2FhNDZiMzFjZmM4MTUzZGU0YjMy
Zi4uN2UyNmVjM2M4ZTQ1NWU4OWRiMWQyMGFlNjgyYTEyMDgyN2ZjZTc5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTk0Myw5ICs5
NDMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogICAgIAotICAgIGlubGluZSBQ
YXNzUmVmUHRyPEFycmF5UGF0dGVybk5vZGU+IEFycmF5UGF0dGVybk5vZGU6OmNyZWF0ZSgpCisg
ICAgaW5saW5lIFJlZjxBcnJheVBhdHRlcm5Ob2RlPiBBcnJheVBhdHRlcm5Ob2RlOjpjcmVhdGUo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcnJheVBhdHRlcm5Ob2RlKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXJyYXlQYXR0ZXJuTm9kZSk7CiAgICAgfQog
ICAgIAogICAgIGlubGluZSBPYmplY3RQYXR0ZXJuTm9kZTo6T2JqZWN0UGF0dGVybk5vZGUoKQpA
QCAtOTUzLDE0ICs5NTMsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KICAgICAK
LSAgICBpbmxpbmUgUGFzc1JlZlB0cjxPYmplY3RQYXR0ZXJuTm9kZT4gT2JqZWN0UGF0dGVybk5v
ZGU6OmNyZWF0ZSgpCisgICAgaW5saW5lIFJlZjxPYmplY3RQYXR0ZXJuTm9kZT4gT2JqZWN0UGF0
dGVybk5vZGU6OmNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9i
amVjdFBhdHRlcm5Ob2RlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqZWN0UGF0
dGVybk5vZGUpOwogICAgIH0KIAotICAgIGlubGluZSBQYXNzUmVmUHRyPEJpbmRpbmdOb2RlPiBC
aW5kaW5nTm9kZTo6Y3JlYXRlKGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHksIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCkKKyAgICBp
bmxpbmUgUmVmPEJpbmRpbmdOb2RlPiBCaW5kaW5nTm9kZTo6Y3JlYXRlKGNvbnN0IElkZW50aWZp
ZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGVuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmlu
ZGluZ05vZGUoYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBCaW5kaW5nTm9kZShib3VuZFByb3BlcnR5LCBzdGFydCwgZW5kKSk7CiAgICAg
fQogICAgIAogICAgIGlubGluZSBCaW5kaW5nTm9kZTo6QmluZGluZ05vZGUoY29uc3QgSWRlbnRp
ZmllciYgYm91bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcApp
bmRleCBmZjlhYTQ0YWQxNDc4YWI3MDkxZGFiNDgxNjU0MDI0ZDExZmEwNTNhLi4wN2UwZDM3ZmRm
Y2MxOTE2Zjk3NTQzYTI4MTFkNDQ3MTYxOTZhMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIEV2YWxOb2RlOjpFdmFsTm9kZShQYXJz
ZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnRMb2NhdGlv
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbkJvZHlOb2RlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0
ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZShQYXJhbWV0ZXJOb2RlKiBmaXJzdFBhcmFt
ZXRlcikKK1JlZjxGdW5jdGlvblBhcmFtZXRlcnM+IEZ1bmN0aW9uUGFyYW1ldGVyczo6Y3JlYXRl
KFBhcmFtZXRlck5vZGUqIGZpcnN0UGFyYW1ldGVyKQogewogICAgIHVuc2lnbmVkIHBhcmFtZXRl
ckNvdW50ID0gMDsKICAgICBmb3IgKFBhcmFtZXRlck5vZGUqIHBhcmFtZXRlciA9IGZpcnN0UGFy
YW1ldGVyOyBwYXJhbWV0ZXI7IHBhcmFtZXRlciA9IHBhcmFtZXRlci0+bmV4dFBhcmFtKCkpCkBA
IC0xNDcsNyArMTQ3LDcgQEAgUGFzc1JlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IEZ1bmN0aW9u
UGFyYW1ldGVyczo6Y3JlYXRlKFBhcmFtZXRlck5vZGUqIGZpcnN0UGEKIAogICAgIHNpemVfdCBv
YmplY3RTaXplID0gc2l6ZW9mKEZ1bmN0aW9uUGFyYW1ldGVycykgLSBzaXplb2Yodm9pZCopICsg
c2l6ZW9mKERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUqKSAqIHBhcmFtZXRlckNvdW50OwogICAg
IHZvaWQqIHNsb3QgPSBmYXN0TWFsbG9jKG9iamVjdFNpemUpOwotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgKHNsb3QpIEZ1bmN0aW9uUGFyYW1ldGVycyhmaXJzdFBhcmFtZXRlciwgcGFyYW1ldGVy
Q291bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyAoc2xvdCkgRnVuY3Rpb25QYXJhbWV0
ZXJzKGZpcnN0UGFyYW1ldGVyLCBwYXJhbWV0ZXJDb3VudCkpOwogfQogCiBGdW5jdGlvblBhcmFt
ZXRlcnM6OkZ1bmN0aW9uUGFyYW1ldGVycyhQYXJhbWV0ZXJOb2RlKiBmaXJzdFBhcmFtZXRlciwg
dW5zaWduZWQgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA5MmYx
YTIxZWI5ZjY2YzI5NzczOWI4NWU4YTU4YTFiZjkwZjUxM2IxLi43YjAwYzdmZTEzNzZiNzY4OTM2
OGVmZTYzZTRjMDEwZmM2NDQ0ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
CkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZ1bmN0aW9uUGFy
YW1ldGVycyk7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGdW5jdGlv
blBhcmFtZXRlcnM+IGNyZWF0ZShQYXJhbWV0ZXJOb2RlKik7CisgICAgICAgIHN0YXRpYyBSZWY8
RnVuY3Rpb25QYXJhbWV0ZXJzPiBjcmVhdGUoUGFyYW1ldGVyTm9kZSopOwogICAgICAgICB+RnVu
Y3Rpb25QYXJhbWV0ZXJzKCk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZTsgfQpAQCAtMTc4Miw3ICsxNzgyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBBcnJheVBhdHRlcm5Ob2RlIDogcHVibGljIERlY29uc3RydWN0aW9uUGF0dGVybk5v
ZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlQYXR0ZXJu
Tm9kZT4gY3JlYXRlKCk7CisgICAgICAgIHN0YXRpYyBSZWY8QXJyYXlQYXR0ZXJuTm9kZT4gY3Jl
YXRlKCk7CiAgICAgICAgIHZvaWQgYXBwZW5kSW5kZXgoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSogbm9kZSkKICAgICAgICAgewogICAgICAgICAgICAg
bV90YXJnZXRQYXR0ZXJucy5hcHBlbmQobm9kZSk7CkBAIC0xODAwLDcgKzE4MDAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAKICAgICBjbGFzcyBPYmplY3RQYXR0ZXJuTm9kZSA6IHB1YmxpYyBE
ZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE9iamVjdFBhdHRlcm5Ob2RlPiBjcmVhdGUoKTsKKyAgICAgICAgc3RhdGljIFJl
ZjxPYmplY3RQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CiAgICAgICAgIHZvaWQgYXBwZW5kRW50cnko
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgYm9v
bCB3YXNTdHJpbmcsIERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUqIHBhdHRlcm4pCiAgICAgICAg
IHsKICAgICAgICAgICAgIG1fdGFyZ2V0UGF0dGVybnMuYXBwZW5kKEVudHJ5KGlkZW50aWZpZXIs
IHdhc1N0cmluZywgcGF0dGVybikpOwpAQCAtMTgyNyw3ICsxODI3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBjbGFzcyBCaW5kaW5nTm9kZSA6IHB1YmxpYyBEZWNvbnN0cnVjdGlvblBhdHRl
cm5Ob2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJpbmRpbmdO
b2RlPiBjcmVhdGUoY29uc3QgSWRlbnRpZmllciYgYm91bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIHN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5kKTsKKyAgICAgICAgc3Rh
dGljIFJlZjxCaW5kaW5nTm9kZT4gY3JlYXRlKGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVy
dHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVu
ZCk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHkoKSBjb25zdCB7IHJl
dHVybiBtX2JvdW5kUHJvcGVydHk7IH0KIAogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RTdGFydDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4IDRmYzk1OTUyNzdjMzBi
ZjdiNDJmZDQzZDMxZjczZDllMzVhMDE2ZWEuLmNjY2FiZjM2OTY0ZjQxMWE2NGNiYWUyNTkyZDI0
ZjQyNGYwMjZiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmgKQEAgLTc0LDkgKzc0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBT
dHJpbmdTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVGV4dFBvc2l0
aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uOjptaW5pbXVtUG9zaXRpb24oKSkKKyAg
ICAgICAgc3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBv
c2l0aW9uID0gVGV4dFBvc2l0aW9uOjptaW5pbXVtUG9zaXRpb24oKSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2Us
IHVybCwgc3RhcnRQb3NpdGlvbikpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwsIHN0YXJ0UG9zaXRpb24pKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVy
cmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCmluZGV4IDA2
MjI0M2I0ZjY4YTAxOTZmOWVmMDEzZjhlMGY0N2Y2ODI3YjdmY2YuLmYzZDQ1MGFiMjMwMzgzMGRj
MjMxMDIxNTZjYjAxYzY5MzAyZDNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVBh
c3NSZWZQdHI8UHJvZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVu
c2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKK1JlZjxQcm9maWxlPiBQcm9maWxlOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZmlsZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlKHRpdGxlLCB1aWQsIHN0YXJ0VGlt
ZSkpOwogfQogCiBQcm9maWxlOjpQcm9maWxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVk
IHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZS5oCmluZGV4IGRiMTliZjhiMmIzNTYyMmE0ZTg5MDMzY2VmY2Y0MTI4ODRmNTNiNzIuLjQx
Y2I2NzBjYWU3Y2E5ZWIxN2FlNDY0ZGFjM2VlMzFjMWExZjFmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgUHJvZmlsZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFByb2ZpbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9maWxlPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUpOworICAgIHN0YXRp
YyBSZWY8UHJvZmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwg
ZG91YmxlKTsKICAgICB2aXJ0dWFsIH5Qcm9maWxlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIHRp
dGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmluZGV4IDU2Y2RmNmY2NzNlYThm
YzUwNjJjMDk4N2YwZjc0ZDZmY2NhMTQ5YTQuLmY3MGU0YTNmNjQ5OWQ0ZDBiNDg2YzEyZTAwZDgz
OTAxNWQ5ZDUyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZUdlbmVyYXRvci5jcHAKQEAgLTM5LDkgKzM5LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLVBhc3NSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNz
UmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQorUmVmPFByb2ZpbGVHZW5lcmF0b3I+IFByb2Zp
bGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUs
IHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVHZW5lcmF0b3IoZXhlYywgdGl0bGUsIHVpZCwgc3Rv
cHdhdGNoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZUdlbmVyYXRvcihleGVj
LCB0aXRsZSwgdWlkLCBzdG9wd2F0Y2gpKTsKIH0KIAogUHJvZmlsZUdlbmVyYXRvcjo6UHJvZmls
ZUdlbmVyYXRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVk
IHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmluZGV4IDNlMzAxYWUzNjk5
OGZhNmI4ZTAwOWQ4Njk2MDRmN2UwNTVjMGRiMzMuLjM4N2VkNWY0YTcwNDQzM2QwNjNkYzdjNjkx
MWJkZTE4MzExNWQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIGNsYXNzIFByb2ZpbGVHZW5lcmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlR2Vu
ZXJhdG9yPiAgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmls
ZUdlbmVyYXRvcj4gY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwg
dW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOworICAgICAgICBzdGF0aWMgUmVm
PFByb2ZpbGVHZW5lcmF0b3I+IGNyZWF0ZShFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYg
dGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKIAogICAgICAgICAv
LyBNZW1iZXJzCiAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaAppbmRleCA5YWM1NTY1
OWU5OWQ2ZGQ3M2NjM2MzMDk1ZjM3NmJkOWEyOGQwNGMzLi5mY2FlZTBlMjQyMjk5YzY1NmI1YTVh
NzY3YTA0MTFkNTVhZWRlNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZU5vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZU5vZGUuaApAQCAtNDQsMTQgKzQ0LDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
Y2xhc3MgUHJvZmlsZU5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlTm9kZT4gewogICAg
IHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+IGNyZWF0ZShF
eGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVu
dGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKKyAgICAgICAgc3RhdGljIFJlZjxQcm9m
aWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRl
bnRpZmllciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVOb2RlKGNhbGxlckNh
bGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIHBhcmVudE5vZGUpKTsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZp
ZXIsIHBhcmVudE5vZGUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVO
b2RlKiBub2RlKQorICAgICAgICBzdGF0aWMgUmVmPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0
YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFtZSwg
bm9kZSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZU5vZGUoY2Fs
bGVyQ2FsbEZyYW1lLCBub2RlKSk7CiAgICAgICAgIH0KIAogICAgICAgICBzdHJ1Y3QgQ2FsbCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5jcHAKaW5kZXggMGM4M2Q2
ZTk1YjBlMjRjNDllYTRmOTkwOTQ4ZjEyZTRhNGNhMDJiNy4uNzhlNzQzZmMxNWY4MGJiZmY1MjZm
OGU3NzM2OWUzYjAxNjQ3N2FkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0YVZpZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGFWaWV3LmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIERhdGFWaWV3OjpEYXRhVmlldyhQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkCiB7
CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoCitSZWY8RGF0YVZp
ZXc+IERhdGFWaWV3OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0LCBi
eXRlTGVuZ3RoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUo
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2VkQnVmZmVyKQorUmVmPERhdGFWaWV3PiBEYXRh
Vmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHBhc3NlZEJ1ZmZlcikKIHsKICAg
ICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHBhc3NlZEJ1ZmZlcjsKICAgICByZXR1cm4g
Y3JlYXRlKGJ1ZmZlciwgMCwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKaW5kZXggNGE4YWE5MjU4YWQxMTliNTc0OTIzYjg3ODc1
NmVhODhhNDBiMDY4Yy4uYTAxZDEzNTA2NjlmM2M3NWVjYWE1N2RjYjI0NjQzYTcwY2VmMGMxNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5oCkBAIC0zNyw4ICszNyw4
IEBAIHByb3RlY3RlZDoKICAgICBEYXRhVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAgICAgCiBwdWJsaWM6Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPERhdGFWaWV3
PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+KTsKICAgICAKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgo
KSBjb25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCmluZGV4IDVmOGIxYjI2NWEwMTRhMjVhZjg1OGJlMTc5
YTBkNWNhYWJjNDdmN2EuLjZlYmJiMGQ5OGJiM2I1MGZkNzlkN2U2NzMxNjJhNTg4NzZmYTdkZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNh
Y2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2Fj
aGUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgRGF0ZUluc3Rh
bmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVJbnN0YW5jZURhdGE+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlSW5zdGFuY2VEYXRhPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KKyAgICBzdGF0aWMgUmVmPERhdGVJ
bnN0YW5jZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZUluc3RhbmNl
RGF0YSk7IH0KIAogICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVM7CiAg
ICAgR3JlZ29yaWFuRGF0ZVRpbWUgbV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcAppbmRl
eCAxYTk0YzcxOTVlMzVlZTcyZmVhNmYwZjk1OGU0OWQ1MWUzNjEwZGY1Li5mNTNjY2NiNWEzNjI5
YmMwM2ExYWVjODIzOGY4ZDEwYTNjMmZjZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwCkBAIC01OSw5ICs1OSw5IEBAIHBy
aXZhdGU6CiAgICAgU3Ryb25nPFVua25vd24+IG1fYXJndW1lbnQ7CiB9OwogCi1QYXNzUmVmUHRy
PE1pY3JvdGFzaz4gY3JlYXRlRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayhWTSYgdm0s
IEpTUHJvbWlzZVJlYWN0aW9uKiByZWFjdGlvbiwgSlNWYWx1ZSBhcmd1bWVudCkKK1JlZjxNaWNy
b3Rhc2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mIHZtLCBKU1By
b21pc2VSZWFjdGlvbiogcmVhY3Rpb24sIEpTVmFsdWUgYXJndW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKHZtLCByZWFjdGlv
biwgYXJndW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeGVjdXRlUHJvbWlzZVJl
YWN0aW9uTWljcm90YXNrKHZtLCByZWFjdGlvbiwgYXJndW1lbnQpKTsKIH0KIAogdm9pZCBFeGVj
dXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrOjpydW4oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmgKaW5kZXgg
MDliZTJkZmJhNDU4YzAxYWY0MTYyYTI4ZTkwNWJhNmQ1NGFmYzE3OC4uNzY3MjhmNDVlMjFhNGM3
ZGE4YzM5NDk0NTBhYWNmNDgwY2YyOWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6
CiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1faGFuZGxlcjsKIH07CiAKLVBhc3NSZWZQdHI8
TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKFZNJiwgSlNQ
cm9taXNlUmVhY3Rpb24qLCBKU1ZhbHVlKTsKK1JlZjxNaWNyb3Rhc2s+IGNyZWF0ZUV4ZWN1dGVQ
cm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mLCBKU1Byb21pc2VSZWFjdGlvbiosIEpTVmFsdWUp
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKaW5kZXggOTFhZjNhMjc4ZTY1OWMwYzhhZWJmOGZl
NmVjOTFmZTBkOTJhZWMxNy4uYzJmMTNkOGMzNzI5YWU1YWI3YmQzOWRiNzRlMzQ1ODgzZTRjODY3
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1l
QXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5RGF0YSA6IHB1
YmxpYyBSZWZDb3VudGVkPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gewogcHVibGljOgogICAgIHR5
cGVkZWYgVmVjdG9yPElkZW50aWZpZXIsIDIwPiBQcm9wZXJ0eU5hbWVWZWN0b3I7CiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBQcm9wZXJ0eU5hbWVBcnJheURhdGEpOyB9CisgICAgc3RhdGljIFJlZjxQ
cm9wZXJ0eU5hbWVBcnJheURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJv
cGVydHlOYW1lQXJyYXlEYXRhKTsgfQogCiAgICAgUHJvcGVydHlOYW1lVmVjdG9yJiBwcm9wZXJ0
eU5hbWVWZWN0b3IoKSB7IHJldHVybiBtX3Byb3BlcnR5TmFtZVZlY3RvcjsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgKaW5kZXggZDhmNTFlYTYyODEzZmIwOGNlMmE2
MjE0ZDkyMTZhZmJkMDk0MzhlZC4uZWIyOWU2YzVmMzM3YjMyM2ExMTNlZTA3YmUxZDc4OGNjMjZj
NDdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaApAQCAtNTMsNyAr
NTMsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVTaGFwZSA6IHB1YmxpYyBSZWZDb3VudGVkPFN0cnVjdHVy
ZVNoYXBlPiB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlU2hhcGUoKTsKIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZVNoYXBlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
U3RydWN0dXJlU2hhcGUpOyB9CisgICAgc3RhdGljIFJlZjxTdHJ1Y3R1cmVTaGFwZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJ1Y3R1cmVTaGFwZSk7IH0KICAgICBTdHJpbmcg
cHJvcGVydHlIYXNoKCk7CiAgICAgdm9pZCBtYXJrQXNGaW5hbCgpOwogICAgIHZvaWQgYWRkUHJv
cGVydHkoVW5pcXVlZFN0cmluZ0ltcGwmKTsKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKIGNs
YXNzIFR5cGVTZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxUeXBlU2V0PiB7CiAKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlU2V0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgVHlwZVNldCk7IH0KKyAgICBzdGF0aWMgUmVmPFR5cGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVHlwZVNldCk7IH0KICAgICBUeXBlU2V0KCk7CiAgICAgdm9pZCBhZGRU
eXBlSW5mb3JtYXRpb24oUnVudGltZVR5cGUsIFBhc3NSZWZQdHI8U3RydWN0dXJlU2hhcGU+LCBT
dHJ1Y3R1cmUqKTsKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggZDY0OGZjZDhjOTJhYTE4
NGIxZDUyNGQ2OGQzNDZlYThjNTliM2RkOC4uZWUyNzQ2ZDc4ZDgzNjAwZTdlMjFmZWI1YjZiZTE5
ZmYwYTVlZDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZWRBcnJheUJhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFy
cmF5QmFzZS5oCkBAIC0xMDgsMjYgKzEwOCwyNiBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAg
dGVtcGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNz
PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCisgICAgc3RhdGljIFJlZlB0cjxTdWJjbGFzcz4gY3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWYoYnVm
ZmVyKTsKICAgICAgICAgaWYgKCF2ZXJpZnlTdWJSYW5nZTxUPihidWYsIGJ5dGVPZmZzZXQsIGxl
bmd0aCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3ViY2xhc3MoYnVmLnJlbGVhc2UoKSwg
Ynl0ZU9mZnNldCwgbGVuZ3RoKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFN1YmNs
YXNzPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGVVbmluaXRpYWxpemVk
KHVuc2lnbmVkIGxlbmd0aCkKKyAgICBzdGF0aWMgUmVmUHRyPFN1YmNsYXNzPiBjcmVhdGVVbmlu
aXRpYWxpemVkKHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBz
aXplb2YoVCkpOwogICAgICAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKLSAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjcmVhdGU8
U3ViY2xhc3M+KGJ1ZmZlci5yZWxlYXNlKCksIDAsIGxlbmd0aCk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGUgPGNsYXNzIFN1YmNsYXNzPgotICAgIFBhc3NSZWZQdHI8U3ViY2xhc3M+IHN1YmFycmF5
SW1wbChpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CisgICAgUmVmUHRyPFN1YmNsYXNzPiBzdWJh
cnJheUltcGwoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogICAgIHsKICAgICAgICAgdW5zaWdu
ZWQgb2Zmc2V0LCBsZW5ndGg7CiAgICAgICAgIGNhbGN1bGF0ZU9mZnNldEFuZExlbmd0aChzdGFy
dCwgZW5kLCBtX2xlbmd0aCwgJm9mZnNldCwgJmxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKaW5kZXggYjg5ZDNlYjQwMzdhNzUzM2MzNWI2NmJjYTI0YjI1MTM4N2I5MTEy
Ny4uNmE0Yjg0YzU0ZTMxZDY5NDdlZjk4ZGU0ODQ4ZWI3ODU2N2Y0M2NhZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzQwLDE3ICszNDAsMTcgQEAgVk06On5WTSgpCiAj
ZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxWTT4gVk06OmNyZWF0ZUNvbnRleHRHcm91cChIZWFwVHlw
ZSBoZWFwVHlwZSkKK1JlZjxWTT4gVk06OmNyZWF0ZUNvbnRleHRHcm91cChIZWFwVHlwZSBoZWFw
VHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZNKEFQSUNvbnRleHRHcm91cCwgaGVh
cFR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWTShBUElDb250ZXh0R3JvdXAsIGhl
YXBUeXBlKSk7CiB9CiAKLVBhc3NSZWZQdHI8Vk0+IFZNOjpjcmVhdGUoSGVhcFR5cGUgaGVhcFR5
cGUpCitSZWY8Vk0+IFZNOjpjcmVhdGUoSGVhcFR5cGUgaGVhcFR5cGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBWTShEZWZhdWx0LCBoZWFwVHlwZSkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFZNKERlZmF1bHQsIGhlYXBUeXBlKSk7CiB9CiAKLVBhc3NSZWZQdHI8Vk0+IFZNOjpj
cmVhdGVMZWFrZWQoSGVhcFR5cGUgaGVhcFR5cGUpCitSZWY8Vk0+IFZNOjpjcmVhdGVMZWFrZWQo
SGVhcFR5cGUgaGVhcFR5cGUpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShoZWFwVHlwZSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA0NzgxNjFkZjY5Njk5ODc3YzM0NTcxM2Zi
NjJhNGVhNGFiNTdmMzkxLi4xZDcyMmY5YWMwMzg3YTQxODdkODBmMTJhZjQ1MjhjMzJlYWE1NTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTIxMyw5ICsyMTMsOSBAQCBwdWJs
aWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgc2hhcmVkSW5zdGFuY2VFeGlz
dHMoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgVk0mIHNoYXJlZEluc3RhbmNlKCk7
CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxWTT4gY3JlYXRlKEhl
YXBUeXBlID0gU21hbGxIZWFwKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1Jl
ZlB0cjxWTT4gY3JlYXRlTGVha2VkKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxWTT4gY3JlYXRlQ29udGV4dEdyb3VwKEhlYXBUeXBlID0gU21hbGxIZWFwKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZNPiBjcmVhdGUoSGVhcFR5cGUgPSBT
bWFsbEhlYXApOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8Vk0+IGNyZWF0ZUxl
YWtlZChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CisgICAgc3RhdGljIFJlZjxWTT4gY3JlYXRlQ29u
dGV4dEdyb3VwKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+
Vk0oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
UmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAppbmRleCBm
OWUyYzQ3YWU0MzE5ZWQ3OWQxZWVlYjM0M2UyYWJjOGFkNDgxOWQwLi5kMTk0MTU5MmJkNzlmYWZl
YTc1ZjRiMDgwYTAyNmI2Nzk5MTljNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdFJlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAu
Y3BwCkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIHZvaWQgcGFyc2VBcmd1bWVudHMoaW50IGFy
Z2MsIGNoYXIqKiBhcmd2LCBDb21tYW5kTGluZSYgb3B0aW9ucykKIAogaW50IHJlYWxNYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKIHsKLSAgICBWTSogdm0gPSBWTTo6Y3JlYXRlKExhcmdlSGVh
cCkubGVha1JlZigpOworICAgIFZNKiB2bSA9ICZWTTo6Y3JlYXRlKExhcmdlSGVhcCkubGVha1Jl
ZigpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogCiAgICAgQ29tbWFuZExpbmUgb3B0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9u
LmNwcAppbmRleCBmNGFhZWM5OTgwNzIyNWRlZjMzNjY1ODEwNzI5MWIwMzVkZDI3MmExLi4wYzcw
ODk2NTQ2MjNlNWY2NjQ2OWE0YWRjNmRlYTFkMGY0ZDkwZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCkBAIC0zNyw5ICszNyw5IEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAKIGNsYXNzIFJlZ3VsYXJFeHByZXNz
aW9uOjpQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVndWxhckV4cHJlc3Npb246OlByaXZh
dGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcml2YXRlPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwg
TXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2RlKQorICAgIHN0YXRpYyBSZWY8UHJpdmF0ZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0
aXZpdHksIE11bHRpbGluZU1vZGUgbXVsdGlsaW5lTW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUHJpdmF0ZShwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZpdHksIG11bHRpbGlu
ZU1vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJpdmF0ZShwYXR0ZXJuLCBj
YXNlU2Vuc2l0aXZpdHksIG11bHRpbGluZU1vZGUpKTsKICAgICB9CiAKICAgICBpbnQgbGFzdE1h
dGNoTGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHAKaW5kZXggYmMwMmIxNTQxNjI3NGY1ZTU1MjQ5OTNiN2Q0YmQxZTVlNDIwNjY3ZS4uOGRj
ZTQ0MmE0MmZhYzlkMjIxMmNmMjBkOTdlMGUwZTA4NTY3NDQ3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAg
Vk0mIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKQogICAgIHN0YXRpYyBWTSogdm0gPSBudWxs
cHRyOwogICAgIGlmICghdm0pIHsKICAgICAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwotICAgICAgICB2bSA9IFZNOjpjcmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5s
ZWFrUmVmKCk7CisgICAgICAgIHZtID0gJlZNOjpjcmVhdGVMZWFrZWQoTGFyZ2VIZWFwKS5sZWFr
UmVmKCk7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgdm0tPnNldEV4Y2x1c2l2ZVRocmVh
ZChzdGQ6OnRoaXNfdGhyZWFkOjpnZXRfaWQoKSk7CiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254532</attachid>
            <date>2015-06-08 18:16:19 -0700</date>
            <delta_ts>2015-06-08 19:16:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-145750-20150609101558.patch</filename>
            <type>text/plain</type>
            <size>51729</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZDdiMWFlYmI4NzI3ODRiZDc2ZjNhYjUyMzA1NzA2M2MxMTVjNTdkLi5kNWFkYzA1MWE1ODcyOTI2
ZTM5MzE1YzQwYTBmYWQzOTNlOGQxYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMTUtMDYtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQ
SS9KU0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAg
ICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUp
OgorICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KToKKyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGlj
UHJvcGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
OjpjcmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6
OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6
R0NBY3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNj
cmlwdENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1l
bnRzLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZN
YW5hZ2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5
UGF0dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpj
cmVhdGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6OkRh
dGFWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5j
ZURhdGE6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHA6
CisgICAgICAgIChKU0M6OmNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2spOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5RGF0
YTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKyAgICAgICAgKEpTQzo6
U3RydWN0dXJlU2hhcGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAoSlNDOjpUeXBl
ZEFycmF5QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQpOgorICAgICAgICAoSlNDOjpUeXBlZEFycmF5QmFzZTo6c3ViYXJyYXlJ
bXBsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0
ZUNvbnRleHRHcm91cCk6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpWTTo6Y3JlYXRlTGVha2VkKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICog
eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ3VsYXJF
eHByZXNzaW9uOjpQcml2YXRlOjpjcmVhdGUpOgorCiAyMDE1LTA2LTA3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHRpbnkgc2V0IG1hZ2ljIGluIFN0cnVj
dHVyZVNldCBzaG91bGQgYmUgYXZhaWxhYmxlIGluIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NmNlODM0
ZmFiNWZlZGM5MzgyZjlkMzNjNGIzMjY5NWQ2YTk0M2MuLjhlZDViM2ZmZTBlY2MzYjc4YWU1YmQ3
NDE1NmZlOGNmZjg5MjI2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNi0w
OCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVy
Z2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHB1cmdlIFBhc3NSZWZQdHIsIHRo
aXMgcGF0Y2ggcmVwbGFjZXMgUGFzc1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
QmFzZTo6Y29tbW9uVk0pOgorCiAyMDE1LTA2LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViQ29udGVudCBjcmFzaCBpbiBXZWJDb3JlOjpQYWdlOjpzZXNz
aW9uSUQoKSBjb25zdCArIDAgKFBhZ2UuY3BwOjE2NjApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NsYXNzUmVmLmNwcAppbmRleCBlMzU0N2QyZjVkM2NkMDQyM2NiYjQ1YTJmMTM4Yzc0NzRl
YWRiYjllLi5hOGU3Y2I3ZDQ1NWQyZDAxYjk0OTI2ZjIzOGExY2UwYjNhMTEyOGM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKQEAgLTEwOCw5ICsxMDgsOSBAQCBP
cGFxdWVKU0NsYXNzOjp+T3BhcXVlSlNDbGFzcygpCiAgICAgICAgIEpTQ2xhc3NSZWxlYXNlKHBy
b3RvdHlwZUNsYXNzKTsKIH0KIAotUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0Ns
YXNzOjpjcmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiog
ZGVmaW5pdGlvbikKK1JlZjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1
dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwog
fQogCiBQYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZShjb25z
dCBKU0NsYXNzRGVmaW5pdGlvbiogY2xpZW50RGVmaW5pdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NsYXNzUmVmLmgKaW5kZXggZDI5OGExNjE5Yzk2NmNkZWFhYzYwOTlmZDkyNDk4MjVi
MzdkNWMwZS4uNjg3ZDhiOWI5NGQ5MTgzYjhhNjk5MzA5MzAyZTdiZGZkNzU0NzZlYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGlj
OgogCiBzdHJ1Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxP
cGFxdWVKU0NsYXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3Jl
YXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3Bh
cXVlSlNDbGFzcz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmlu
aXRpb24qKTsKKyAgICBzdGF0aWMgUmVmPE9wYXF1ZUpTQ2xhc3M+IGNyZWF0ZU5vQXV0b21hdGlj
UHJvdG90eXBlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgfk9wYXF1ZUpTQ2xhc3MoKTsKICAgICAKICAgICBTdHJpbmcgY2xhc3NOYW1lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggNTg4OTkxODc5NDlm
ZGVlODljZmM0ZjdiMmZhYmRiMjNhZTNjODk5OC4uNDk3NmMyOWFlZWVmOTEzOTNiYjBhODcyOWU1
MDA2NDcyNjRjMWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcApAQCAtNzYsNyArNzYsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0M6
OmphdmFTY3JpcHRDb3JlQVBJR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBKU0NvbnRleHRH
cm91cFJlZiBKU0NvbnRleHRHcm91cENyZWF0ZSgpCiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwotICAgIHJldHVybiB0b1JlZihWTTo6Y3JlYXRlQ29udGV4dEdyb3VwKCkubGVha1JlZigp
KTsKKyAgICByZXR1cm4gdG9SZWYoJlZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKS5sZWFrUmVmKCkp
OwogfQogCiBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cFJldGFpbihKU0NvbnRleHRH
cm91cFJlZiBncm91cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
Y3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAK
aW5kZXggOTlkN2YzMWU3ODNmMjZiYWMxYjdkYWEwNjM0MmY4MjRlZDY2ZTVkNi4uNDc0N2Q5N2Y2
Mjc1NWY1YTUwMTEwZGRjMzExMzE2NTg2NjEzNDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpQYXNzUmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUo
Vk0qIHZtLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCisgICAgc3RhdGljIFdURjo6UmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBj
cmVhdGUoVk0qIHZtLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJl
ZihuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2Up
KTsKKyAgICAgICAgcmV0dXJuIFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwg
dXJsLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Y29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU3RyaW5nUmVmLmNwcAppbmRleCAzYjc1ZjNkZmE5ZjcxYzJkODM2MDU4YTBhZGJk
Yzg0YTZjZDJkMGY1Li5jOWIzODBjZTY1NDE1OWQzY2QxMWViZTI1OTA0NmJjNjkxZWQwZmZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcApAQCAtMzcsNyArMzcs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogSlNTdHJpbmdSZWYgSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMp
CiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIHJldHVybiBPcGFxdWVKU1N0cmlu
Zzo6Y3JlYXRlKGNoYXJzLCBudW1DaGFycykubGVha1JlZigpOworICAgIHJldHVybiAmT3BhcXVl
SlNTdHJpbmc6OmNyZWF0ZShjaGFycywgbnVtQ2hhcnMpLmxlYWtSZWYoKTsKIH0KIAogSlNTdHJp
bmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQpA
QCAtNTEsMTIgKzUxLDEyIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGNvbnN0IGNoYXIqIHN0cmluZykKICAgICAgICAgY29uc3QgTENoYXIqIHN0cmluZ1N0YXJ0
ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHN0cmluZyk7CiAgICAgICAgIGlmIChj
b252ZXJzaW9uT0sgPT0gY29udmVydFVURjhUb1VURjE2KCZzdHJpbmcsIHN0cmluZyArIGxlbmd0
aCwgJnAsIHAgKyBsZW5ndGgsICZzb3VyY2VJc0FsbEFTQ0lJKSkgewogICAgICAgICAgICAgaWYg
KHNvdXJjZUlzQWxsQVNDSUkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5n
OjpjcmVhdGUoc3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOwotICAgICAgICAgICAgcmV0
dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRh
KCkpLmxlYWtSZWYoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUoc3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOworICAgICAgICAgICAgcmV0dXJu
ICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgp
KS5sZWFrUmVmKCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVh
dGUoKS5sZWFrUmVmKCk7CiB9CiAKIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJh
Y3RlcnNOb0NvcHkoY29uc3QgSlNDaGFyKiBjaGFycywgc2l6ZV90IG51bUNoYXJzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5jcHAKaW5kZXggNTI0MWE5YmNlMWQw
MzY4NDgwNWQ5ZDEzMTI5Y2Q5NmVkNDMxYjZhNi4uMDU4NzI1OTNmNmRiYjlhODUzYTgxNjFhNjli
YmRmNzQyYTIzMzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0
cmluZ1JlZkNGLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVm
Q0YuY3BwCkBAIC00MSwxOCArNDEsMTggQEAgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRo
Q0ZTdHJpbmcoQ0ZTdHJpbmdSZWYgc3RyaW5nKQogICAgIC8vIGl0IGNhbiBob2xkLiAgKDxyZGFy
Oi8vcHJvYmxlbS82ODA2NDc4PikKICAgICBzaXplX3QgbGVuZ3RoID0gQ0ZTdHJpbmdHZXRMZW5n
dGgoc3RyaW5nKTsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3Ry
aW5nOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1Jl
ZigpOworICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1JlZigpOwogCiAgICAgVmVjdG9yPExDaGFy
LCAxMDI0PiBsY2hhckJ1ZmZlcihsZW5ndGgpOwogICAgIENGSW5kZXggdXNlZEJ1ZmZlckxlbmd0
aDsKICAgICBDRkluZGV4IGNvbnZlcnRlZFNpemUgPSBDRlN0cmluZ0dldEJ5dGVzKHN0cmluZywg
Q0ZSYW5nZU1ha2UoMCwgbGVuZ3RoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIDAsIGZh
bHNlLCBsY2hhckJ1ZmZlci5kYXRhKCksIGxlbmd0aCwgJnVzZWRCdWZmZXJMZW5ndGgpOwogICAg
IGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KGNvbnZlcnRlZFNpemUpID09IGxlbmd0aCAmJiBzdGF0
aWNfY2FzdDxzaXplX3Q+KHVzZWRCdWZmZXJMZW5ndGgpID09IGxlbmd0aCkKLSAgICAgICAgcmV0
dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUobGNoYXJCdWZmZXIuZGF0YSgpLCBsZW5ndGgpLmxl
YWtSZWYoKTsKKyAgICAgICAgcmV0dXJuICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGxjaGFyQnVm
ZmVyLmRhdGEoKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiAKICAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8VW5pQ2hhcltdPihsZW5ndGgpOwogICAgIENGU3RyaW5nR2V0Q2hhcmFjdGVy
cyhzdHJpbmcsIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlci5nZXQoKSk7CiAgICAgc3Rh
dGljX2Fzc2VydChzaXplb2YoVW5pQ2hhcikgPT0gc2l6ZW9mKFVDaGFyKSwgIlVuaUNoYXIgYW5k
IFVDaGFyIG11c3QgYmUgc2FtZSBzaXplIik7Ci0gICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUocmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGJ1ZmZlci5nZXQoKSksIGxlbmd0aCkubGVh
a1JlZigpOworICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShyZWludGVycHJldF9j
YXN0PFVDaGFyKj4oYnVmZmVyLmdldCgpKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiB9CiAKIENGU3Ry
aW5nUmVmIEpTU3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgSlNT
dHJpbmdSZWYgc3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
cGFxdWVKU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3Ry
aW5nLmNwcAppbmRleCA3ZjllZGI0MTM2ZTI3NDk5NzQ3ZDI5NmQyZjFhMmRjNDg5YjA0NDNkLi4w
N2E3OWFkOTllNmRjN2YzMWM1ZjhmYmFhOTI0MWVmMTJmZWEyNGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCi1QYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBPcGFxdWVK
U1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVmUHRyPE9wYXF1ZUpTU3Ry
aW5nPiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAg
IGlmIChzdHJpbmcuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oCmluZGV4IDAzYWU1Nzc5MDRjY2FiNTdm
YjQwN2ZjNTUxNGRjODM5MzFmNjkwYTQuLjIwODEzMWIzYjQxNThlN2M2ZmNmZGU5MWU0NmMzNTc3
ODk3YWRjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNT
dHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgK
QEAgLTM2LDIyICszNiwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKIH0KIAogc3RydWN0IE9wYXF1ZUpT
U3RyaW5nIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1ZUpTU3RyaW5nPiB7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZSgpCisgICAgc3RhdGlj
IFJlZjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgT3BhcXVlSlNTdHJpbmcpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBP
cGFxdWVKU1N0cmluZyk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNT
dHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQor
ICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNT
dHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0
ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJp
bmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVh
dGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVlSlNTdHJp
bmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9T
dGF0aWNQcm9wZXJ0eUFuYWx5c2lzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaAppbmRleCAyOTNjMjI0MTRhNjIxMGJlMWZmN2U3
YjFlMjhmYTRmMzUyMjQwMDAwLi41YTk5MThkZDE1ODBhY2Y3OTE5M2JmMWM0NzI5YWJiMjRhZTY5
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1N0YXRp
Y1Byb3BlcnR5QW5hbHlzaXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL1N0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIC8vIFJlZmVyZW5jZSBjb3VudCBpbmRpY2F0ZXMgbnVtYmVyIG9mIGxpdmUgcmVnaXN0
ZXJzIHRoYXQgYWxpYXMgdGhpcyBvYmplY3QuCiBjbGFzcyBTdGF0aWNQcm9wZXJ0eUFuYWx5c2lz
IDogcHVibGljIFJlZkNvdW50ZWQ8U3RhdGljUHJvcGVydHlBbmFseXNpcz4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM+IGNyZWF0ZShWZWN0
b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+KiBpbnN0cnVj
dGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKKyAgICBzdGF0aWMgUmVmPFN0YXRpY1Byb3BlcnR5QW5h
bHlzaXM+IGNyZWF0ZShWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9y
T3ZlcmZsb3c+KiBpbnN0cnVjdGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RhdGljUHJvcGVydHlBbmFseXNpcyhpbnN0cnVjdGlvbnMs
IHRhcmdldCkpOyAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RhdGljUHJvcGVydHlB
bmFseXNpcyhpbnN0cnVjdGlvbnMsIHRhcmdldCkpOyAKICAgICB9CiAKICAgICB2b2lkIGFkZFBy
b3BlcnR5SW5kZXgodW5zaWduZWQgcHJvcGVydHlJbmRleCkgeyBtX3Byb3BlcnR5SW5kZXhlcy5h
ZGQocHJvcGVydHlJbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmgKaW5kZXggNWM3ZDc1YWRjOTQ4YjI2NTEyMjkwODM3MTU3
NWFjMmM1N2JkN2Q2NC4uZGY2MWM2YWEzOTM1NTQ3YWM3ODUxNzNkZWUxMDdiNTBjM2E0MGY2YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZy
YW1lLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgRGVidWdnZXJDYWxsRnJhbWUgOiBwdWJsaWMg
UmVmQ291bnRlZDxEZWJ1Z2dlckNhbGxGcmFtZT4gewogcHVibGljOgogICAgIGVudW0gVHlwZSB7
IFByb2dyYW1UeXBlLCBGdW5jdGlvblR5cGUgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERl
YnVnZ2VyQ2FsbEZyYW1lPiBjcmVhdGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCisgICAgc3RhdGlj
IFJlZjxEZWJ1Z2dlckNhbGxGcmFtZT4gY3JlYXRlKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWJ1Z2dlckNhbGxGcmFtZShjYWxsRnJh
bWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVidWdnZXJDYWxsRnJhbWUoY2Fs
bEZyYW1lKSk7CiAgICAgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgRGVidWdn
ZXJDYWxsRnJhbWUoQ2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3Bw
CmluZGV4IGQwMTYyYjc5ZTVmNDYxYTU4OGE5YjJjZmQ0ZjBkMDI2ZjFmNjViMGYuLmRkODEwOGE3
NjA5OWY4YTY3ZmQzZmI3ZGRlMzMxMWY3NTk1OTk3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suY3BwCkBAIC00MywxMCArNDMsOSBAQCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soCiAKIFRvRlRMRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
KSB7IH0KIAotUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKLSAgICBQYXNzUmVmUHRyPENv
ZGVCbG9jaz4gZGZnQ29kZUJsb2NrKQorUmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKFBhc3NSZWZQdHI8
Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb0ZU
TERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxv
Y2spKTsKIH0KIAogdm9pZCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGls
YXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oCmluZGV4IGYxYWM0YTY4ZmM2NDk3MzBhNjViNmRhYzA4ZWQ2OTU4MWJkMzk5MmYuLjNl
MGVhMDJkMGZhMjIzNjRiOGM2OTBmYjE3MTUxNTc5ZjExNGYxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKQEAgLTQ1LDggKzQ1LDcgQEAgcHJvdGVjdGVkOgogcHVibGljOgogICAg
IHZpcnR1YWwgflRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKAot
ICAgICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKKyAgICBzdGF0aWMg
UmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxD
b2RlQmxvY2s+IGRmZ0NvZGVCbG9jayk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0
aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJlc3Vs
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNw
cAppbmRleCA0N2M0ZmJiZWM1MWVlZjk2Mjg1MjUyYjQ0ODAwYjA2OWMzZWM0ZGNhLi43MGNjODI1
MDIyNjJlMTczYzMwM2Y2NDg3MTg1ZDAzZmRkMWY1ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTQ1LDExICs0NSwxMCBAQCBU
b0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpbwogewogfQogCi1QYXNzUmVmUHRyPFRvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+Ci1Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoCitSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjaz5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrOjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jaykK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2sp
KTsKIH0KIAogdm9pZCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
Ojpjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IGM1M2RmOTFmNzY5ZDdm
ODAyNmE1YjRhYmNmNjc3ZWMxOTZjZjg0ZTQuLmM5ZGNmNmQ3YzAxZmMxZTQ4NTYwMDliOGZkNzMy
MWMwODllM2U0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjay5oCkBAIC00NSw4ICs0NSw3IEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrPiBjcmVhdGUoCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxv
Y2spOworICAgIHN0YXRpYyBSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spOwogICAg
IAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3Vz
bHkoQ29kZUJsb2NrKik7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUo
Q29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAppbmRleCA0YWExNDI4YTZjZGQ2ZGEwODU3ZmYzNTU1YzI3ZjVkMWQ0
MzI2M2ExLi40YThmNTcyMjQ4ZDBjYmI2ZDg4ZTIxZjRlYmE2YWJmNGRmNGQxNjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2
b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGlu
dCByZWxhdGl2ZVByaW9yaXR5KQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxXb3JrbGlzdD4gV29y
a2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJl
YWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0
ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVs
YXRpdmVQcmlvcml0eSkKIHsKLSAgICBSZWZQdHI8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVm
KG5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1lKSk7CiAgICAgcmVzdWx0LT5maW5p
c2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3JpdHkpOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAgV29ya2xpc3QqIGVuc3VyZUdsb2JhbERG
R1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2Jh
bFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdv
cmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3Jr
bGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVy
VGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSku
bGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3Jl
YXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygp
LCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigp
OwogICAgIH0pOwogICAgIHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTQyMiw3
ICs0MjIsNyBAQCBXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewot
ICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3Jr
bGlzdCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnBy
aW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRo
ZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9w
dGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVs
dGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJu
IHRoZUdsb2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5oCmluZGV4IGY2MWFlNGFlYjhjNzRjZTU5ZTk5MGRjYzZhMTQyOThlMDZjOWNhOTcuLmJk
NmU2ZmE3NWY2MjQwZTI3ZDMwZTYzMzI5NmQxYTU2NTI1MGZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAg
fldvcmtsaXN0KCk7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2xpc3Q+IGNyZWF0
ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVs
YXRpdmVQcmlvcml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3Ry
aW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQ
cmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+KTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2
aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2suaAppbmRleCAyOGNmZGRiNzdlYjgzOTM1ODNiMmM4YjdlZmI4NWUxZDI2MjljNWY2
Li4yMTRhYjQzZGNhMGU4Y2JhZWM5OTk1YWZhZTIzZDNiN2YzMmQwMjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC00
OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSBv
dmVycmlkZTsKIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NB
Y3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIoSGVhcCogaGVhcCkKK2lubGluZSBSZWZQ
dHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1l
cihIZWFwKiBoZWFwKQogewogICAgIHJldHVybiBzX3Nob3VsZENyZWF0ZUdDVGltZXIgPyBhZG9w
dFJlZihuZXcgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSkgOiBudWxscHRyOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5o
CmluZGV4IDg4Y2ViZDlkOTU5NjczNzAzZTU4ZmRhNjc2YmZhNmQ4MzNlZjljY2YuLjNiMWI0NTAw
NWM1NWIwNjZjN2I5MWQ2YzRlNjRkNzcwZDU0ZDA5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwog
fTsKIAotaW5saW5lIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmNyZWF0ZUZ1bGxUaW1lcihIZWFwKiBoZWFwKQoraW5saW5lIFJlZlB0cjxHQ0FjdGl2
aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlRnVsbFRpbWVyKEhlYXAqIGhl
YXApCiB7CiAgICAgcmV0dXJuIHNfc2hvdWxkQ3JlYXRlR0NUaW1lciA/IGFkb3B0UmVmKG5ldyBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApKSA6IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGYzMGMyNzcwZTY0
N2YxZWM3NGU2NzU1ZmQ5N2FhYjBkY2VmMzNlZDkuLjNkMDdlZmFhMmUxNjM4NzViMDJhMzJkYzA3
YjgwOWNkZWNmMjlhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dD
QWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0
aXZpdHlDYWxsYmFjay5oCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEdDQWN0aXZpdHlDYWxs
YmFja19oCiAKICNpbmNsdWRlICJIZWFwVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFVTRShDRikKICNpbmNsdWRlIDxD
b3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBI
ZWFwOwogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGlj
IEhlYXBUaW1lciwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEdDQWN0aXZpdHlDYWxsYmFj
az4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRnVsbFRpbWVyKEhlYXAqKTsKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUVkZW5UaW1lcihI
ZWFwKik7CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUZ1bGxU
aW1lcihIZWFwKik7CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0
ZUVkZW5UaW1lcihIZWFwKik7CiAKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhv
c3QuaAppbmRleCBhZjFlMGNiMTUxMDM3NWFiMzQ0MDZjNGM1OTQ4NjA2YTYzYzczMmNiLi5hZTUz
MGEyMDI3MjBiMjE4NTk5ZjhjOTY1MTAwOGU3OGE3NjQ0MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRF
IEluamVjdGVkU2NyaXB0SG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEluamVjdGVkU2NyaXB0SG9z
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVkU2NyaXB0SG9zdCk7IH0KKyAg
ICBzdGF0aWMgUmVmPEluamVjdGVkU2NyaXB0SG9zdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbmplY3RlZFNjcmlwdEhvc3QpOyB9CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3Jp
cHRIb3N0KCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBzdWJ0eXBlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlKSB7IHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFt
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1l
LmgKaW5kZXggYjM0NGMzM2ZiZGVlMjQ4ZGFlN2M5ZmNhOTEyZTQyMDcxZDdlNTMyZi4uNWNmYmIy
M2JhMWExZTkzYTNlYTAyYTQyODIyOTY4YjViZjQ1ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKQEAgLTM4LDkg
KzM4LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJh
bWUgOiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8SlNDOjpEZWJ1Z2dlckNhbGxGcmFtZT4gZGVidWdnZXJDYWxsRnJhbWUpCisgICAgc3RhdGlj
IFJlZjxKYXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUoUGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2Vy
Q2FsbEZyYW1lPiBkZWJ1Z2dlckNhbGxGcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSmF2YVNjcmlwdENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZy
YW1lKSk7CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAK
aW5kZXggNDEwMGEzZjk5NWU5MzM2NjRhOTM3MTBjMzBlOGMyMTRhMGIzYjhlYi4uNTFkMWZlNjU4
ZDU2YTk1YWFkNWJkYmE0MzM5ZmMyYzkyYWFlYTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcApAQCAtMzcsOSArMzcsOSBA
QAogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IFNjcmlwdEFyZ3VtZW50czo6Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgVmVj
dG9yPERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKQorUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4gU2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRl
LCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTY3JpcHRBcmd1bWVudHMoc2NyaXB0U3RhdGUsIGFyZ3VtZW50cykp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcmlwdEFyZ3VtZW50cyhzY3JpcHRTdGF0ZSwg
YXJndW1lbnRzKSk7CiB9CiAKIFNjcmlwdEFyZ3VtZW50czo6U2NyaXB0QXJndW1lbnRzKEpTQzo6
RXhlY1N0YXRlKiBleGVjU3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFy
Z3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2Ny
aXB0QXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFy
Z3VtZW50cy5oCmluZGV4IDUzMzdlMDE5ZTA5YzM5NTE3ODAzYjg0ZDc3OWZkYmZhMzIxMmE3OTAu
LjcyMDBhYjQ4YWQ2NTQzZGRhNzI3MTY4OTIyOWEzNTgzY2Q0MGQ5MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaApAQCAtNTEsNyAr
NTEsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
U2NyaXB0QXJndW1lbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyaXB0QXJndW1lbnRzPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlND
OjpFeGVjU3RhdGUqLCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMp
OworICAgIHN0YXRpYyBSZWY8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUq
LCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpOwogICAgIH5TY3Jp
cHRBcmd1bWVudHMoKTsKIAogICAgIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBhcmd1
bWVudEF0KHNpemVfdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJSb3V0aW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJS
b3V0aW5lLmgKaW5kZXggODQ5NDkyYjM0ZDg1ZGE4NmM2OTUzODc1MzQ5ZjA2NjUyNmU2MjRhMS4u
YjIxMTNhNjVmMWY4M2E2ZDc4ZTk2YTkxYTc1ZDRkMTM0NjU4ZGU3OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKICAgICAKICAgICAvLyBVc2UgdGhpcyBpZiB5b3Ugd2FudCB0byBwYXNzIGEgQ29kZVB0ciB0
byBzb21lb25lIHdobyBpbnNpc3RzIG9uIHRha2luZwogICAgIC8vIGEgUmVmUHRyPEpJVFN0dWJS
b3V0aW5lPi4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4gY3JlYXRlU2Vs
Zk1hbmFnZWRSb3V0aW5lKAorICAgIHN0YXRpYyBSZWY8SklUU3R1YlJvdXRpbmU+IGNyZWF0ZVNl
bGZNYW5hZ2VkUm91dGluZSgKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJhd0NvZGVQ
b2ludGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGlu
ZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihyYXdDb2Rl
UG9pbnRlcikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSklUU3R1YlJvdXRpbmUo
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYocmF3Q29kZVBv
aW50ZXIpKSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgfkpJVFN0dWJSb3V0aW5lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCmluZGV4IDQ3ODYzMTJkZWYwOWIwNGYwM2E0
NTZiYjZhZWU5NmM3OGI2ZDJhMmEuLmY3ZjBhYjliYzYxOWExODkwMDU0Mjg0ODFhMThkM2UxMDNm
Mjc0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCkBAIC0zNyw5ICszNyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6
OkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkgeyB9CiBKSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjazo6fkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrKCkgeyB9CiAKLVBhc3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2s+IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKQorUmVmPEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBKSVRUb0RGR0RlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjazo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOwogfQogCiB2b2lkIEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjb21waWxhdGlvbkRpZEJlY29tZVJl
YWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggNWEx
YzdmZjFjNTI0NDhkNGRjOTJkMjVkMjJkNGI3MDlhMTEyNGUyMS4uZjY0Yjk3OWNlY2NjZDQzOTMy
ZjMyZmQ4OGQ1YjQ2YjI2NGI1ODExZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApA
QCAtNDIsNyArNDIsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SklUVG9E
RkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91
c2x5KENvZGVCbG9jayopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRp
ZENvbXBsZXRlKENvZGVCbG9jayosIENvbXBpbGF0aW9uUmVzdWx0KSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggODc3MGFhYmViMzFiODJkYmU0MTc0NGI2YTliMjFhMmVlMzNjYmEw
MC4uMTc1ZjI4NzEzZjU3MmI1YWMxZjBkZjFmZjE0M2VkNTVlYmE0NTQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTE1MDQsNyArMTUwNCw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKICAgICAvLyBOb3RlIHRoYXQgdGhlIG9wdGlvbnMgcGFyc2luZyBjYW4gYWZmZWN0
IFZNIGNyZWF0aW9uLCBhbmQgdGh1cwogICAgIC8vIGNvbWVzIGZpcnN0LgogICAgIENvbW1hbmRM
aW5lIG9wdGlvbnMoYXJnYywgYXJndik7Ci0gICAgVk0qIHZtID0gVk06OmNyZWF0ZShMYXJnZUhl
YXApLmxlYWtSZWYoKTsKKyAgICBWTSogdm0gPSAmVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtS
ZWYoKTsKICAgICBpbnQgcmVzdWx0OwogICAgIHsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2tl
cih2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9y
cy5oCmluZGV4IGZlZjBmNzIzN2Y0YWE2MzE2ZGNhYTQ2YjMxY2ZjODE1M2RlNGIzMmYuLjdlMjZl
YzNjOGU0NTVlODlkYjFkMjBhZTY4MmExMjA4MjdmY2U3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC05NDMsOSArOTQzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KICAgICAKLSAgICBpbmxpbmUgUGFzc1JlZlB0
cjxBcnJheVBhdHRlcm5Ob2RlPiBBcnJheVBhdHRlcm5Ob2RlOjpjcmVhdGUoKQorICAgIGlubGlu
ZSBSZWY8QXJyYXlQYXR0ZXJuTm9kZT4gQXJyYXlQYXR0ZXJuTm9kZTo6Y3JlYXRlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlQYXR0ZXJuTm9kZSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFycmF5UGF0dGVybk5vZGUpOwogICAgIH0KICAgICAKICAg
ICBpbmxpbmUgT2JqZWN0UGF0dGVybk5vZGU6Ok9iamVjdFBhdHRlcm5Ob2RlKCkKQEAgLTk1Mywx
NCArOTUzLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgaW5s
aW5lIFBhc3NSZWZQdHI8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2RlOjpjcmVh
dGUoKQorICAgIGlubGluZSBSZWY8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2Rl
OjpjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RQYXR0
ZXJuTm9kZSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iamVjdFBhdHRlcm5Ob2Rl
KTsKICAgICB9CiAKLSAgICBpbmxpbmUgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gQmluZGluZ05v
ZGU6OmNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpCisgICAgaW5saW5lIFJl
ZjxCaW5kaW5nTm9kZT4gQmluZGluZ05vZGU6OmNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3Vu
ZFByb3BlcnR5LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBlbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpbmRpbmdOb2Rl
KGJvdW5kUHJvcGVydHksIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQmluZGluZ05vZGUoYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCkpOwogICAgIH0KICAgICAK
ICAgICBpbmxpbmUgQmluZGluZ05vZGU6OkJpbmRpbmdOb2RlKGNvbnN0IElkZW50aWZpZXImIGJv
dW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAKaW5kZXggZmY5
YWE0NGFkMTQ3OGFiNzA5MWRhYjQ4MTY1NDAyNGQxMWZhMDUzYS4uMDdlMGQzN2ZkZmNjMTkxNmY5
NzU0M2EyODExZDQ0NzE2MTk2YTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBFdmFsTm9kZTo6RXZhbE5vZGUoUGFyc2VyQXJlbmEm
IHBhcnNlckFyZW5hLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0TG9jYXRpbwogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25Cb2R5Tm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEZ1bmN0aW9uUGFyYW1ldGVycz4gRnVu
Y3Rpb25QYXJhbWV0ZXJzOjpjcmVhdGUoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIpCitS
ZWY8RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZShQYXJhbWV0
ZXJOb2RlKiBmaXJzdFBhcmFtZXRlcikKIHsKICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCA9
IDA7CiAgICAgZm9yIChQYXJhbWV0ZXJOb2RlKiBwYXJhbWV0ZXIgPSBmaXJzdFBhcmFtZXRlcjsg
cGFyYW1ldGVyOyBwYXJhbWV0ZXIgPSBwYXJhbWV0ZXItPm5leHRQYXJhbSgpKQpAQCAtMTQ3LDcg
KzE0Nyw3IEBAIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRl
cnM6OmNyZWF0ZShQYXJhbWV0ZXJOb2RlKiBmaXJzdFBhCiAKICAgICBzaXplX3Qgb2JqZWN0U2l6
ZSA9IHNpemVvZihGdW5jdGlvblBhcmFtZXRlcnMpIC0gc2l6ZW9mKHZvaWQqKSArIHNpemVvZihE
ZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKikgKiBwYXJhbWV0ZXJDb3VudDsKICAgICB2b2lkKiBz
bG90ID0gZmFzdE1hbGxvYyhvYmplY3RTaXplKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChz
bG90KSBGdW5jdGlvblBhcmFtZXRlcnMoZmlyc3RQYXJhbWV0ZXIsIHBhcmFtZXRlckNvdW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgKHNsb3QpIEZ1bmN0aW9uUGFyYW1ldGVycyhmaXJz
dFBhcmFtZXRlciwgcGFyYW1ldGVyQ291bnQpKTsKIH0KIAogRnVuY3Rpb25QYXJhbWV0ZXJzOjpG
dW5jdGlvblBhcmFtZXRlcnMoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIsIHVuc2lnbmVk
IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggOTJmMWEyMWViOWY2
NmMyOTc3MzliODVlOGE1OGExYmY5MGY1MTNiMS4uN2IwMGM3ZmUxMzc2Yjc2ODkzNjhlZmU2M2U0
YzAxMGZjNjQ0NGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTYz
NCw3ICsxNjM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGdW5jdGlvblBhcmFtZXRlcnMp
OwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0
ZXJzPiBjcmVhdGUoUGFyYW1ldGVyTm9kZSopOworICAgICAgICBzdGF0aWMgUmVmPEZ1bmN0aW9u
UGFyYW1ldGVycz4gY3JlYXRlKFBhcmFtZXRlck5vZGUqKTsKICAgICAgICAgfkZ1bmN0aW9uUGFy
YW1ldGVycygpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3Np
emU7IH0KQEAgLTE3ODIsNyArMTc4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3Mg
QXJyYXlQYXR0ZXJuTm9kZSA6IHB1YmxpYyBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5UGF0dGVybk5vZGU+IGNy
ZWF0ZSgpOworICAgICAgICBzdGF0aWMgUmVmPEFycmF5UGF0dGVybk5vZGU+IGNyZWF0ZSgpOwog
ICAgICAgICB2b2lkIGFwcGVuZEluZGV4KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIERlY29uc3Ry
dWN0aW9uUGF0dGVybk5vZGUqIG5vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fdGFyZ2V0
UGF0dGVybnMuYXBwZW5kKG5vZGUpOwpAQCAtMTgwMCw3ICsxODAwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgCiAgICAgY2xhc3MgT2JqZWN0UGF0dGVybk5vZGUgOiBwdWJsaWMgRGVjb25zdHJ1
Y3Rpb25QYXR0ZXJuTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxPYmplY3RQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CisgICAgICAgIHN0YXRpYyBSZWY8T2JqZWN0
UGF0dGVybk5vZGU+IGNyZWF0ZSgpOwogICAgICAgICB2b2lkIGFwcGVuZEVudHJ5KGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIGJvb2wgd2FzU3Ry
aW5nLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiBwYXR0ZXJuKQogICAgICAgICB7CiAgICAg
ICAgICAgICBtX3RhcmdldFBhdHRlcm5zLmFwcGVuZChFbnRyeShpZGVudGlmaWVyLCB3YXNTdHJp
bmcsIHBhdHRlcm4pKTsKQEAgLTE4MjcsNyArMTgyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgQmluZGluZ05vZGUgOiBwdWJsaWMgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSB7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gY3Jl
YXRlKGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCk7CisgICAgICAgIHN0YXRpYyBSZWY8
QmluZGluZ05vZGU+IGNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOwogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9i
b3VuZFByb3BlcnR5OyB9CiAKICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90U3RhcnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCA0ZmM5NTk1Mjc3YzMwYmY3YjQyZmQ0
M2QzMWY3M2Q5ZTM1YTAxNmVhLi5jY2NhYmYzNjk2NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2
YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5o
CkBAIC03NCw5ICs3NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5nU291
cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgIHN0
YXRpYyBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9
IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwsIHN0
YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKHNvdXJjZSwgdXJsLCBzdGFydFBvc2l0aW9uKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcAppbmRleCAwNjIyNDNiNGY2
OGEwMTk2ZjllZjAxM2Y4ZTBmNDdmNjgyN2I3ZmNmLi5mM2Q0NTBhYjIzMDM4MzBkYzIzMTAyMTU2
Y2IwMWM2OTMwMmQzYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGUuY3BwCkBAIC0zMSw5ICszMSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNzUmVmUHRy
PFByb2ZpbGU+IFByb2ZpbGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1
aWQsIGRvdWJsZSBzdGFydFRpbWUpCitSZWY8UHJvZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFByb2ZpbGUodGl0bGUsIHVpZCwgc3RhcnRUaW1lKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpKTsKIH0K
IAogUHJvZmlsZTo6UHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRv
dWJsZSBzdGFydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaApp
bmRleCBkYjE5YmY4YjJiMzU2MjJhNGU4OTAzM2NlZmNmNDEyODg0ZjUzYjcyLi40MWNiNjcwY2Fl
N2NhOWViMTdhZTQ2NGRhYzNlZTMxYzFhMWYxZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIFByb2ZpbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxl
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmlsZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlKTsKKyAgICBzdGF0aWMgUmVmPFBy
b2ZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7
CiAgICAgdmlydHVhbCB+UHJvZmlsZSgpOwogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAppbmRleCA1NmNkZjZmNjczZWE4ZmM1MDYyYzA5
ODdmMGY3NGQ2ZmNjYTE0OWE0Li5mNzBlNGEzZjY0OTlkNGQwYjQ4NmMxMmUwMGQ4MzkwMTVkOWQ1
MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVH
ZW5lcmF0b3IuY3BwCkBAIC0zOSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNz
UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxT
dG9wd2F0Y2g+IHN0b3B3YXRjaCkKK1JlZjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2VuZXJh
dG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25l
ZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9maWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVHZW5lcmF0b3IoZXhlYywgdGl0bGUs
IHVpZCwgc3RvcHdhdGNoKSk7CiB9CiAKIFByb2ZpbGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBh
c3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAppbmRleCAzZTMwMWFlMzY5OThmYTZiOGUw
MDlkODY5NjA0ZjdlMDU1YzBkYjMzLi4zODdlZDVmNGE3MDQ0MzNkMDYzZGM3YzY5MTFiZGUxODMx
MTVkOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFz
cyBQcm9maWxlR2VuZXJhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRvcj4g
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVHZW5lcmF0
b3I+IGNyZWF0ZShFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVk
IHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKKyAgICAgICAgc3RhdGljIFJlZjxQcm9maWxl
R2VuZXJhdG9yPiBjcmVhdGUoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCB1
bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7CiAKICAgICAgICAgLy8gTWVtYmVy
cwogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKaW5kZXggOWFjNTU2NTllOTlkNmRk
NzNjYzNjMzA5NWYzNzZiZDlhMjhkMDRjMy4uZmNhZWUwZTI0MjI5OWM2NTZiNWE1YTc2N2EwNDEx
ZDU1YWVkZTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmgKQEAgLTQ0LDE0ICs0NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFBy
b2ZpbGVOb2RlIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZU5vZGU+IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllciwg
UHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCisgICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+
IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXIm
IGNhbGxJZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUs
IGNhbGxJZGVudGlmaWVyLCBwYXJlbnROb2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBwYXJl
bnROb2RlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9maWxl
Tm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9k
ZSkKKyAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2Fs
bGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxG
cmFtZSwgbm9kZSkpOwogICAgICAgICB9CiAKICAgICAgICAgc3RydWN0IENhbGwgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwCmluZGV4IDBjODNkNmU5NWIwZTI0
YzQ5ZWE0Zjk5MDk0OGYxMmU0YTRjYTAyYjcuLjc4ZTc0M2ZjMTVmODBiYmZmNTI2ZjhlNzczNjll
M2IwMTY0NzdhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGFWaWV3LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5j
cHAKQEAgLTM3LDEzICszNywxMyBAQCBEYXRhVmlldzo6RGF0YVZpZXcoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZAogewogfQogCi1Q
YXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKAorUmVmPERhdGFWaWV3PiBEYXRh
Vmlldzo6Y3JlYXRlKAogICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0
aCkpOwogfQogCi1QYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IHBhc3NlZEJ1ZmZlcikKK1JlZjxEYXRhVmlldz4gRGF0YVZpZXc6OmNy
ZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBwYXNzZWRCdWZmZXIpCiB7CiAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPSBwYXNzZWRCdWZmZXI7CiAgICAgcmV0dXJuIGNyZWF0ZShi
dWZmZXIsIDAsIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRhVmlldy5oCmluZGV4IDRhOGFhOTI1OGFkMTE5YjU3NDkyM2I4Nzg3NTZlYTg4YTQw
YjA2OGMuLmEwMWQxMzUwNjY5ZjNjNzVlY2FhNTdkY2IyNDY0M2E3MGNlZjBjMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaApAQCAtMzcsOCArMzcsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgRGF0YVZpZXcoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogICAgIAogcHVibGljOgotICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOworICAgIHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPik7CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3Qg
b3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2VDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlQ2FjaGUuaAppbmRleCA1ZjhiMWIyNjVhMDE0YTI1YWY4NThiZTE3OWEwZDVjYWFi
YzQ3ZjdhLi42ZWJiYjBkOThiYjNiNTBmZDc5ZDdlNjczMTYyYTU4ODc2ZmE3ZGU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIERhdGVJbnN0YW5jZURhdGEg
OiBwdWJsaWMgUmVmQ291bnRlZDxEYXRlSW5zdGFuY2VEYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IERhdGVJbnN0YW5jZURhdGEpOyB9CisgICAgc3RhdGljIFJlZjxEYXRlSW5zdGFuY2VE
YXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVJbnN0YW5jZURhdGEpOyB9
CiAKICAgICBkb3VibGUgbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TOwogICAgIEdyZWdv
cmlhbkRhdGVUaW1lIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKaW5kZXggMWE5NGM3
MTk1ZTM1ZWU3MmZlYTZmMGY5NThlNDlkNTFlMzYxMGRmNS4uZjUzY2NjYjVhMzYyOWJjMDNhMWFl
YzgyMzhmOGQxMGEzYzJmY2Q4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcApAQCAtNTksOSArNTksOSBAQCBwcml2YXRlOgog
ICAgIFN0cm9uZzxVbmtub3duPiBtX2FyZ3VtZW50OwogfTsKIAotUGFzc1JlZlB0cjxNaWNyb3Rh
c2s+IGNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mIHZtLCBKU1Byb21p
c2VSZWFjdGlvbiogcmVhY3Rpb24sIEpTVmFsdWUgYXJndW1lbnQpCitSZWY8TWljcm90YXNrPiBj
cmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKFZNJiB2bSwgSlNQcm9taXNlUmVh
Y3Rpb24qIHJlYWN0aW9uLCBKU1ZhbHVlIGFyZ3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayh2bSwgcmVhY3Rpb24sIGFyZ3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1p
Y3JvdGFzayh2bSwgcmVhY3Rpb24sIGFyZ3VtZW50KSk7CiB9CiAKIHZvaWQgRXhlY3V0ZVByb21p
c2VSZWFjdGlvbk1pY3JvdGFzazo6cnVuKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCmluZGV4IDA5YmUyZGZi
YTQ1OGMwMWFmNDE2MmEyOGU5MDViYTZkNTRhZmMxNzguLjc2NzI4ZjQ1ZTIxYTRjN2RhOGMzOTQ5
NDUwYWFjZjQ4MGNmMjliYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9taXNlUmVhY3Rpb24uaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFdy
aXRlQmFycmllcjxVbmtub3duPiBtX2hhbmRsZXI7CiB9OwogCi1QYXNzUmVmUHRyPE1pY3JvdGFz
az4gY3JlYXRlRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayhWTSYsIEpTUHJvbWlzZVJl
YWN0aW9uKiwgSlNWYWx1ZSk7CitSZWY8TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJl
YWN0aW9uTWljcm90YXNrKFZNJiwgSlNQcm9taXNlUmVhY3Rpb24qLCBKU1ZhbHVlKTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5TmFtZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eU5hbWVBcnJheS5oCmluZGV4IDkxYWYzYTI3OGU2NTljMGM4YWViZjhmZTZlYzkxZmUw
ZDkyYWVjMTcuLmMyZjEzZDhjMzcyOWFlNWFiN2JkMzlkYjc0ZTM0NTg4M2U0Yzg2NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaApA
QCAtMzMsNyArMzMsNyBAQCBjbGFzcyBQcm9wZXJ0eU5hbWVBcnJheURhdGEgOiBwdWJsaWMgUmVm
Q291bnRlZDxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZl
Y3RvcjxJZGVudGlmaWVyLCAyMD4gUHJvcGVydHlOYW1lVmVjdG9yOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgUHJvcGVydHlOYW1lQXJyYXlEYXRhKTsgfQorICAgIHN0YXRpYyBSZWY8UHJvcGVydHlO
YW1lQXJyYXlEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFByb3BlcnR5TmFt
ZUFycmF5RGF0YSk7IH0KIAogICAgIFByb3BlcnR5TmFtZVZlY3RvciYgcHJvcGVydHlOYW1lVmVj
dG9yKCkgeyByZXR1cm4gbV9wcm9wZXJ0eU5hbWVWZWN0b3I7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVNldC5oCmluZGV4IGQ4ZjUxZWE2MjgxM2ZiMDhjZTJhNjIxNGQ5MjE2
YWZiZDA5NDM4ZWQuLmViMjllNmM1ZjMzN2IzMjNhMTEzZWUwN2JlMWQ3ODhjYzI2YzQ3ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgKQEAgLTUzLDcgKzUzLDcgQEAg
Y2xhc3MgU3RydWN0dXJlU2hhcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJ1Y3R1cmVTaGFwZT4g
ewogcHVibGljOgogICAgIFN0cnVjdHVyZVNoYXBlKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHJ1Y3R1cmVTaGFwZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0cnVjdHVy
ZVNoYXBlKTsgfQorICAgIHN0YXRpYyBSZWY8U3RydWN0dXJlU2hhcGU+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3RydWN0dXJlU2hhcGUpOyB9CiAgICAgU3RyaW5nIHByb3BlcnR5
SGFzaCgpOwogICAgIHZvaWQgbWFya0FzRmluYWwoKTsKICAgICB2b2lkIGFkZFByb3BlcnR5KFVu
aXF1ZWRTdHJpbmdJbXBsJik7CkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiBjbGFzcyBUeXBl
U2V0IDogcHVibGljIFJlZkNvdW50ZWQ8VHlwZVNldD4gewogCiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VHlwZVNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFR5cGVT
ZXQpOyB9CisgICAgc3RhdGljIFJlZjxUeXBlU2V0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFR5cGVTZXQpOyB9CiAgICAgVHlwZVNldCgpOwogICAgIHZvaWQgYWRkVHlwZUluZm9y
bWF0aW9uKFJ1bnRpbWVUeXBlLCBQYXNzUmVmUHRyPFN0cnVjdHVyZVNoYXBlPiwgU3RydWN0dXJl
Kik7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlZEFycmF5QmFzZS5oCmluZGV4IGQ2NDhmY2Q4YzkyYWExODRiMWQ1MjRk
NjhkMzQ2ZWE4YzU5YjNkZDguLmVlMjc0NmQ3OGQ4MzYwMGU3ZTIxZmViNWI2YmUxOWZmMGE1ZWQ4
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlC
YXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2Uu
aApAQCAtMTA4LDI2ICsxMDgsMjYgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIHRlbXBsYXRl
IDxjbGFzcyBTdWJjbGFzcz4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWZQdHI8U3ViY2xhc3M+IGNyZWF0ZShQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmKGJ1ZmZlcik7CiAg
ICAgICAgIGlmICghdmVyaWZ5U3ViUmFuZ2U8VD4oYnVmLCBieXRlT2Zmc2V0LCBsZW5ndGgpKQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN1YmNsYXNzKGJ1Zi5yZWxlYXNlKCksIGJ5dGVPZmZz
ZXQsIGxlbmd0aCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25l
ZCBsZW5ndGgpCisgICAgc3RhdGljIFJlZlB0cjxTdWJjbGFzcz4gY3JlYXRlVW5pbml0aWFsaXpl
ZCh1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgc2l6ZW9mKFQp
KTsKICAgICAgICAgaWYgKCFidWZmZXIuZ2V0KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY3JlYXRlPFN1YmNsYXNz
PihidWZmZXIucmVsZWFzZSgpLCAwLCBsZW5ndGgpOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxj
bGFzcyBTdWJjbGFzcz4KLSAgICBQYXNzUmVmUHRyPFN1YmNsYXNzPiBzdWJhcnJheUltcGwoaW50
IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAorICAgIFJlZlB0cjxTdWJjbGFzcz4gc3ViYXJyYXlJbXBs
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNl
dCwgbGVuZ3RoOwogICAgICAgICBjYWxjdWxhdGVPZmZzZXRBbmRMZW5ndGgoc3RhcnQsIGVuZCwg
bV9sZW5ndGgsICZvZmZzZXQsICZsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCmluZGV4IGI4OWQzZWI0MDM3YTc1MzNjMzViNjZiY2EyNGIyNTEzODdiOTExMjcuLjZhNGI4
NGM1NGUzMWQ2OTQ3ZWY5OGRlNDg0OGViNzg1NjdmNDNjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAKQEAgLTM0MCwxNyArMzQwLDE3IEBAIFZNOjp+Vk0oKQogI2VuZGlmCiB9
CiAKLVBhc3NSZWZQdHI8Vk0+IFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgaGVhcFR5
cGUpCitSZWY8Vk0+IFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgaGVhcFR5cGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWTShBUElDb250ZXh0R3JvdXAsIGhlYXBUeXBlKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVk0oQVBJQ29udGV4dEdyb3VwLCBoZWFwVHlwZSkp
OwogfQogCi1QYXNzUmVmUHRyPFZNPiBWTTo6Y3JlYXRlKEhlYXBUeXBlIGhlYXBUeXBlKQorUmVm
PFZNPiBWTTo6Y3JlYXRlKEhlYXBUeXBlIGhlYXBUeXBlKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVk0oRGVmYXVsdCwgaGVhcFR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
TShEZWZhdWx0LCBoZWFwVHlwZSkpOwogfQogCi1QYXNzUmVmUHRyPFZNPiBWTTo6Y3JlYXRlTGVh
a2VkKEhlYXBUeXBlIGhlYXBUeXBlKQorUmVmPFZNPiBWTTo6Y3JlYXRlTGVha2VkKEhlYXBUeXBl
IGhlYXBUeXBlKQogewogICAgIHJldHVybiBjcmVhdGUoaGVhcFR5cGUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggNDc4MTYxZGY2OTY5OTg3N2MzNDU3MTNmYjYyYTRlYTRh
YjU3ZjM5MS4uMWQ3MjJmOWFjMDM4N2E0MTg3ZDgwZjEyYWY0NTI4YzMyZWFhNTUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0yMTMsOSArMjEzLDkgQEAgcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIHNoYXJlZEluc3RhbmNlRXhpc3RzKCk7CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFZNJiBzaGFyZWRJbnN0YW5jZSgpOwogCi0gICAg
SlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8Vk0+IGNyZWF0ZShIZWFwVHlwZSA9
IFNtYWxsSGVhcCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8Vk0+
IGNyZWF0ZUxlYWtlZChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8Vk0+IGNyZWF0ZUNvbnRleHRHcm91cChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxWTT4gY3JlYXRlKEhlYXBUeXBlID0gU21hbGxIZWFw
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZNPiBjcmVhdGVMZWFrZWQoSGVh
cFR5cGUgPSBTbWFsbEhlYXApOworICAgIHN0YXRpYyBSZWY8Vk0+IGNyZWF0ZUNvbnRleHRHcm91
cChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgflZNKCk7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKaW5kZXggZjllMmM0N2Fl
NDMxOWVkNzlkMWVlZWIzNDNlMmFiYzhhZDQ4MTlkMC4uZDE5NDE1OTJiZDc5ZmFmZWE3NWY0YjA4
MGEwMjZiNjc5OTE5YzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RS
ZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAt
NTE5LDcgKzUxOSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFy
KiogYXJndiwgQ29tbWFuZExpbmUmIG9wdGlvbnMpCiAKIGludCByZWFsTWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiB7Ci0gICAgVk0qIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtS
ZWYoKTsKKyAgICBWTSogdm0gPSAmVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKICAg
ICBKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKIAogICAgIENvbW1hbmRMaW5lIG9wdGlvbnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKaW5k
ZXggZjRhYWVjOTk4MDcyMjVkZWYzMzY2NTgxMDcyOTFiMDM1ZGQyNzJhMS4uMGM3MDg5NjU0NjIz
ZTVmNjY0NjlhNGFkYzZkZWExZDBmNGQ5MGQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFlhcnIgewogCiBjbGFzcyBSZWd1bGFyRXhwcmVzc2lvbjo6UHJp
dmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlZ3VsYXJFeHByZXNzaW9uOjpQcml2YXRlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgcGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11bHRpbGlu
ZU1vZGUgbXVsdGlsaW5lTW9kZSkKKyAgICBzdGF0aWMgUmVmPFByaXZhdGU+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHBhdHRlcm4sIFRleHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBN
dWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFByaXZhdGUocGF0dGVybiwgY2FzZVNlbnNpdGl2aXR5LCBtdWx0aWxpbmVNb2RlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByaXZhdGUocGF0dGVybiwgY2FzZVNlbnNp
dGl2aXR5LCBtdWx0aWxpbmVNb2RlKSk7CiAgICAgfQogCiAgICAgaW50IGxhc3RNYXRjaExlbmd0
aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmlu
ZGV4IGJjMDJiMTU0MTYyNzRmNWU1NTI0OTkzYjdkNGJkMWU1ZTQyMDY2N2UuLjhkY2U0NDJhNDJm
YWM5ZDIyMTJjZjIwZDk3ZTBlMGUwODU2NzQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIFZNJiBKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkKICAgICBzdGF0aWMgVk0qIHZtID0gbnVsbHB0cjsKICAg
ICBpZiAoIXZtKSB7CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OmluaXRpYWxpemVUaHJlYWRp
bmcoKTsKLSAgICAgICAgdm0gPSBWTTo6Y3JlYXRlTGVha2VkKExhcmdlSGVhcCkubGVha1JlZigp
OworICAgICAgICB2bSA9ICZWTTo6Y3JlYXRlTGVha2VkKExhcmdlSGVhcCkubGVha1JlZigpOwog
I2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIHZtLT5zZXRFeGNsdXNpdmVUaHJlYWQoc3RkOjp0
aGlzX3RocmVhZDo6Z2V0X2lkKCkpOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254538</attachid>
            <date>2015-06-08 19:16:27 -0700</date>
            <delta_ts>2015-06-08 19:16:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-145750-20150609111606.patch</filename>
            <type>text/plain</type>
            <size>51723</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZDdiMWFlYmI4NzI3ODRiZDc2ZjNhYjUyMzA1NzA2M2MxMTVjNTdkLi41MTM3Y2YzN2Q3YzkwMGQw
MjhjYzA4NGNkNDM0NWEzYzdjNmNjYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDEgQEAKKzIwMTUtMDYtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFB1cmdlIFBhc3NSZWZQdHIgaW4gSmF2YVNjcmlwdENvcmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc1MAorCisg
ICAgICAgIEFzIGEgc3RlcCB0byBwdXJnZSBQYXNzUmVmUHRyLCB0aGlzIHBhdGNoIHJlcGxhY2Vz
IFBhc3NSZWZQdHIgd2l0aCBSZWYgb3IgUmVmUHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3Bh
cXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUpOgorICAgICAgICAqIEFQSS9K
U0NsYXNzUmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgICog
QVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUpOgor
ICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6CisgICAgICAgIChKU1N0cmluZ0NyZWF0ZVdp
dGhDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKToK
KyAgICAgICAgKiBBUEkvT3BhcXVlSlNTdHJpbmcuY3BwOgorICAgICAgICAoT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL09wYXF1ZUpTU3RyaW5nLmg6CisgICAgICAgIChP
cGFxdWVKU1N0cmluZzo6Y3JlYXRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvU3RhdGljUHJv
cGVydHlBbmFseXNpcy5oOgorICAgICAgICAoSlNDOjpTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzOjpj
cmVhdGUpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmg6CisgICAgICAg
IChKU0M6OkRlYnVnZ2VyQ2FsbEZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIGRmZy9ERkdUb0ZU
TERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogZGZnL0RG
R1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZGZnL0RGR1Rv
RlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
PlRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjazo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVG9GVExGb3JPU1JFbnRy
eURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlz
dC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChK
U0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZHV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OmVu
c3VyZUdsb2JhbEZUTFdvcmtsaXN0KToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAg
ICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKEpTQzo6R0NB
Y3Rpdml0eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIpOgorICAgICAgICAqIGhlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAoSlNDOjpHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNy
ZWF0ZUZ1bGxUaW1lcik6CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SmF2YVNjcmlw
dENhbGxGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRz
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBqaXQvSklUU3R1
YlJvdXRpbmUuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YlJvdXRpbmU6OmNyZWF0ZVNlbGZNYW5h
Z2VkUm91dGluZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2s6OmNyZWF0ZSk6CisgICAgICAgICogaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgorICAg
ICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OkFycmF5UGF0
dGVybk5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpjcmVh
dGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZSk6
CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmg6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAg
ICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlOjpjcmVh
dGUpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGUuaDoKKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg6CisgICAgICAgICog
cHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmNyZWF0
ZSk6CisgICAgICAgICogcnVudGltZS9EYXRhVmlldy5jcHA6CisgICAgICAgIChKU0M6OkRhdGFW
aWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURh
dGE6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OmNyZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2spOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUmVhY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL1By
b3BlcnR5TmFtZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5RGF0YTo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlU2hhcGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlR5cGVTZXQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAoSlNDOjpUeXBlZEFy
cmF5QmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6VHlwZWRBcnJheUJhc2U6OmNyZWF0ZVVu
aW5pdGlhbGl6ZWQpOgorICAgICAgICAoSlNDOjpUeXBlZEFycmF5QmFzZTo6c3ViYXJyYXlJbXBs
KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmNyZWF0ZUNv
bnRleHRHcm91cCk6CisgICAgICAgIChKU0M6OlZNOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpW
TTo6Y3JlYXRlTGVha2VkKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogeWFy
ci9SZWd1bGFyRXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ3VsYXJFeHBy
ZXNzaW9uOjpQcml2YXRlOjpjcmVhdGUpOgorCiAyMDE1LTA2LTA3ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHRpbnkgc2V0IG1hZ2ljIGluIFN0cnVjdHVy
ZVNldCBzaG91bGQgYmUgYXZhaWxhYmxlIGluIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY5NmNlODM0ZmFi
NWZlZGM5MzgyZjlkMzNjNGIzMjY5NWQ2YTk0M2MuLmRjY2NkZDFmNmQyNjk1ZjMxNTI5YzM2YTVm
YjRiMTMzZWZjM2E3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNi0wOCAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2Ug
UGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHB1cmdlIFBhc3NSZWZQdHIsIHRoaXMgcGF0
Y2ggcmVwbGFjZXMgUGFzc1JlZlB0ciB3aXRoIFJlZiBvciBSZWZQdHIuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
Y29tbW9uVk0pOgorCiAyMDE1LTA2LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViQ29udGVudCBjcmFzaCBpbiBXZWJDb3JlOjpQYWdlOjpzZXNzaW9uSUQo
KSBjb25zdCArIDAgKFBhZ2UuY3BwOjE2NjApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Ns
YXNzUmVmLmNwcAppbmRleCBlMzU0N2QyZjVkM2NkMDQyM2NiYjQ1YTJmMTM4Yzc0NzRlYWRiYjll
Li5hOGU3Y2I3ZDQ1NWQyZDAxYjk0OTI2ZjIzOGExY2UwYjNhMTEyOGM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKQEAgLTEwOCw5ICsxMDgsOSBAQCBPcGFxdWVK
U0NsYXNzOjp+T3BhcXVlSlNDbGFzcygpCiAgICAgICAgIEpTQ2xhc3NSZWxlYXNlKHByb3RvdHlw
ZUNsYXNzKTsKIH0KIAotUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpj
cmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5p
dGlvbikKK1JlZjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1dG9tYXRp
Y1Byb3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogZGVmaW5pdGlvbikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE9wYXF1ZUpTQ2xhc3MoZGVmaW5pdGlvbiwgMCkpOwogfQogCiBQ
YXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZShjb25zdCBKU0Ns
YXNzRGVmaW5pdGlvbiogY2xpZW50RGVmaW5pdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NsYXNzUmVmLmgKaW5kZXggZDI5OGExNjE5Yzk2NmNkZWFhYzYwOTlmZDkyNDk4MjViMzdkNWMw
ZS4uNjg3ZDhiOWI5NGQ5MTgzYjhhNjk5MzA5MzAyZTdiZGZkNzU0NzZlYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiBz
dHJ1Y3QgT3BhcXVlSlNDbGFzcyA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxPcGFxdWVK
U0NsYXNzPiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNv
bnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlND
bGFzcz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24q
KTsKKyAgICBzdGF0aWMgUmVmPE9wYXF1ZUpTQ2xhc3M+IGNyZWF0ZU5vQXV0b21hdGljUHJvdG90
eXBlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfk9w
YXF1ZUpTQ2xhc3MoKTsKICAgICAKICAgICBTdHJpbmcgY2xhc3NOYW1lKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKaW5kZXggNTg4OTkxODc5NDlmZGVlODlj
ZmM0ZjdiMmZhYmRiMjNhZTNjODk5OC4uNDk3NmMyOWFlZWVmOTEzOTNiYjBhODcyOWU1MDA2NDcy
NjRjMWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRS
ZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcApA
QCAtNzYsNyArNzYsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0M6OmphdmFT
Y3JpcHRDb3JlQVBJR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBKU0NvbnRleHRHcm91cFJl
ZiBKU0NvbnRleHRHcm91cENyZWF0ZSgpCiB7CiAgICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwot
ICAgIHJldHVybiB0b1JlZihWTTo6Y3JlYXRlQ29udGV4dEdyb3VwKCkubGVha1JlZigpKTsKKyAg
ICByZXR1cm4gdG9SZWYoJlZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKS5sZWFrUmVmKCkpOwogfQog
CiBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cFJldGFpbihKU0NvbnRleHRHcm91cFJl
ZiBncm91cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRS
ZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKaW5kZXgg
OTlkN2YzMWU3ODNmMjZiYWMxYjdkYWEwNjM0MmY4MjRlZDY2ZTVkNi4uNDc0N2Q5N2Y2Mjc1NWY1
YTUwMTEwZGRjMzExMzE2NTg2NjEzNDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1NjcmlwdFJlZi5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
c3RydWN0IE9wYXF1ZUpTU2NyaXB0IDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgV1RGOjpQYXNzUmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUoVk0qIHZt
LCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpCisgICAgc3RhdGljIFdURjo6UmVmUHRyPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUo
Vk0qIHZtLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZihuZXcg
T3BhcXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAg
ICAgICAgcmV0dXJuIFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgdXJsLCBz
dGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTU3RyaW5nUmVmLmNwcAppbmRleCAzYjc1ZjNkZmE5ZjcxYzJkODM2MDU4YTBhZGJkYzg0YTZj
ZDJkMGY1Li5jOWIzODBjZTY1NDE1OWQzY2QxMWViZTI1OTA0NmJjNjkxZWQwZmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycyhjb25zdCBKU0NoYXIqIGNoYXJzLCBzaXplX3QgbnVtQ2hhcnMpCiB7CiAg
ICAgaW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3Jl
YXRlKGNoYXJzLCBudW1DaGFycykubGVha1JlZigpOworICAgIHJldHVybiAmT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZShjaGFycywgbnVtQ2hhcnMpLmxlYWtSZWYoKTsKIH0KIAogSlNTdHJpbmdSZWYg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29uc3QgY2hhciogc3RyaW5nKQpAQCAtNTEs
MTIgKzUxLDEyIEBAIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGNv
bnN0IGNoYXIqIHN0cmluZykKICAgICAgICAgY29uc3QgTENoYXIqIHN0cmluZ1N0YXJ0ID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHN0cmluZyk7CiAgICAgICAgIGlmIChjb252ZXJz
aW9uT0sgPT0gY29udmVydFVURjhUb1VURjE2KCZzdHJpbmcsIHN0cmluZyArIGxlbmd0aCwgJnAs
IHAgKyBsZW5ndGgsICZzb3VyY2VJc0FsbEFTQ0lJKSkgewogICAgICAgICAgICAgaWYgKHNvdXJj
ZUlzQWxsQVNDSUkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVh
dGUoc3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOwotICAgICAgICAgICAgcmV0dXJuIE9w
YXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgcCAtIGJ1ZmZlci5kYXRhKCkpLmxl
YWtSZWYoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUo
c3RyaW5nU3RhcnQsIGxlbmd0aCkubGVha1JlZigpOworICAgICAgICAgICAgcmV0dXJuICZPcGFx
dWVKU1N0cmluZzo6Y3JlYXRlKGJ1ZmZlci5kYXRhKCksIHAgLSBidWZmZXIuZGF0YSgpKS5sZWFr
UmVmKCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNy
ZWF0ZSgpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoKS5s
ZWFrUmVmKCk7CiB9CiAKIEpTU3RyaW5nUmVmIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNO
b0NvcHkoY29uc3QgSlNDaGFyKiBjaGFycywgc2l6ZV90IG51bUNoYXJzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZkNGLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWZDRi5jcHAKaW5kZXggNTI0MWE5YmNlMWQwMzY4NDgw
NWQ5ZDEzMTI5Y2Q5NmVkNDMxYjZhNi4uMDU4NzI1OTNmNmRiYjlhODUzYTgxNjFhNjliYmRmNzQy
YTIzMzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1Jl
ZkNGLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmQ0YuY3Bw
CkBAIC00MSwxOCArNDEsMTggQEAgSlNTdHJpbmdSZWYgSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJp
bmcoQ0ZTdHJpbmdSZWYgc3RyaW5nKQogICAgIC8vIGl0IGNhbiBob2xkLiAgKDxyZGFyOi8vcHJv
YmxlbS82ODA2NDc4PikKICAgICBzaXplX3QgbGVuZ3RoID0gQ0ZTdHJpbmdHZXRMZW5ndGgoc3Ry
aW5nKTsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1JlZigpOwor
ICAgICAgICByZXR1cm4gJk9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCIiKSwgMCkubGVha1JlZigpOwogCiAgICAgVmVjdG9yPExDaGFyLCAxMDI0
PiBsY2hhckJ1ZmZlcihsZW5ndGgpOwogICAgIENGSW5kZXggdXNlZEJ1ZmZlckxlbmd0aDsKICAg
ICBDRkluZGV4IGNvbnZlcnRlZFNpemUgPSBDRlN0cmluZ0dldEJ5dGVzKHN0cmluZywgQ0ZSYW5n
ZU1ha2UoMCwgbGVuZ3RoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIDAsIGZhbHNlLCBs
Y2hhckJ1ZmZlci5kYXRhKCksIGxlbmd0aCwgJnVzZWRCdWZmZXJMZW5ndGgpOwogICAgIGlmIChz
dGF0aWNfY2FzdDxzaXplX3Q+KGNvbnZlcnRlZFNpemUpID09IGxlbmd0aCAmJiBzdGF0aWNfY2Fz
dDxzaXplX3Q+KHVzZWRCdWZmZXJMZW5ndGgpID09IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIE9w
YXF1ZUpTU3RyaW5nOjpjcmVhdGUobGNoYXJCdWZmZXIuZGF0YSgpLCBsZW5ndGgpLmxlYWtSZWYo
KTsKKyAgICAgICAgcmV0dXJuICZPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGxjaGFyQnVmZmVyLmRh
dGEoKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiAKICAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8VW5pQ2hhcltdPihsZW5ndGgpOwogICAgIENGU3RyaW5nR2V0Q2hhcmFjdGVycyhzdHJp
bmcsIENGUmFuZ2VNYWtlKDAsIGxlbmd0aCksIGJ1ZmZlci5nZXQoKSk7CiAgICAgc3RhdGljX2Fz
c2VydChzaXplb2YoVW5pQ2hhcikgPT0gc2l6ZW9mKFVDaGFyKSwgIlVuaUNoYXIgYW5kIFVDaGFy
IG11c3QgYmUgc2FtZSBzaXplIik7Ci0gICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUo
cmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KGJ1ZmZlci5nZXQoKSksIGxlbmd0aCkubGVha1JlZigp
OworICAgIHJldHVybiAmT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PFVD
aGFyKj4oYnVmZmVyLmdldCgpKSwgbGVuZ3RoKS5sZWFrUmVmKCk7CiB9CiAKIENGU3RyaW5nUmVm
IEpTU3RyaW5nQ29weUNGU3RyaW5nKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgSlNTdHJpbmdS
ZWYgc3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVK
U1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNw
cAppbmRleCA3ZjllZGI0MTM2ZTI3NDk5NzQ3ZDI5NmQyZjFhMmRjNDg5YjA0NDNkLi4wN2E3OWFk
OTllNmRjN2YzMWM1ZjhmYmFhOTI0MWVmMTJmZWEyNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCi1QYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBPcGFxdWVKU1N0cmlu
Zzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBP
cGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIGlmIChz
dHJpbmcuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5oCmluZGV4IDAzYWU1Nzc5MDRjY2FiNTdmYjQwN2Zj
NTUxNGRjODM5MzFmNjkwYTQuLjIwODEzMWIzYjQxNThlN2M2ZmNmZGU5MWU0NmMzNTc3ODk3YWRj
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgKQEAgLTM2
LDIyICszNiwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKIH0KIAogc3RydWN0IE9wYXF1ZUpTU3RyaW5n
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1ZUpTU3RyaW5nPiB7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxP
cGFxdWVKU1N0cmluZz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgT3BhcXVlSlNTdHJpbmcpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPcGFxdWVK
U1N0cmluZyk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+
IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHN0
YXRpYyBSZWY8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBMQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFx
dWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgT3BhcXVlSlNTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHN0YXRpYyBSZWY8T3BhcXVlSlNTdHJpbmc+
IGNyZWF0ZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyhjaGFyYWN0ZXJzLCBs
ZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTdHJpbmcoY2hh
cmFjdGVycywgbGVuZ3RoKSk7CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFBhc3NSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVhdGUoY29u
c3QgU3RyaW5nJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVlSlNTdHJpbmcoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9TdGF0aWNQ
cm9wZXJ0eUFuYWx5c2lzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1N0
YXRpY1Byb3BlcnR5QW5hbHlzaXMuaAppbmRleCAyOTNjMjI0MTRhNjIxMGJlMWZmN2U3YjFlMjhm
YTRmMzUyMjQwMDAwLi41YTk5MThkZDE1ODBhY2Y3OTE5M2JmMWM0NzI5YWJiMjRhZTY5M2U4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1N0YXRpY1Byb3Bl
cnR5QW5hbHlzaXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1N0
YXRpY1Byb3BlcnR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IC8vIFJlZmVyZW5jZSBjb3VudCBpbmRpY2F0ZXMgbnVtYmVyIG9mIGxpdmUgcmVnaXN0ZXJzIHRo
YXQgYWxpYXMgdGhpcyBvYmplY3QuCiBjbGFzcyBTdGF0aWNQcm9wZXJ0eUFuYWx5c2lzIDogcHVi
bGljIFJlZkNvdW50ZWQ8U3RhdGljUHJvcGVydHlBbmFseXNpcz4gewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM+IGNyZWF0ZShWZWN0b3I8VW5s
aW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+KiBpbnN0cnVjdGlvbnMs
IHVuc2lnbmVkIHRhcmdldCkKKyAgICBzdGF0aWMgUmVmPFN0YXRpY1Byb3BlcnR5QW5hbHlzaXM+
IGNyZWF0ZShWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwgVW5zYWZlVmVjdG9yT3ZlcmZs
b3c+KiBpbnN0cnVjdGlvbnMsIHVuc2lnbmVkIHRhcmdldCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU3RhdGljUHJvcGVydHlBbmFseXNpcyhpbnN0cnVjdGlvbnMsIHRhcmdl
dCkpOyAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RhdGljUHJvcGVydHlBbmFseXNp
cyhpbnN0cnVjdGlvbnMsIHRhcmdldCkpOyAKICAgICB9CiAKICAgICB2b2lkIGFkZFByb3BlcnR5
SW5kZXgodW5zaWduZWQgcHJvcGVydHlJbmRleCkgeyBtX3Byb3BlcnR5SW5kZXhlcy5hZGQocHJv
cGVydHlJbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckNhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQ2FsbEZyYW1lLmgKaW5kZXggNWM3ZDc1YWRjOTQ4YjI2NTEyMjkwODM3MTU3NWFjMmM1
N2JkN2Q2NC4uZGY2MWM2YWEzOTM1NTQ3YWM3ODUxNzNkZWUxMDdiNTBjM2E0MGY2YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmgK
QEAgLTQ2LDkgKzQ2LDkgQEAgY2xhc3MgRGVidWdnZXJDYWxsRnJhbWUgOiBwdWJsaWMgUmVmQ291
bnRlZDxEZWJ1Z2dlckNhbGxGcmFtZT4gewogcHVibGljOgogICAgIGVudW0gVHlwZSB7IFByb2dy
YW1UeXBlLCBGdW5jdGlvblR5cGUgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlYnVnZ2Vy
Q2FsbEZyYW1lPiBjcmVhdGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCisgICAgc3RhdGljIFJlZjxE
ZWJ1Z2dlckNhbGxGcmFtZT4gY3JlYXRlKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWJ1Z2dlckNhbGxGcmFtZShjYWxsRnJhbWUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVidWdnZXJDYWxsRnJhbWUoY2FsbEZyYW1l
KSk7CiAgICAgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgRGVidWdnZXJDYWxs
RnJhbWUoQ2FsbEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCmluZGV4
IGQwMTYyYjc5ZTVmNDYxYTU4OGE5YjJjZmQ0ZjBkMDI2ZjFmNjViMGYuLmRkODEwOGE3NjA5OWY4
YTY3ZmQzZmI3ZGRlMzMxMWY3NTk1OTk3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2suY3BwCkBAIC00MywxMCArNDMsOSBAQCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
azo6VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soCiAKIFRvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrOjp+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSB7IH0K
IAotUGFzc1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gVG9GVExEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZSgKLSAgICBQYXNzUmVmUHRyPENvZGVCbG9j
az4gZGZnQ29kZUJsb2NrKQorUmVmPFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJs
b2NrPiBkZmdDb2RlQmxvY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsK
IH0KIAogdm9pZCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y29tcGlsYXRpb25E
aWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
CmluZGV4IGYxYWM0YTY4ZmM2NDk3MzBhNjViNmRhYzA4ZWQ2OTU4MWJkMzk5MmYuLjNlMGVhMDJk
MGZhMjIzNjRiOGM2OTBmYjE3MTUxNTc5ZjExNGYxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmgKQEAgLTQ1LDggKzQ1LDcgQEAgcHJvdGVjdGVkOgogcHVibGljOgogICAgIHZpcnR1
YWwgflRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKAotICAgICAg
ICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gZGZnQ29kZUJsb2NrKTsKKyAgICBzdGF0aWMgUmVmPFRv
RlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxDb2RlQmxv
Y2s+IGRmZ0NvZGVCbG9jayk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlk
QmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb21waWxhdGlvblJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAppbmRl
eCA0N2M0ZmJiZWM1MWVlZjk2Mjg1MjUyYjQ0ODAwYjA2OWMzZWM0ZGNhLi43MGNjODI1MDIyNjJl
MTczYzMwM2Y2NDg3MTg1ZDAzZmRkMWY1ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAKQEAgLTQ1LDExICs0NSwxMCBAQCBUb0ZUTEZv
ck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjp+VG9GVExGb3JPU1JFbnRyeURl
ZmVycmVkQ29tcGlsYXRpbwogewogfQogCi1QYXNzUmVmUHRyPFRvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+Ci1Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrOjpjcmVhdGUoCitSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjaz5Ub0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGRmZ0NvZGVCbG9jaykKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2soZGZnQ29kZUJsb2NrKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG9GVExG
b3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhkZmdDb2RlQmxvY2spKTsKIH0K
IAogdm9pZCBUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjb21w
aWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRy
eURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IGM1M2RmOTFmNzY5ZDdmODAyNmE1
YjRhYmNmNjc3ZWMxOTZjZjg0ZTQuLmM5ZGNmNmQ3YzAxZmMxZTQ4NTYwMDliOGZkNzMyMWMwODll
M2U0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5oCkBAIC00NSw4ICs0NSw3IEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
b0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
PiBjcmVhdGUoCi0gICAgICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spOwor
ICAgIHN0YXRpYyBSZWY8VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
az4gY3JlYXRlKFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBkZmdDb2RlQmxvY2spOwogICAgIAogICAg
IHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29k
ZUJsb2NrKik7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJs
b2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmNwcAppbmRleCA0YWExNDI4YTZjZGQ2ZGEwODU3ZmYzNTU1YzI3ZjVkMWQ0MzI2M2Ex
Li40YThmNTcyMjQ4ZDBjYmI2ZDg4ZTIxZjRlYmE2YWJmNGRmNGQxNjg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAtNjgsOSArNjgsOSBAQCB2b2lkIFdv
cmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxh
dGl2ZVByaW9yaXR5KQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxXb3JrbGlzdD4gV29ya2xpc3Q6
OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBp
bnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3Ry
aW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQ
cmlvcml0eSkKIHsKLSAgICBSZWZQdHI8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKG5ldyBX
b3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1lKSk7CiAgICAgcmVzdWx0LT5maW5pc2hDcmVh
dGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3JpdHkpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAgV29ya2xpc3QqIGVuc3VyZUdsb2JhbERGR1dvcmts
aXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmts
aXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0
T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3JrbGlzdDo6
Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFk
cygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1Jl
ZigpOworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJE
RkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRp
b25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAg
IH0pOwogICAgIHJldHVybiB0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTQyMiw3ICs0MjIs
NyBAQCBXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6
OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAg
ICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIs
IE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2Jh
bEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9wdGlvbnM6
Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkZU
TENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHRoZUds
b2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5o
CmluZGV4IGY2MWFlNGFlYjhjNzRjZTU5ZTk5MGRjYzZhMTQyOThlMDZjOWNhOTcuLmJkNmU2ZmE3
NWY2MjQwZTI3ZDMwZTYzMzI5NmQxYTU2NTI1MGZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgfldvcmts
aXN0KCk7CiAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2xpc3Q+IGNyZWF0ZShDU3Ry
aW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQ
cmlvcml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3RyaW5nIHdv
cmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0
eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+KTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2Fs
bGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJh
Y2suaAppbmRleCAyOGNmZGRiNzdlYjgzOTM1ODNiMmM4YjdlZmI4NWUxZDI2MjljNWY2Li4yMTRh
YjQzZGNhMGU4Y2JhZWM5OTk1YWZhZTIzZDNiN2YzMmQwMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC00OSw3ICs0
OSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlk
ZTsKIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gR0NBY3Rpdml0
eUNhbGxiYWNrOjpjcmVhdGVFZGVuVGltZXIoSGVhcCogaGVhcCkKK2lubGluZSBSZWZQdHI8R0NB
Y3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZUVkZW5UaW1lcihIZWFw
KiBoZWFwKQogewogICAgIHJldHVybiBzX3Nob3VsZENyZWF0ZUdDVGltZXIgPyBhZG9wdFJlZihu
ZXcgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSkgOiBudWxscHRyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4
IDg4Y2ViZDlkOTU5NjczNzAzZTU4ZmRhNjc2YmZhNmQ4MzNlZjljY2YuLjNiMWI0NTAwNWM1NWIw
NjZjN2I5MWQ2YzRlNjRkNzcwZDU0ZDA5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKIAot
aW5saW5lIFBhc3NSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5Q2FsbGJhY2s6
OmNyZWF0ZUZ1bGxUaW1lcihIZWFwKiBoZWFwKQoraW5saW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2Fs
bGJhY2s+IEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlRnVsbFRpbWVyKEhlYXAqIGhlYXApCiB7
CiAgICAgcmV0dXJuIHNfc2hvdWxkQ3JlYXRlR0NUaW1lciA/IGFkb3B0UmVmKG5ldyBGdWxsR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXApKSA6IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGYzMGMyNzcwZTY0N2YxZWM3
NGU2NzU1ZmQ5N2FhYjBkY2VmMzNlZDkuLjNkMDdlZmFhMmUxNjM4NzViMDJhMzJkYzA3YjgwOWNk
ZWNmMjlhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZp
dHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0zMCw3ICszMCw3IEBACiAjZGVmaW5lIEdDQWN0aXZpdHlDYWxsYmFja19o
CiAKICNpbmNsdWRlICJIZWFwVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFVTRShDRikKICNpbmNsdWRlIDxDb3JlRm91
bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBIZWFwOwog
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEhlYXBU
aW1lciwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEdDQWN0aXZpdHlDYWxsYmFjaz4gewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEdDQWN0aXZpdHlDYWxsYmFjaz4gY3JlYXRlRnVsbFRpbWVyKEhlYXAqKTsKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUVkZW5UaW1lcihIZWFwKik7
CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUZ1bGxUaW1lcihI
ZWFwKik7CisgICAgc3RhdGljIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IGNyZWF0ZUVkZW5U
aW1lcihIZWFwKik7CiAKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaApp
bmRleCBhZjFlMGNiMTUxMDM3NWFiMzQ0MDZjNGM1OTQ4NjA2YTYzYzczMmNiLi5hZTUzMGEyMDI3
MjBiMjE4NTk5ZjhjOTY1MTAwOGU3OGE3NjQ0MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTM2LDcgKzM2LDcg
QEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVj
dGVkU2NyaXB0SG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEluamVjdGVkU2NyaXB0SG9zdD4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkU2NyaXB0SG9zdD4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVkU2NyaXB0SG9zdCk7IH0KKyAgICBzdGF0
aWMgUmVmPEluamVjdGVkU2NyaXB0SG9zdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbmplY3RlZFNjcmlwdEhvc3QpOyB9CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHRIb3N0
KCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBzdWJ0eXBlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKSB7IHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKaW5k
ZXggYjM0NGMzM2ZiZGVlMjQ4ZGFlN2M5ZmNhOTEyZTQyMDcxZDdlNTMyZi4uNWNmYmIyM2JhMWEx
ZTkzYTNlYTAyYTQyODIyOTY4YjViZjQ1ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKQEAgLTM4LDkgKzM4LDkg
QEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWUgOiBw
dWJsaWMgUmVmQ291bnRlZDxKYXZhU2NyaXB0Q2FsbEZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4gY3JlYXRlKFBhc3NSZWZQdHI8SlND
OjpEZWJ1Z2dlckNhbGxGcmFtZT4gZGVidWdnZXJDYWxsRnJhbWUpCisgICAgc3RhdGljIFJlZjxK
YXZhU2NyaXB0Q2FsbEZyYW1lPiBjcmVhdGUoUGFzc1JlZlB0cjxKU0M6OkRlYnVnZ2VyQ2FsbEZy
YW1lPiBkZWJ1Z2dlckNhbGxGcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSmF2YVNjcmlwdENhbGxGcmFtZShkZWJ1Z2dlckNhbGxGcmFtZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBKYXZhU2NyaXB0Q2FsbEZyYW1lKGRlYnVnZ2VyQ2FsbEZyYW1lKSk7
CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5jcHAKaW5kZXgg
NDEwMGEzZjk5NWU5MzM2NjRhOTM3MTBjMzBlOGMyMTRhMGIzYjhlYi4uNTFkMWZlNjU4ZDU2YTk1
YWFkNWJkYmE0MzM5ZmMyYzkyYWFlYTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcApAQCAtMzcsOSArMzcsOSBAQAogCiBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IFNjcmlw
dEFyZ3VtZW50czo6Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSwgVmVjdG9yPERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKQorUmVmPFNjcmlwdEFyZ3VtZW50cz4g
U2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlLCBWZWN0
b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTY3JpcHRBcmd1bWVudHMoc2NyaXB0U3RhdGUsIGFyZ3VtZW50cykpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNjcmlwdEFyZ3VtZW50cyhzY3JpcHRTdGF0ZSwgYXJndW1l
bnRzKSk7CiB9CiAKIFNjcmlwdEFyZ3VtZW50czo6U2NyaXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0
YXRlKiBleGVjU3RhdGUsIFZlY3RvcjxEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZT4mIGFyZ3VtZW50
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJn
dW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50
cy5oCmluZGV4IDUzMzdlMDE5ZTA5YzM5NTE3ODAzYjg0ZDc3OWZkYmZhMzIxMmE3OTAuLjcyMDBh
YjQ4YWQ2NTQzZGRhNzI3MTY4OTIyOWEzNTgzY2Q0MGQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaApAQCAtNTEsNyArNTEsNyBA
QCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgU2NyaXB0
QXJndW1lbnRzIDogcHVibGljIFJlZkNvdW50ZWQ8U2NyaXB0QXJndW1lbnRzPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqLCBWZWN0b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpOworICAg
IHN0YXRpYyBSZWY8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBWZWN0
b3I8RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpOwogICAgIH5TY3JpcHRBcmd1
bWVudHMoKTsKIAogICAgIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBhcmd1bWVudEF0
KHNpemVfdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJSb3V0aW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5l
LmgKaW5kZXggODQ5NDkyYjM0ZDg1ZGE4NmM2OTUzODc1MzQ5ZjA2NjUyNmU2MjRhMS4uYjIxMTNh
NjVmMWY4M2E2ZDc4ZTk2YTkxYTc1ZDRkMTM0NjU4ZGU3OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViUm91dGluZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1YmxpYzoKICAg
ICAKICAgICAvLyBVc2UgdGhpcyBpZiB5b3Ugd2FudCB0byBwYXNzIGEgQ29kZVB0ciB0byBzb21l
b25lIHdobyBpbnNpc3RzIG9uIHRha2luZwogICAgIC8vIGEgUmVmUHRyPEpJVFN0dWJSb3V0aW5l
Pi4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4gY3JlYXRlU2VsZk1hbmFn
ZWRSb3V0aW5lKAorICAgIHN0YXRpYyBSZWY8SklUU3R1YlJvdXRpbmU+IGNyZWF0ZVNlbGZNYW5h
Z2VkUm91dGluZSgKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHJhd0NvZGVQb2ludGVy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShNYWNy
b0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihyYXdDb2RlUG9pbnRl
cikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSklUU3R1YlJvdXRpbmUoTWFjcm9B
c3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYocmF3Q29kZVBvaW50ZXIp
KSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgfkpJVFN0dWJSb3V0aW5lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCmluZGV4IDQ3ODYzMTJkZWYwOWIwNGYwM2E0NTZiYjZh
ZWU5NmM3OGI2ZDJhMmEuLmY3ZjBhYjliYzYxOWExODkwMDU0Mjg0ODFhMThkM2UxMDNmMjc0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
VG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCkBAIC0zNyw5ICszNyw5IEBAIG5h
bWVzcGFjZSBKU0MgewogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OkpJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkgeyB9CiBKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjazo6fkpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkg
eyB9CiAKLVBhc3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKQorUmVmPEpJVFRvREZH
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpJVFRvREZHRGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkpOwogfQogCiB2b2lkIEpJVFRvREZH
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5
bmNocm9ub3VzbHkoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggNWExYzdmZjFj
NTI0NDhkNGRjOTJkMjVkMjJkNGI3MDlhMTEyNGUyMS4uZjY0Yjk3OWNlY2NjZDQzOTMyZjMyZmQ4
OGQ1YjQ2YjI2NGI1ODExZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApAQCAtNDIs
NyArNDIsNyBAQCBwcm90ZWN0ZWQ6CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SklUVG9ERkdEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpJVFRv
REZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVm
PEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoKTsKICAgICAKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENv
ZGVCbG9jayopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZENvbXBs
ZXRlKENvZGVCbG9jayosIENvbXBpbGF0aW9uUmVzdWx0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKaW5kZXggODc3MGFhYmViMzFiODJkYmU0MTc0NGI2YTliMjFhMmVlMzNjYmEwMC4uMTc1
ZjI4NzEzZjU3MmI1YWMxZjBkZjFmZjE0M2VkNTVlYmE0NTQzYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKQEAgLTE1MDQsNyArMTUwNCw3IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICAvLyBOb3RlIHRoYXQgdGhlIG9wdGlvbnMgcGFyc2luZyBjYW4gYWZmZWN0IFZNIGNy
ZWF0aW9uLCBhbmQgdGh1cwogICAgIC8vIGNvbWVzIGZpcnN0LgogICAgIENvbW1hbmRMaW5lIG9w
dGlvbnMoYXJnYywgYXJndik7Ci0gICAgVk0qIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXApLmxl
YWtSZWYoKTsKKyAgICBWTSogdm0gPSAmVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsK
ICAgICBpbnQgcmVzdWx0OwogICAgIHsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmlu
ZGV4IGZlZjBmNzIzN2Y0YWE2MzE2ZGNhYTQ2YjMxY2ZjODE1M2RlNGIzMmYuLjdlMjZlYzNjOGU0
NTVlODlkYjFkMjBhZTY4MmExMjA4MjdmY2U3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC05NDMsOSArOTQzLDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgewogICAgIH0KICAgICAKLSAgICBpbmxpbmUgUGFzc1JlZlB0cjxBcnJh
eVBhdHRlcm5Ob2RlPiBBcnJheVBhdHRlcm5Ob2RlOjpjcmVhdGUoKQorICAgIGlubGluZSBSZWY8
QXJyYXlQYXR0ZXJuTm9kZT4gQXJyYXlQYXR0ZXJuTm9kZTo6Y3JlYXRlKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXJyYXlQYXR0ZXJuTm9kZSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEFycmF5UGF0dGVybk5vZGUpOwogICAgIH0KICAgICAKICAgICBpbmxp
bmUgT2JqZWN0UGF0dGVybk5vZGU6Ok9iamVjdFBhdHRlcm5Ob2RlKCkKQEAgLTk1MywxNCArOTUz
LDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgaW5saW5lIFBh
c3NSZWZQdHI8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2RlOjpjcmVhdGUoKQor
ICAgIGlubGluZSBSZWY8T2JqZWN0UGF0dGVybk5vZGU+IE9iamVjdFBhdHRlcm5Ob2RlOjpjcmVh
dGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmplY3RQYXR0ZXJuTm9k
ZSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iamVjdFBhdHRlcm5Ob2RlKTsKICAg
ICB9CiAKLSAgICBpbmxpbmUgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gQmluZGluZ05vZGU6OmNy
ZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpCisgICAgaW5saW5lIFJlZjxCaW5k
aW5nTm9kZT4gQmluZGluZ05vZGU6OmNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3Bl
cnR5LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBl
bmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpbmRpbmdOb2RlKGJvdW5k
UHJvcGVydHksIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmlu
ZGluZ05vZGUoYm91bmRQcm9wZXJ0eSwgc3RhcnQsIGVuZCkpOwogICAgIH0KICAgICAKICAgICBp
bmxpbmUgQmluZGluZ05vZGU6OkJpbmRpbmdOb2RlKGNvbnN0IElkZW50aWZpZXImIGJvdW5kUHJv
cGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAKaW5kZXggZmY5YWE0NGFk
MTQ3OGFiNzA5MWRhYjQ4MTY1NDAyNGQxMWZhMDUzYS4uMDdlMGQzN2ZkZmNjMTkxNmY5NzU0M2Ey
ODExZDQ0NzE2MTk2YTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5jcHAK
QEAgLTEzOSw3ICsxMzksNyBAQCBFdmFsTm9kZTo6RXZhbE5vZGUoUGFyc2VyQXJlbmEmIHBhcnNl
ckFyZW5hLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0TG9jYXRpbwogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25Cb2R5Tm9kZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEZ1bmN0aW9uUGFyYW1ldGVycz4gRnVuY3Rpb25Q
YXJhbWV0ZXJzOjpjcmVhdGUoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIpCitSZWY8RnVu
Y3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNyZWF0ZShQYXJhbWV0ZXJOb2Rl
KiBmaXJzdFBhcmFtZXRlcikKIHsKICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCA9IDA7CiAg
ICAgZm9yIChQYXJhbWV0ZXJOb2RlKiBwYXJhbWV0ZXIgPSBmaXJzdFBhcmFtZXRlcjsgcGFyYW1l
dGVyOyBwYXJhbWV0ZXIgPSBwYXJhbWV0ZXItPm5leHRQYXJhbSgpKQpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0ZXJzPiBGdW5jdGlvblBhcmFtZXRlcnM6OmNy
ZWF0ZShQYXJhbWV0ZXJOb2RlKiBmaXJzdFBhCiAKICAgICBzaXplX3Qgb2JqZWN0U2l6ZSA9IHNp
emVvZihGdW5jdGlvblBhcmFtZXRlcnMpIC0gc2l6ZW9mKHZvaWQqKSArIHNpemVvZihEZWNvbnN0
cnVjdGlvblBhdHRlcm5Ob2RlKikgKiBwYXJhbWV0ZXJDb3VudDsKICAgICB2b2lkKiBzbG90ID0g
ZmFzdE1hbGxvYyhvYmplY3RTaXplKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChzbG90KSBG
dW5jdGlvblBhcmFtZXRlcnMoZmlyc3RQYXJhbWV0ZXIsIHBhcmFtZXRlckNvdW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgKHNsb3QpIEZ1bmN0aW9uUGFyYW1ldGVycyhmaXJzdFBhcmFt
ZXRlciwgcGFyYW1ldGVyQ291bnQpKTsKIH0KIAogRnVuY3Rpb25QYXJhbWV0ZXJzOjpGdW5jdGlv
blBhcmFtZXRlcnMoUGFyYW1ldGVyTm9kZSogZmlyc3RQYXJhbWV0ZXIsIHVuc2lnbmVkIHNpemUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggOTJmMWEyMWViOWY2NmMyOTc3
MzliODVlOGE1OGExYmY5MGY1MTNiMS4uN2IwMGM3ZmUxMzc2Yjc2ODkzNjhlZmU2M2U0YzAxMGZj
NjQ0NGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTYzNCw3ICsx
NjM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGdW5jdGlvblBhcmFtZXRlcnMpOwogICAg
IHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0ZXJzPiBj
cmVhdGUoUGFyYW1ldGVyTm9kZSopOworICAgICAgICBzdGF0aWMgUmVmPEZ1bmN0aW9uUGFyYW1l
dGVycz4gY3JlYXRlKFBhcmFtZXRlck5vZGUqKTsKICAgICAgICAgfkZ1bmN0aW9uUGFyYW1ldGVy
cygpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0K
QEAgLTE3ODIsNyArMTc4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQXJyYXlQ
YXR0ZXJuTm9kZSA6IHB1YmxpYyBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5UGF0dGVybk5vZGU+IGNyZWF0ZSgp
OworICAgICAgICBzdGF0aWMgUmVmPEFycmF5UGF0dGVybk5vZGU+IGNyZWF0ZSgpOwogICAgICAg
ICB2b2lkIGFwcGVuZEluZGV4KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIERlY29uc3RydWN0aW9u
UGF0dGVybk5vZGUqIG5vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fdGFyZ2V0UGF0dGVy
bnMuYXBwZW5kKG5vZGUpOwpAQCAtMTgwMCw3ICsxODAwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgCiAgICAgY2xhc3MgT2JqZWN0UGF0dGVybk5vZGUgOiBwdWJsaWMgRGVjb25zdHJ1Y3Rpb25Q
YXR0ZXJuTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxPYmpl
Y3RQYXR0ZXJuTm9kZT4gY3JlYXRlKCk7CisgICAgICAgIHN0YXRpYyBSZWY8T2JqZWN0UGF0dGVy
bk5vZGU+IGNyZWF0ZSgpOwogICAgICAgICB2b2lkIGFwcGVuZEVudHJ5KGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIGJvb2wgd2FzU3RyaW5nLCBE
ZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiBwYXR0ZXJuKQogICAgICAgICB7CiAgICAgICAgICAg
ICBtX3RhcmdldFBhdHRlcm5zLmFwcGVuZChFbnRyeShpZGVudGlmaWVyLCB3YXNTdHJpbmcsIHBh
dHRlcm4pKTsKQEAgLTE4MjcsNyArMTgyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xh
c3MgQmluZGluZ05vZGUgOiBwdWJsaWMgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSB7CiAgICAg
cHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCaW5kaW5nTm9kZT4gY3JlYXRlKGNv
bnN0IElkZW50aWZpZXImIGJvdW5kUHJvcGVydHksIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCk7CisgICAgICAgIHN0YXRpYyBSZWY8QmluZGlu
Z05vZGU+IGNyZWF0ZShjb25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOwogICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBib3VuZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZFBy
b3BlcnR5OyB9CiAKICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQoKSBj
b25zdCB7IHJldHVybiBtX2Rpdm90U3RhcnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCA0ZmM5NTk1Mjc3YzMwYmY3YjQyZmQ0M2QzMWY3
M2Q5ZTM1YTAxNmVhLi5jY2NhYmYzNjk2NGY0MTFhNjRjYmFlMjU5MmQyNGY0MjRmMDI2YjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC03
NCw5ICs3NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5nU291cmNlUHJv
dmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3Np
dGlvbiA9IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgIHN0YXRpYyBS
ZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQ
b3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1cmwsIHN0YXJ0UG9z
aXRpb24pKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1NvdXJjZVBy
b3ZpZGVyKHNvdXJjZSwgdXJsLCBzdGFydFBvc2l0aW9uKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcAppbmRleCAwNjIyNDNiNGY2OGEwMTk2
ZjllZjAxM2Y4ZTBmNDdmNjgyN2I3ZmNmLi5mM2Q0NTBhYjIzMDM4MzBkYzIzMTAyMTU2Y2IwMWM2
OTMwMmQzYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3Bw
CkBAIC0zMSw5ICszMSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNzUmVmUHRyPFByb2Zp
bGU+IFByb2ZpbGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRv
dWJsZSBzdGFydFRpbWUpCitSZWY8UHJvZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFByb2ZpbGUodGl0bGUsIHVpZCwgc3RhcnRUaW1lKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUHJvZmlsZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpKTsKIH0KIAogUHJv
ZmlsZTo6UHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBz
dGFydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaAppbmRleCBk
YjE5YmY4YjJiMzU2MjJhNGU4OTAzM2NlZmNmNDEyODg0ZjUzYjcyLi40MWNiNjcwY2FlN2NhOWVi
MTdhZTQ2NGRhYzNlZTMxYzFhMWYxZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIFByb2ZpbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZmlsZT4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlKTsKKyAgICBzdGF0aWMgUmVmPFByb2ZpbGU+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7CiAgICAg
dmlydHVhbCB+UHJvZmlsZSgpOwogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcAppbmRleCA1NmNkZjZmNjczZWE4ZmM1MDYyYzA5ODdmMGY3
NGQ2ZmNjYTE0OWE0Li5mNzBlNGEzZjY0OTlkNGQwYjQ4NmMxMmUwMGQ4MzkwMTVkOWQ1MmE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0
b3IuY3BwCkBAIC0zOSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1QYXNzUmVmUHRy
PFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0
Y2g+IHN0b3B3YXRjaCkKK1JlZjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2VuZXJhdG9yOjpj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQs
IFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBQcm9maWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVHZW5lcmF0b3IoZXhlYywgdGl0bGUsIHVpZCwg
c3RvcHdhdGNoKSk7CiB9CiAKIFByb2ZpbGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQ
dHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAppbmRleCAzZTMwMWFlMzY5OThmYTZiOGUwMDlkODY5
NjA0ZjdlMDU1YzBkYjMzLi4zODdlZDVmNGE3MDQ0MzNkMDYzZGM3YzY5MTFiZGUxODMxMTVkOGZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJh
dG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBQcm9m
aWxlR2VuZXJhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRvcj4gIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IGNy
ZWF0ZShFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwg
UGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKKyAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlR2VuZXJh
dG9yPiBjcmVhdGUoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCB1bnNpZ25l
ZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7CiAKICAgICAgICAgLy8gTWVtYmVycwogICAg
ICAgICBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKaW5kZXggOWFjNTU2NTllOTlkNmRkNzNjYzNj
MzA5NWYzNzZiZDlhMjhkMDRjMy4uZmNhZWUwZTI0MjI5OWM2NTZiNWE1YTc2N2EwNDExZDU1YWVk
ZTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgK
QEAgLTQ0LDE0ICs0NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFByb2ZpbGVO
b2RlIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZU5vZGU+IHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxs
ZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllciwgUHJvZmls
ZU5vZGUqIHBhcmVudE5vZGUpCisgICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+IGNyZWF0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJ
ZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJ
ZGVudGlmaWVyLCBwYXJlbnROb2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBwYXJlbnROb2Rl
KSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4g
Y3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZSkKKyAg
ICAgICAgc3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2Fs
bEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFtZSwg
bm9kZSkpOwogICAgICAgICB9CiAKICAgICAgICAgc3RydWN0IENhbGwgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuY3BwCmluZGV4IDBjODNkNmU5NWIwZTI0YzQ5ZWE0
Zjk5MDk0OGYxMmU0YTRjYTAyYjcuLjc4ZTc0M2ZjMTVmODBiYmZmNTI2ZjhlNzczNjllM2IwMTY0
NzdhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5jcHAKQEAg
LTM3LDEzICszNywxMyBAQCBEYXRhVmlldzo6RGF0YVZpZXcoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZAogewogfQogCi1QYXNzUmVm
UHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKAorUmVmPERhdGFWaWV3PiBEYXRhVmlldzo6
Y3JlYXRlKAogICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOwog
fQogCi1QYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IHBhc3NlZEJ1ZmZlcikKK1JlZjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZShQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiBwYXNzZWRCdWZmZXIpCiB7CiAgICAgUmVmUHRyPEFycmF5
QnVmZmVyPiBidWZmZXIgPSBwYXNzZWRCdWZmZXI7CiAgICAgcmV0dXJuIGNyZWF0ZShidWZmZXIs
IDAsIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRhVmlldy5oCmluZGV4IDRhOGFhOTI1OGFkMTE5YjU3NDkyM2I4Nzg3NTZlYTg4YTQwYjA2OGMu
LmEwMWQxMzUwNjY5ZjNjNzVlY2FhNTdkY2IyNDY0M2E3MGNlZjBjMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaApAQCAtMzcsOCArMzcsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgRGF0YVZpZXcoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogICAgIAogcHVibGljOgotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPik7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRlKFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
OworICAgIHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
Pik7CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2VDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3Rh
bmNlQ2FjaGUuaAppbmRleCA1ZjhiMWIyNjVhMDE0YTI1YWY4NThiZTE3OWEwZDVjYWFiYzQ3Zjdh
Li42ZWJiYjBkOThiYjNiNTBmZDc5ZDdlNjczMTYyYTU4ODc2ZmE3ZGU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKQEAgLTM3LDcg
KzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIERhdGVJbnN0YW5jZURhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxEYXRlSW5zdGFuY2VEYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IERhdGVJbnN0YW5jZURhdGEpOyB9CisgICAgc3RhdGljIFJlZjxEYXRlSW5zdGFuY2VEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVJbnN0YW5jZURhdGEpOyB9CiAKICAg
ICBkb3VibGUgbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TOwogICAgIEdyZWdvcmlhbkRh
dGVUaW1lIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5jcHAKaW5kZXggMWE5NGM3MTk1ZTM1
ZWU3MmZlYTZmMGY5NThlNDlkNTFlMzYxMGRmNS4uZjUzY2NjYjVhMzYyOWJjMDNhMWFlYzgyMzhm
OGQxMGEzYzJmY2Q4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlUmVhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvbWlzZVJlYWN0aW9uLmNwcApAQCAtNTksOSArNTksOSBAQCBwcml2YXRlOgogICAgIFN0
cm9uZzxVbmtub3duPiBtX2FyZ3VtZW50OwogfTsKIAotUGFzc1JlZlB0cjxNaWNyb3Rhc2s+IGNy
ZWF0ZUV4ZWN1dGVQcm9taXNlUmVhY3Rpb25NaWNyb3Rhc2soVk0mIHZtLCBKU1Byb21pc2VSZWFj
dGlvbiogcmVhY3Rpb24sIEpTVmFsdWUgYXJndW1lbnQpCitSZWY8TWljcm90YXNrPiBjcmVhdGVF
eGVjdXRlUHJvbWlzZVJlYWN0aW9uTWljcm90YXNrKFZNJiB2bSwgSlNQcm9taXNlUmVhY3Rpb24q
IHJlYWN0aW9uLCBKU1ZhbHVlIGFyZ3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayh2bSwgcmVhY3Rpb24sIGFyZ3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFz
ayh2bSwgcmVhY3Rpb24sIGFyZ3VtZW50KSk7CiB9CiAKIHZvaWQgRXhlY3V0ZVByb21pc2VSZWFj
dGlvbk1pY3JvdGFzazo6cnVuKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VSZWFjdGlvbi5oCmluZGV4IDA5YmUyZGZiYTQ1OGMw
MWFmNDE2MmEyOGU5MDViYTZkNTRhZmMxNzguLjc2NzI4ZjQ1ZTIxYTRjN2RhOGMzOTQ5NDUwYWFj
ZjQ4MGNmMjliYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZVJlYWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlUmVhY3Rpb24uaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFdyaXRlQmFy
cmllcjxVbmtub3duPiBtX2hhbmRsZXI7CiB9OwogCi1QYXNzUmVmUHRyPE1pY3JvdGFzaz4gY3Jl
YXRlRXhlY3V0ZVByb21pc2VSZWFjdGlvbk1pY3JvdGFzayhWTSYsIEpTUHJvbWlzZVJlYWN0aW9u
KiwgSlNWYWx1ZSk7CitSZWY8TWljcm90YXNrPiBjcmVhdGVFeGVjdXRlUHJvbWlzZVJlYWN0aW9u
TWljcm90YXNrKFZNJiwgSlNQcm9taXNlUmVhY3Rpb24qLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5TmFtZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU5hbWVBcnJheS5oCmluZGV4IDkxYWYzYTI3OGU2NTljMGM4YWViZjhmZTZlYzkxZmUwZDkyYWVj
MTcuLmMyZjEzZDhjMzcyOWFlNWFiN2JkMzlkYjc0ZTM0NTg4M2U0Yzg2NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaApAQCAtMzMs
NyArMzMsNyBAQCBjbGFzcyBQcm9wZXJ0eU5hbWVBcnJheURhdGEgOiBwdWJsaWMgUmVmQ291bnRl
ZDxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxJ
ZGVudGlmaWVyLCAyMD4gUHJvcGVydHlOYW1lVmVjdG9yOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcg
UHJvcGVydHlOYW1lQXJyYXlEYXRhKTsgfQorICAgIHN0YXRpYyBSZWY8UHJvcGVydHlOYW1lQXJy
YXlEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFByb3BlcnR5TmFtZUFycmF5
RGF0YSk7IH0KIAogICAgIFByb3BlcnR5TmFtZVZlY3RvciYgcHJvcGVydHlOYW1lVmVjdG9yKCkg
eyByZXR1cm4gbV9wcm9wZXJ0eU5hbWVWZWN0b3I7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZVNldC5oCmluZGV4IGQ4ZjUxZWE2MjgxM2ZiMDhjZTJhNjIxNGQ5MjE2YWZiZDA5
NDM4ZWQuLmViMjllNmM1ZjMzN2IzMjNhMTEzZWUwN2JlMWQ3ODhjYzI2YzQ3ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3Mg
U3RydWN0dXJlU2hhcGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJ1Y3R1cmVTaGFwZT4gewogcHVi
bGljOgogICAgIFN0cnVjdHVyZVNoYXBlKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1
Y3R1cmVTaGFwZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0cnVjdHVyZVNoYXBl
KTsgfQorICAgIHN0YXRpYyBSZWY8U3RydWN0dXJlU2hhcGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3RydWN0dXJlU2hhcGUpOyB9CiAgICAgU3RyaW5nIHByb3BlcnR5SGFzaCgp
OwogICAgIHZvaWQgbWFya0FzRmluYWwoKTsKICAgICB2b2lkIGFkZFByb3BlcnR5KFVuaXF1ZWRT
dHJpbmdJbXBsJik7CkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiBjbGFzcyBUeXBlU2V0IDog
cHVibGljIFJlZkNvdW50ZWQ8VHlwZVNldD4gewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VHlwZVNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFR5cGVTZXQpOyB9
CisgICAgc3RhdGljIFJlZjxUeXBlU2V0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFR5cGVTZXQpOyB9CiAgICAgVHlwZVNldCgpOwogICAgIHZvaWQgYWRkVHlwZUluZm9ybWF0aW9u
KFJ1bnRpbWVUeXBlLCBQYXNzUmVmUHRyPFN0cnVjdHVyZVNoYXBlPiwgU3RydWN0dXJlKik7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UeXBlZEFycmF5QmFzZS5oCmluZGV4IGQ2NDhmY2Q4YzkyYWExODRiMWQ1MjRkNjhkMzQ2
ZWE4YzU5YjNkZDguLmVlMjc0NmQ3OGQ4MzYwMGU3ZTIxZmViNWI2YmUxOWZmMGE1ZWQ4OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlCYXNlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUJhc2UuaApAQCAt
MTA4LDI2ICsxMDgsMjYgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFz
cyBTdWJjbGFzcz4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3JlYXRlKFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQorICAgIHN0YXRpYyBSZWZQdHI8U3ViY2xhc3M+IGNyZWF0ZShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkK
ICAgICB7CiAgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmKGJ1ZmZlcik7CiAgICAgICAg
IGlmICghdmVyaWZ5U3ViUmFuZ2U8VD4oYnVmLCBieXRlT2Zmc2V0LCBsZW5ndGgpKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFN1YmNsYXNzKGJ1Zi5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGxl
bmd0aCkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBTdWJjbGFzcz4KLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdWJjbGFzcz4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5n
dGgpCisgICAgc3RhdGljIFJlZlB0cjxTdWJjbGFzcz4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNp
Z25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9
IEFycmF5QnVmZmVyOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgc2l6ZW9mKFQpKTsKICAg
ICAgICAgaWYgKCFidWZmZXIuZ2V0KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY3JlYXRlPFN1YmNsYXNzPihidWZm
ZXIucmVsZWFzZSgpLCAwLCBsZW5ndGgpOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBT
dWJjbGFzcz4KLSAgICBQYXNzUmVmUHRyPFN1YmNsYXNzPiBzdWJhcnJheUltcGwoaW50IHN0YXJ0
LCBpbnQgZW5kKSBjb25zdAorICAgIFJlZlB0cjxTdWJjbGFzcz4gc3ViYXJyYXlJbXBsKGludCBz
dGFydCwgaW50IGVuZCkgY29uc3QKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCwgbGVu
Z3RoOwogICAgICAgICBjYWxjdWxhdGVPZmZzZXRBbmRMZW5ndGgoc3RhcnQsIGVuZCwgbV9sZW5n
dGgsICZvZmZzZXQsICZsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmlu
ZGV4IGI4OWQzZWI0MDM3YTc1MzNjMzViNjZiY2EyNGIyNTEzODdiOTExMjcuLjZhNGI4NGM1NGUz
MWQ2OTQ3ZWY5OGRlNDg0OGViNzg1NjdmNDNjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAKQEAgLTM0MCwxNyArMzQwLDE3IEBAIFZNOjp+Vk0oKQogI2VuZGlmCiB9CiAKLVBh
c3NSZWZQdHI8Vk0+IFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgaGVhcFR5cGUpCitS
ZWY8Vk0+IFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoSGVhcFR5cGUgaGVhcFR5cGUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBWTShBUElDb250ZXh0R3JvdXAsIGhlYXBUeXBlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVk0oQVBJQ29udGV4dEdyb3VwLCBoZWFwVHlwZSkpOwogfQog
Ci1QYXNzUmVmUHRyPFZNPiBWTTo6Y3JlYXRlKEhlYXBUeXBlIGhlYXBUeXBlKQorUmVmPFZNPiBW
TTo6Y3JlYXRlKEhlYXBUeXBlIGhlYXBUeXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Vk0oRGVmYXVsdCwgaGVhcFR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWTShEZWZh
dWx0LCBoZWFwVHlwZSkpOwogfQogCi1QYXNzUmVmUHRyPFZNPiBWTTo6Y3JlYXRlTGVha2VkKEhl
YXBUeXBlIGhlYXBUeXBlKQorUmVmPFZNPiBWTTo6Y3JlYXRlTGVha2VkKEhlYXBUeXBlIGhlYXBU
eXBlKQogewogICAgIHJldHVybiBjcmVhdGUoaGVhcFR5cGUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKaW5kZXggNDc4MTYxZGY2OTY5OTg3N2MzNDU3MTNmYjYyYTRlYTRhYjU3ZjM5
MS4uMWQ3MjJmOWFjMDM4N2E0MTg3ZDgwZjEyYWY0NTI4YzMyZWFhNTUyZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCkBAIC0yMTMsOSArMjEzLDkgQEAgcHVibGljOgogICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBib29sIHNoYXJlZEluc3RhbmNlRXhpc3RzKCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFZNJiBzaGFyZWRJbnN0YW5jZSgpOwogCi0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8Vk0+IGNyZWF0ZShIZWFwVHlwZSA9IFNtYWxs
SGVhcCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8Vk0+IGNyZWF0
ZUxlYWtlZChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vk0+
IGNyZWF0ZUNvbnRleHRHcm91cChIZWFwVHlwZSA9IFNtYWxsSGVhcCk7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIFJlZjxWTT4gY3JlYXRlKEhlYXBUeXBlID0gU21hbGxIZWFwKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFZNPiBjcmVhdGVMZWFrZWQoSGVhcFR5cGUg
PSBTbWFsbEhlYXApOworICAgIHN0YXRpYyBSZWY8Vk0+IGNyZWF0ZUNvbnRleHRHcm91cChIZWFw
VHlwZSA9IFNtYWxsSGVhcCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgflZNKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKaW5kZXggZjllMmM0N2FlNDMxOWVk
NzlkMWVlZWIzNDNlMmFiYzhhZDQ4MTlkMC4uZDE5NDE1OTJiZDc5ZmFmZWE3NWY0YjA4MGEwMjZi
Njc5OTE5YzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcApAQCAtNTE5LDcg
KzUxOSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJn
diwgQ29tbWFuZExpbmUmIG9wdGlvbnMpCiAKIGludCByZWFsTWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiB7Ci0gICAgVk0qIHZtID0gVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsK
KyAgICBWTSogdm0gPSAmVk06OmNyZWF0ZShMYXJnZUhlYXApLmxlYWtSZWYoKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9ja2VyKHZtKTsKIAogICAgIENvbW1hbmRMaW5lIG9wdGlvbnM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKaW5kZXggZjRh
YWVjOTk4MDcyMjVkZWYzMzY2NTgxMDcyOTFiMDM1ZGQyNzJhMS4uMGM3MDg5NjU0NjIzZTVmNjY0
NjlhNGFkYzZkZWExZDBmNGQ5MGQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIFlhcnIgewogCiBjbGFzcyBSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFJlZ3VsYXJFeHByZXNzaW9uOjpQcml2YXRlPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0
dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11bHRpbGluZU1vZGUg
bXVsdGlsaW5lTW9kZSkKKyAgICBzdGF0aWMgUmVmPFByaXZhdGU+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHBhdHRlcm4sIFRleHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxp
bmVNb2RlIG11bHRpbGluZU1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFByaXZhdGUocGF0dGVybiwgY2FzZVNlbnNpdGl2aXR5LCBtdWx0aWxpbmVNb2RlKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByaXZhdGUocGF0dGVybiwgY2FzZVNlbnNpdGl2aXR5
LCBtdWx0aWxpbmVNb2RlKSk7CiAgICAgfQogCiAgICAgaW50IGxhc3RNYXRjaExlbmd0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGJj
MDJiMTU0MTYyNzRmNWU1NTI0OTkzYjdkNGJkMWU1ZTQyMDY2N2UuLjhkY2U0NDJhNDJmYWM5ZDIy
MTJjZjIwZDk3ZTBlMGUwODU2NzQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIFZNJiBKU0RPTVdpbmRv
d0Jhc2U6OmNvbW1vblZNKCkKICAgICBzdGF0aWMgVk0qIHZtID0gbnVsbHB0cjsKICAgICBpZiAo
IXZtKSB7CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
LSAgICAgICAgdm0gPSBWTTo6Y3JlYXRlTGVha2VkKExhcmdlSGVhcCkubGVha1JlZigpOworICAg
ICAgICB2bSA9ICZWTTo6Y3JlYXRlTGVha2VkKExhcmdlSGVhcCkubGVha1JlZigpOwogI2lmICFQ
TEFURk9STShJT1MpCiAgICAgICAgIHZtLT5zZXRFeGNsdXNpdmVUaHJlYWQoc3RkOjp0aGlzX3Ro
cmVhZDo6Z2V0X2lkKCkpOwogI2Vsc2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>