<?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>159146</bug_id>
          
          <creation_ts>2016-06-27 06:26:00 -0700</creation_ts>
          <short_desc>Add setlike specific methods and attribute</short_desc>
          <delta_ts>2017-02-02 08:16:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>159140</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>159140</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1205535</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-06-27 06:26:00 -0700</bug_when>
    <thetext>As specified in https://heycam.github.io/webidl/#idl-setlike, in addition to iterable-like methods, netlike interfaces also support:
- size attribute
- has method
- add, remove and clear methods for writable setlike interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205546</commentid>
    <comment_count>1</comment_count>
      <attachid>282130</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-06-27 07:10:09 -0700</bug_when>
    <thetext>Created attachment 282130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272462</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-02 08:16:43 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 159140 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282130</attachid>
            <date>2016-06-27 07:10:09 -0700</date>
            <delta_ts>2016-06-27 07:10:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159146-20160627160953.patch</filename>
            <type>text/plain</type>
            <size>42792</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhkOTM1NDFiMWYxZWY3
MzE3MzIzN2NjNDljYzViZTc0ZGI3YmM4Ni4uOThlNzk2MzMyM2JkYzBiY2VhZTAzM2E2OTdkYjYy
NjBjZGQ0NWE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAxNi0wNi0yNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubmZAZ21haWwuY29tPgorCisgICAgICAgIEFkZCBzZXRsaWtlIHNw
ZWNpZmljIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MTQ2CisKKyAgICAgICAgQWRkaW5nIHN1cHBvcnQgZm9y
IHJlYWRvbmx5IHNpemUgYXR0cmlidXRlLCBoYXMgbWV0aG9kcyBmb3IgYWxsIHNldGxpa2UgaW50
ZXJmYWNlcyAocmVhZC1vbmx5IGFuZCByZWFkLXdyaXRlKS4KKyAgICAgICAgQWRkaW5nIHN1cHBv
cnQgZm9yIGFkZCwgZGVsZXRlIGFuZCBjbGVhciBtZXRob2RzIGZvciByZWFkLXdyaXRlIHNldGxp
a2UgaW50ZXJmYWNlcy4KKworICAgICAgICBJbiBhbGwgY2FzZXMsIElETFBhcnNlciBpcyBnZW5l
cmF0aW5nIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGVzZSBtZXRob2RzIGJxc2VkIG9uc2V0bGlrZSBk
ZWNsYXJhdGlvbi4KKyAgICAgICAgVGhlIGJpbmRpbmcgZ2VuZXJhdG9yIGlzIHRoZW4gZ2VuZXJh
dGluZyB0aGUgYmluZGluZyBjb2RlIGFzIGZvciBvdGhlciByZWd1bGFyIG1ldGhvZHMuCisKKyAg
ICAgICAgVXBkYXRlZCBmb3JFYWNoIGRlZmluaXRpb24gZ2VuZXJhdGVkIGJ5IElETFBhcnNlciB0
byBpbmNsdWRlIHRoZSBzZWNvbmQgZGVmYXVsdCBhcmd1bWVudC4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGJpbmRpbmcgdGVzdHMgYW5kIGV4aXN0aW5nIGZvbnQgZmFjZSBzZXQgdGVzdHMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKHBhcnNlUmVhZE9ubHlBdHRyaWJ1dGVPclNl
dExpa2UpOgorICAgICAgICAocGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAgICAgICAgKHBh
cnNlU2V0TGlrZVJlc3QpOgorICAgICAgICAocGFyc2VPcHRpb25hbEl0ZXJhYmxlT3JTZXRMaWtl
SW50ZXJmYWNlKToKKyAgICAgICAgKGFwcGx5TWVtYmVyTGlzdCk6CisgICAgICAgIChhZGRTZXRM
aWtlRnVuY3Rpb25zKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01SZWFkT25seVNldExpa2UuY3BwOgorICAgICAgICAod2Via2l0X2RvbV9yZWFkX29u
bHlfc2V0X2xpa2VfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fcmVhZF9vbmx5
X3NldF9saWtlX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9yZWFkX29ubHlfc2V0
X2xpa2VfaGFzKToKKyAgICAgICAgKHdlYmtpdF9kb21fcmVhZF9vbmx5X3NldF9saWtlX2dldF9z
aXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01S
ZWFkT25seVNldExpa2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0Tm9kZS5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9n
ZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X25vZGVfY2xhc3NfaW5pdCk6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9oYXMpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X25vZGVfYWRkKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9ub2RlX2RlbGV0ZSk6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9jbGVhcik6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfbm9kZV9nZXRfc2l6ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5vZGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xh
c3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2hhcyk6CisgICAgICAgICh3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2FkZCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2Rl
bGV0ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsZWFyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNldExpa2UuY3Bw
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X3NldF9saWtlX2dldF9wcm9wZXJ0eSk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfc2V0X2xpa2VfaGFzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9zZXRf
bGlrZV9hZGQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X3NldF9saWtlX2RlbGV0ZSk6Cisg
ICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfY2xlYXIpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X3NldF9saWtlX2dldF9zaXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0U2V0TGlrZS5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1JlYWRPbmx5U2V0TGlrZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVNpemUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uSGFzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkhhcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFk
ZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsZWFyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NUmVhZE9ubHlTZXRMaWtlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NUmVhZE9ubHlTZXRMaWtlLm1tOgorICAgICAgICAoLVtET01SZWFk
T25seVNldExpa2Ugc2l6ZV0pOgorICAgICAgICAoLVtET01SZWFkT25seVNldExpa2UgaGFzOl0p
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3ROb2RlLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE5vZGUubW06CisgICAg
ICAgICgtW0RPTVRlc3ROb2RlIHNpemVdKToKKyAgICAgICAgKC1bRE9NVGVzdE5vZGUgaGFzOl0p
OgorICAgICAgICAoLVtET01UZXN0Tm9kZSBhZGQ6XSk6CisgICAgICAgICgtW0RPTVRlc3ROb2Rl
IGRlbGV0ZTpdKToKKyAgICAgICAgKC1bRE9NVGVzdE5vZGUgY2xlYXJdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBzaXplXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogaGFzOl0pOgorICAgICAgICAoLVtET01U
ZXN0T2JqIGFkZDpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBkZWxldGU6XSk6CisgICAgICAg
ICgtW0RPTVRlc3RPYmogY2xlYXJdKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0U2V0TGlrZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RTZXRMaWtlLm1tOgorICAgICAgICAoLVtET01UZXN0U2V0TGlrZSBzaXplXSk6
CisgICAgICAgICgtW0RPTVRlc3RTZXRMaWtlIGhhczpdKToKKyAgICAgICAgKC1bRE9NVGVzdFNl
dExpa2UgYWRkOl0pOgorICAgICAgICAoLVtET01UZXN0U2V0TGlrZSBkZWxldGU6XSk6CisgICAg
ICAgICgtW0RPTVRlc3RTZXRMaWtlIGNsZWFyXSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RSZWFkT25seVNldExpa2UuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0U2V0TGlrZS5pZGw6CisgICAgICAgICogY3NzL0ZvbnRGYWNlU2V0LmlkbDoK
KwogMjAxNi0wNi0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIFdlYklETCBzZXRsaWtlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IDcwNWU2Y2RiNjM4YzgwOTcwZDAwZDk5YjVh
NWMyZWEwNmRjYzk0YWIuLmIwODM0OTdlNmZlNjc2NTZhZjk0MTQ4MTczYTM5Mzg5MzBmMzEzY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkBAIC0x
NDE2LDMyICsxNDE2LDM4IEBAIHN1YiBwYXJzZU9wdGlvbmFsSXRlcmFibGVPclNldExpa2VJbnRl
cmZhY2UKIAogICAgIG15ICRzeW1ib2xJdGVyYXRvckZ1bmN0aW9uID0gZG9tRnVuY3Rpb24tPm5l
dygpOwogICAgICRzeW1ib2xJdGVyYXRvckZ1bmN0aW9uLT5zaWduYXR1cmUoZG9tU2lnbmF0dXJl
LT5uZXcoKSk7Ci0gICAgJHN5bWJvbEl0ZXJhdG9yRnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICRzeW1ib2xJdGVyYXRv
ckZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyh7fSk7CiAgICAgJHN5bWJv
bEl0ZXJhdG9yRnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSgiW1N5bWJvbC5JdGVyYXRvcl0iKTsK
IAogICAgIG15ICRlbnRyaWVzRnVuY3Rpb24gPSBkb21GdW5jdGlvbi0+bmV3KCk7CiAgICAgJGVu
dHJpZXNGdW5jdGlvbi0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOwotICAgICRlbnRy
aWVzRnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgICRlbnRyaWVzRnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKHt9KTsKICAgICAkZW50cmllc0Z1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoImVudHJp
ZXMiKTsKIAogICAgIG15ICRrZXlzRnVuY3Rpb24gPSBkb21GdW5jdGlvbi0+bmV3KCk7CiAgICAg
JGtleXNGdW5jdGlvbi0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOwotICAgICRrZXlz
RnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICRrZXlzRnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KHt9KTsKICAgICAka2V5c0Z1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoImtleXMiKTsKIAogICAg
IG15ICR2YWx1ZXNGdW5jdGlvbiA9IGRvbUZ1bmN0aW9uLT5uZXcoKTsKICAgICAkdmFsdWVzRnVu
Y3Rpb24tPnNpZ25hdHVyZShkb21TaWduYXR1cmUtPm5ldygpKTsKLSAgICAkdmFsdWVzRnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgICR2YWx1ZXNGdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoe30p
OwogICAgICR2YWx1ZXNGdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKCJ2YWx1ZXMiKTsKIAogICAg
IG15ICRmb3JFYWNoRnVuY3Rpb24gPSBkb21GdW5jdGlvbi0+bmV3KCk7CiAgICAgJGZvckVhY2hG
dW5jdGlvbi0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOwotICAgICRmb3JFYWNoRnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICRmb3JFYWNoRnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KHt9KTsKICAgICAkZm9yRWFjaEZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoImZvckVhY2giKTsK
LSAgICBteSAkZm9yRWFjaEFyZ3VtZW50ID0gZG9tU2lnbmF0dXJlLT5uZXcoKTsKLSAgICAkZm9y
RWFjaEFyZ3VtZW50LT5uYW1lKCJjYWxsYmFjayIpOwotICAgICRmb3JFYWNoQXJndW1lbnQtPnR5
cGUoImFueSIpOwotICAgIHB1c2goQHskZm9yRWFjaEZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSwgKCRm
b3JFYWNoQXJndW1lbnQpKTsKKyAgICBteSAkZm9yRWFjaEFyZ3VtZW50MSA9IGRvbVNpZ25hdHVy
ZS0+bmV3KCk7CisgICAgJGZvckVhY2hBcmd1bWVudDEtPm5hbWUoImNhbGxiYWNrIik7CisgICAg
JGZvckVhY2hBcmd1bWVudDEtPnR5cGUoImFueSIpOworICAgICRmb3JFYWNoQXJndW1lbnQxLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgIG15ICRmb3JFYWNoQXJndW1lbnQyID0gZG9tU2ln
bmF0dXJlLT5uZXcoKTsKKyAgICAkZm9yRWFjaEFyZ3VtZW50Mi0+bmFtZSgidGhpc1ZhbHVlIik7
CisgICAgJGZvckVhY2hBcmd1bWVudDItPnR5cGUoImFueSIpOworICAgICRmb3JFYWNoQXJndW1l
bnQyLT5leHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgICRmb3JFYWNoQXJndW1lbnQyLT5pc09w
dGlvbmFsKDEpOworICAgIHB1c2goQHskZm9yRWFjaEZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSwgKCRm
b3JFYWNoQXJndW1lbnQxLCAkZm9yRWFjaEFyZ3VtZW50MikpOwogCiAgICAgbXkgJG5ld0RhdGFO
b2RlID0gZG9tSXRlcmFibGUtPm5ldygpOwogICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmZ1bmN0
aW9uc30sICRzeW1ib2xJdGVyYXRvckZ1bmN0aW9uKTsKQEAgLTIzMTgsNiArMjMyNCw3IEBAIHN1
YiBhcHBseU1lbWJlckxpc3QKICAgICAgICAgfQogICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tSXRlcmFibGUiKSB7CiAgICAgICAgICAgICAkaW50ZXJmYWNlLT5pdGVyYWJsZSgkaXRlbSk7
CisgICAgICAgICAgICBhZGRTZXRMaWtlRnVuY3Rpb25zKCRpbnRlcmZhY2UsICRpdGVtKSBpZiAo
JGl0ZW0tPmlzU2V0KTsKICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHJlZigkaXRlbSkgZXEgImRvbUZ1bmN0aW9uIikgewpAQCAtMjM4MCw1ICsyMzg3LDY5IEBAIHN1
YiBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdAogICAgICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKIH0KIAorc3ViIGFkZFNldExpa2VGdW5j
dGlvbnMoKQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkaXRlbSA9IHNo
aWZ0OworCisgICAgIyByZWFkLW9ubHkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzCisgICAgbXkgJGhh
c0Z1bmN0aW9uID0gZG9tRnVuY3Rpb24tPm5ldygpOworICAgICRoYXNGdW5jdGlvbi0+c2lnbmF0
dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOworICAgICRoYXNGdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgICRoYXNGdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
KCJoYXMiKTsKKyAgICAkaGFzRnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSgiYm9vbGVhbiIpOwor
ICAgIG15ICRoYXNBcmd1bWVudCA9IGRvbVNpZ25hdHVyZS0+bmV3KCk7CisgICAgJGhhc0FyZ3Vt
ZW50LT5uYW1lKCJpdGVtIik7CisgICAgJGhhc0FyZ3VtZW50LT50eXBlKCRpdGVtLT52YWx1ZVR5
cGUpOworICAgICRoYXNBcmd1bWVudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKKyAgICBwdXNo
KEB7JGhhc0Z1bmN0aW9uLT5wYXJhbWV0ZXJzfSwgKCRoYXNBcmd1bWVudCkpOworCisgICAgbXkg
JHNpemVBdHRyaWJ1dGUgPSBkb21BdHRyaWJ1dGUtPm5ldygpOworICAgICRzaXplQXR0cmlidXRl
LT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAkc2l6ZUF0dHJpYnV0ZS0+aXNSZWFkT25seSgxKTsK
KyAgICAkc2l6ZUF0dHJpYnV0ZS0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOworICAg
ICRzaXplQXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUoImxvbmciKTsKKyAgICAkc2l6ZUF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKCJzaXplIik7CisgICAgJHNpemVBdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKKworICAgIHB1c2goQHskaW50ZXJmYWNlLT5m
dW5jdGlvbnN9LCAkaGFzRnVuY3Rpb24pOworICAgIHB1c2goQHskaW50ZXJmYWNlLT5hdHRyaWJ1
dGVzfSwgJHNpemVBdHRyaWJ1dGUpOworCisgICAgcmV0dXJuIGlmICgkaXRlbS0+aXNSZWFkT25s
eSk7CisKKyAgICBteSAkYWRkRnVuY3Rpb24gPSBkb21GdW5jdGlvbi0+bmV3KCk7CisgICAgJGFk
ZEZ1bmN0aW9uLT5zaWduYXR1cmUoZG9tU2lnbmF0dXJlLT5uZXcoKSk7CisgICAgJGFkZEZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyh7fSk7CisgICAgJGFkZEZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWUoImFkZCIpOworICAgICRhZGRGdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKCRpbnRlcmZhY2UtPm5hbWUpOworICAgIG15ICRhZGRBcmd1bWVudCA9IGRvbVNpZ25hdHVy
ZS0+bmV3KCk7CisgICAgJGFkZEFyZ3VtZW50LT5uYW1lKCJpdGVtIik7CisgICAgJGFkZEFyZ3Vt
ZW50LT50eXBlKCRpdGVtLT52YWx1ZVR5cGUpOworICAgICRhZGRBcmd1bWVudC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKHt9KTsKKyAgICBwdXNoKEB7JGFkZEZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSwgKCRh
ZGRBcmd1bWVudCkpOworCisgICAgbXkgJGRlbGV0ZUZ1bmN0aW9uID0gZG9tRnVuY3Rpb24tPm5l
dygpOworICAgICRkZWxldGVGdW5jdGlvbi0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkp
OworICAgICRkZWxldGVGdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoe30p
OworICAgICRkZWxldGVGdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SW1wbGVtZW50ZWRBcyJ9ID0gInJlbW92ZSI7CisgICAgJGRlbGV0ZUZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWUoImRlbGV0ZSIpOworICAgICRkZWxldGVGdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
KCJib29sZWFuIik7CisgICAgbXkgJGRlbGV0ZUFyZ3VtZW50ID0gZG9tU2lnbmF0dXJlLT5uZXco
KTsKKyAgICAkZGVsZXRlQXJndW1lbnQtPm5hbWUoIml0ZW0iKTsKKyAgICAkZGVsZXRlQXJndW1l
bnQtPnR5cGUoJGl0ZW0tPnZhbHVlVHlwZSk7CisgICAgJGRlbGV0ZUFyZ3VtZW50LT5leHRlbmRl
ZEF0dHJpYnV0ZXMoe30pOworICAgIHB1c2goQHskZGVsZXRlRnVuY3Rpb24tPnBhcmFtZXRlcnN9
LCAoJGRlbGV0ZUFyZ3VtZW50KSk7CisKKyAgICBteSAkY2xlYXJGdW5jdGlvbiA9IGRvbUZ1bmN0
aW9uLT5uZXcoKTsKKyAgICAkY2xlYXJGdW5jdGlvbi0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+
bmV3KCkpOworICAgICRjbGVhckZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cyh7fSk7CisgICAgJGNsZWFyRnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSgiY2xlYXIiKTsKKyAg
ICAkY2xlYXJGdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKCJ2b2lkIik7CisKKyAgICBwdXNoKEB7
JGludGVyZmFjZS0+ZnVuY3Rpb25zfSwgJGFkZEZ1bmN0aW9uKTsKKyAgICBwdXNoKEB7JGludGVy
ZmFjZS0+ZnVuY3Rpb25zfSwgJGRlbGV0ZUZ1bmN0aW9uKTsKKyAgICBwdXNoKEB7JGludGVyZmFj
ZS0+ZnVuY3Rpb25zfSwgJGNsZWFyRnVuY3Rpb24pOworfQorCiAxOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01SZWFk
T25seVNldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtlLmNwcAppbmRleCA4YmU1ODA5YjllMmIzZjA5
NDA5NjQyMzJjNzhmZWIzOTAxM2U3MzMwLi41ZWZjOWQ2NWFiMTExYzYxODZkYTQzNzczNjRjYjg5
NzE1ZGFhNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01SZWFkT25seVNldExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVJlYWRPbmx5U2V0TGlr
ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NUmVh
ZE9ubHlTZXRMaWtlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVRlc3ROb2RlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29udmVydFRvVVRGOFN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02Nyw2ICs2OCwxMSBA
QCBXZWJLaXRET01SZWFkT25seVNldExpa2UqIHdyYXBSZWFkT25seVNldExpa2UoV2ViQ29yZTo6
UmVhZE9ubHlTZXRMaWtlKiBjb3JlT2JqZQogCiBHX0RFRklORV9UWVBFKFdlYktpdERPTVJlYWRP
bmx5U2V0TGlrZSwgd2Via2l0X2RvbV9yZWFkX29ubHlfc2V0X2xpa2UsIFdFQktJVF9ET01fVFlQ
RV9PQkpFQ1QpCiAKK2VudW0geworICAgIFBST1BfMCwKKyAgICBQUk9QX1NJWkUsCit9OworCiBz
dGF0aWMgdm9pZCB3ZWJraXRfZG9tX3JlYWRfb25seV9zZXRfbGlrZV9maW5hbGl6ZShHT2JqZWN0
KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtlUHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9ET01fUkVBRF9PTkxZX1NFVF9MSUtFX0dFVF9QUklWQVRFKG9iamVjdCk7CkBAIC03
Nyw2ICs4MywyMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3JlYWRfb25seV9zZXRfbGlrZV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9y
ZWFkX29ubHlfc2V0X2xpa2VfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0KIAor
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9yZWFkX29ubHlfc2V0X2xpa2VfZ2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3Bl
YyogcHNwZWMpCit7CisgICAgV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtlKiBzZWxmID0gV0VCS0lU
X0RPTV9SRUFEX09OTFlfU0VUX0xJS0Uob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJvcGVydHlJ
ZCkgeworICAgIGNhc2UgUFJPUF9TSVpFOgorICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVl
LCB3ZWJraXRfZG9tX3JlYWRfb25seV9zZXRfbGlrZV9nZXRfc2l6ZShzZWxmKSk7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCiBzdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV9yZWFkX29ubHlfc2V0X2xpa2VfY29u
c3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBHT2Jq
ZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRpZXMpCiB7CiAgICAgR09iamVjdCog
b2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9yZWFkX29ubHlfc2V0X2xpa2VfcGFy
ZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBj
b25zdHJ1Y3RQcm9wZXJ0aWVzKTsKQEAgLTk0LDYgKzExNCwxOCBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3JlYWRfb25seV9zZXRfbGlrZV9jbGFzc19pbml0KFdlYktpdERPTVJlYWRPbmx5U2V0
TGlrZUNsYQogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVv
ZihXZWJLaXRET01SZWFkT25seVNldExpa2VQcml2YXRlKSk7CiAgICAgZ29iamVjdENsYXNzLT5j
b25zdHJ1Y3RvciA9IHdlYmtpdF9kb21fcmVhZF9vbmx5X3NldF9saWtlX2NvbnN0cnVjdG9yOwog
ICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX3JlYWRfb25seV9zZXRfbGlr
ZV9maW5hbGl6ZTsKKyAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21f
cmVhZF9vbmx5X3NldF9saWtlX2dldF9wcm9wZXJ0eTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgUFJPUF9TSVpF
LAorICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygKKyAgICAgICAgICAgICJzaXplIiwKKyAgICAg
ICAgICAgICJSZWFkT25seVNldExpa2U6c2l6ZSIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGds
b25nIFJlYWRPbmx5U2V0TGlrZTpzaXplIiwKKyAgICAgICAgICAgIEdfTUlOTE9ORywgR19NQVhM
T05HLCAwLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKIH0KIAogc3Rh
dGljIHZvaWQgd2Via2l0X2RvbV9yZWFkX29ubHlfc2V0X2xpa2VfaW5pdChXZWJLaXRET01SZWFk
T25seVNldExpa2UqIHJlcXVlc3QpCkBAIC0xMDIsMyArMTM0LDIzIEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF9kb21fcmVhZF9vbmx5X3NldF9saWtlX2luaXQoV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtl
KiByZXF1ZXN0CiAgICAgbmV3IChwcml2KSBXZWJLaXRET01SZWFkT25seVNldExpa2VQcml2YXRl
KCk7CiB9CiAKK2dib29sZWFuIHdlYmtpdF9kb21fcmVhZF9vbmx5X3NldF9saWtlX2hhcyhXZWJL
aXRET01SZWFkT25seVNldExpa2UqIHNlbGYsIFdlYktpdERPTVRlc3ROb2RlKiBpdGVtKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1JFQURfT05MWV9TRVRfTElLRShzZWxmKSwgRkFMU0Up
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9OT0RFKGl0ZW0p
LCBGQUxTRSk7CisgICAgV2ViQ29yZTo6UmVhZE9ubHlTZXRMaWtlKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3ROb2RlKiBjb252ZXJ0ZWRJdGVtID0gV2ViS2l0
Ojpjb3JlKGl0ZW0pOworICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhhcygqY29udmVydGVk
SXRlbSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2xvbmcgd2Via2l0X2RvbV9yZWFkX29u
bHlfc2V0X2xpa2VfZ2V0X3NpemUoV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtlKiBzZWxmKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1JFQURfT05MWV9TRVRfTElLRShzZWxmKSwgMCk7Cisg
ICAgV2ViQ29yZTo6UmVhZE9ubHlTZXRMaWtlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPnNpemUoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01SZWFkT25seVNldExpa2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVJlYWRPbmx5U2V0TGlrZS5oCmluZGV4IDFjNGNk
ZmMyYzQzMzdlMmFlYTdmZmYzYWZlMDAyMDM5YmJlOWQ3MTkuLmE1ZWQ1YmVkZTE1YzRjNDY3ZjFk
NjM4MWJmMWViZjRjNzAzN2UwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVJlYWRPbmx5U2V0TGlrZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVJlYWRP
bmx5U2V0TGlrZS5oCkBAIC00Nyw2ICs0NywyOSBAQCBzdHJ1Y3QgX1dlYktpdERPTVJlYWRPbmx5
U2V0TGlrZUNsYXNzIHsKIFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fcmVhZF9vbmx5X3Nl
dF9saWtlX2dldF90eXBlKHZvaWQpOwogCisvKioKKyAqIHdlYmtpdF9kb21fcmVhZF9vbmx5X3Nl
dF9saWtlX2hhczoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01SZWFkT25seVNldExpa2UKKyAqIEBp
dGVtOiBBICNXZWJLaXRET01UZXN0Tm9kZQorICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisg
KgorICogU3RhYmlsaXR5OiBVbnN0YWJsZQorKiovCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfZG9tX3JlYWRfb25seV9zZXRfbGlrZV9oYXMoV2ViS2l0RE9NUmVhZE9ubHlTZXRMaWtlKiBz
ZWxmLCBXZWJLaXRET01UZXN0Tm9kZSogaXRlbSk7CisKKy8qKgorICogd2Via2l0X2RvbV9yZWFk
X29ubHlfc2V0X2xpa2VfZ2V0X3NpemU6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NUmVhZE9ubHlT
ZXRMaWtlCisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3Rh
YmxlCisqKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fcmVhZF9vbmx5X3NldF9saWtl
X2dldF9zaXplKFdlYktpdERPTVJlYWRPbmx5U2V0TGlrZSogc2VsZik7CisKIEdfRU5EX0RFQ0xT
CiAKICNlbmRpZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkgKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RTZXRMaWtlLmNwcAppbmRleCBjYmRjNTYxYzc0ZTUyYWZkZjQyZTAz
ZDE4Yzc3NzVlYjZhYTU4MjVkLi5mYWMxODBiZTVjZmQzNTQ2MzBiZGUxNmU1ZWMyYTUxOTgzYWY5
M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0U2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNldExpa2UuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdERPTVRlc3ROb2RlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dERPTVRlc3RTZXRMaWtlUHJpdmF0ZS5oIgogI2luY2x1ZGUgImdvYmplY3QvQ29udmVydFRvVVRG
OFN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTY3LDYgKzY4LDExIEBAIFdl
YktpdERPTVRlc3RTZXRMaWtlKiB3cmFwVGVzdFNldExpa2UoV2ViQ29yZTo6VGVzdFNldExpa2Uq
IGNvcmVPYmplY3QpCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0RE9NVGVzdFNldExpa2UsIHdlYmtp
dF9kb21fdGVzdF9zZXRfbGlrZSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkKIAorZW51bSB7Cisg
ICAgUFJPUF8wLAorICAgIFBST1BfU0laRSwKK307CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9zZXRfbGlrZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0RE9N
VGVzdFNldExpa2VQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9URVNUX1NFVF9MSUtFX0dFVF9Q
UklWQVRFKG9iamVjdCk7CkBAIC03Nyw2ICs4MywyMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfc2V0X2xpa2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NM
QVNTKHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOwogfQogCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfZ2V0X3Byb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwgR1ZhbHVlKiB2YWx1ZSwgR1Bh
cmFtU3BlYyogcHNwZWMpCit7CisgICAgV2ViS2l0RE9NVGVzdFNldExpa2UqIHNlbGYgPSBXRUJL
SVRfRE9NX1RFU1RfU0VUX0xJS0Uob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJvcGVydHlJZCkg
eworICAgIGNhc2UgUFJPUF9TSVpFOgorICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCB3
ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfZ2V0X3NpemUoc2VsZikpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQo
b2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwog
c3RhdGljIEdPYmplY3QqIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9jb25zdHJ1Y3RvcihHVHlw
ZSB0eXBlLCBndWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQ
YXJhbSogY29uc3RydWN0UHJvcGVydGllcykKIHsKICAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09C
SkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfcGFyZW50X2NsYXNzKS0+Y29uc3Ry
dWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVz
KTsKQEAgLTk0LDYgKzExNCwxOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xp
a2VfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0U2V0TGlrZUNsYXNzKiByZXF1ZQogICAgIGdfdHlw
ZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0U2V0
TGlrZVByaXZhdGUpKTsKICAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0cnVjdG9yID0gd2Via2l0X2Rv
bV90ZXN0X3NldF9saWtlX2NvbnN0cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUg
PSB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfZmluYWxpemU7CisgICAgZ29iamVjdENsYXNzLT5n
ZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfZ2V0X3Byb3BlcnR5OworCisg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNz
LAorICAgICAgICBQUk9QX1NJWkUsCisgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKAorICAgICAg
ICAgICAgInNpemUiLAorICAgICAgICAgICAgIlRlc3RTZXRMaWtlOnNpemUiLAorICAgICAgICAg
ICAgInJlYWQtb25seSBnbG9uZyBUZXN0U2V0TGlrZTpzaXplIiwKKyAgICAgICAgICAgIEdfTUlO
TE9ORywgR19NQVhMT05HLCAwLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7
CisKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X3NldF9saWtlX2luaXQoV2ViS2l0
RE9NVGVzdFNldExpa2UqIHJlcXVlc3QpCkBAIC0xMDIsMyArMTM0LDUzIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9pbml0KFdlYktpdERPTVRlc3RTZXRMaWtlKiByZXF1
ZXN0KQogICAgIG5ldyAocHJpdikgV2ViS2l0RE9NVGVzdFNldExpa2VQcml2YXRlKCk7CiB9CiAK
K2dib29sZWFuIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9oYXMoV2ViS2l0RE9NVGVzdFNldExp
a2UqIHNlbGYsIFdlYktpdERPTVRlc3ROb2RlKiBpdGVtKQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX1RFU1RfU0VUX0xJS0Uoc2VsZiksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfTk9ERShpdGVtKSwgRkFMU0UpOworICAgIFdlYkNvcmU6
OlRlc3RTZXRMaWtlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdlYkNvcmU6OlRl
c3ROb2RlKiBjb252ZXJ0ZWRJdGVtID0gV2ViS2l0Ojpjb3JlKGl0ZW0pOworICAgIGdib29sZWFu
IHJlc3VsdCA9IGl0ZW0tPmhhcygqY29udmVydGVkSXRlbSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworV2ViS2l0RE9NVGVzdFNldExpa2UqIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9hZGQo
V2ViS2l0RE9NVGVzdFNldExpa2UqIHNlbGYsIFdlYktpdERPTVRlc3ROb2RlKiBpdGVtKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfU0VUX0xJS0Uoc2VsZiksIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9OT0RFKGl0ZW0pLCAwKTsKKyAg
ICBXZWJDb3JlOjpUZXN0U2V0TGlrZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBX
ZWJDb3JlOjpUZXN0Tm9kZSogY29udmVydGVkSXRlbSA9IFdlYktpdDo6Y29yZShpdGVtKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6VGVzdFNldExpa2U+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0
cihpdGVtLT5hZGQoKmNvbnZlcnRlZEl0ZW0pKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlr
ZV9kZWxldGUoV2ViS2l0RE9NVGVzdFNldExpa2UqIHNlbGYsIFdlYktpdERPTVRlc3ROb2RlKiBp
dGVtKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfU0VUX0xJS0Uoc2VsZiksIEZB
TFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfTk9ERShp
dGVtKSwgRkFMU0UpOworICAgIFdlYkNvcmU6OlRlc3RTZXRMaWtlKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3ROb2RlKiBjb252ZXJ0ZWRJdGVtID0gV2ViS2l0
Ojpjb3JlKGl0ZW0pOworICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPnJlbW92ZSgqY29udmVy
dGVkSXRlbSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
c2V0X2xpa2VfY2xlYXIoV2ViS2l0RE9NVGVzdFNldExpa2UqIHNlbGYpCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19URVNUX1NFVF9MSUtFKHNlbGYpKTsKKyAgICBXZWJDb3JlOjpUZXN0U2V0TGlr
ZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5jbGVhcigpOworfQorCitn
bG9uZyB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfZ2V0X3NpemUoV2ViS2l0RE9NVGVzdFNldExp
a2UqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9TRVRfTElLRShzZWxm
KSwgMCk7CisgICAgV2ViQ29yZTo6VGVzdFNldExpa2UqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+c2l6ZSgpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RTZXRMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0U2V0TGlrZS5oCmluZGV4IDliYTBjYTg4
MTc1MjNiNjY2Mjc4ZDMxZTNkNzQ4OWYzMjQ2NDEzMDcuLjIwODM3MzcwMDQxN2RlN2Q2ODFkNTA1
MGVmNGJmMWUzYTRjOTA4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXRMaWtlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNldExpa2Uu
aApAQCAtNDcsNiArNDcsNjIgQEAgc3RydWN0IF9XZWJLaXRET01UZXN0U2V0TGlrZUNsYXNzIHsK
IFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9nZXRfdHlwZSh2b2lk
KTsKIAorLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfaGFzOgorICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RTZXRMaWtlCisgKiBAaXRlbTogQSAjV2ViS2l0RE9NVGVzdE5vZGUKKyAq
CisgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIFN0YWJpbGl0eTogVW5zdGFibGUKKyoq
LworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV90ZXN0X3NldF9saWtlX2hhcyhXZWJL
aXRET01UZXN0U2V0TGlrZSogc2VsZiwgV2ViS2l0RE9NVGVzdE5vZGUqIGl0ZW0pOworCisvKioK
KyAqIHdlYmtpdF9kb21fdGVzdF9zZXRfbGlrZV9hZGQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9N
VGVzdFNldExpa2UKKyAqIEBpdGVtOiBBICNXZWJLaXRET01UZXN0Tm9kZQorICoKKyAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NVGVzdFNldExpa2UKKyAqCisgKiBTdGFi
aWxpdHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NVGVzdFNldExpa2UqCit3
ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2VfYWRkKFdlYktpdERPTVRlc3RTZXRMaWtlKiBzZWxmLCBX
ZWJLaXRET01UZXN0Tm9kZSogaXRlbSk7CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0X3NldF9s
aWtlX2RlbGV0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0U2V0TGlrZQorICogQGl0ZW06
IEEgI1dlYktpdERPTVRlc3ROb2RlCisgKgorICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisg
KiBTdGFiaWxpdHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9k
b21fdGVzdF9zZXRfbGlrZV9kZWxldGUoV2ViS2l0RE9NVGVzdFNldExpa2UqIHNlbGYsIFdlYktp
dERPTVRlc3ROb2RlKiBpdGVtKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfc2V0X2xpa2Vf
Y2xlYXI6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdFNldExpa2UKKyAqCisgKiBTdGFiaWxp
dHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X3NldF9s
aWtlX2NsZWFyKFdlYktpdERPTVRlc3RTZXRMaWtlKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRf
ZG9tX3Rlc3Rfc2V0X2xpa2VfZ2V0X3NpemU6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdFNl
dExpa2UKKyAqCisgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIFN0YWJpbGl0eTogVW5zdGFi
bGUKKyoqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X3NldF9saWtlX2dldF9z
aXplKFdlYktpdERPTVRlc3RTZXRMaWtlKiBzZWxmKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlm
IC8qIFdFQktJVF9ET01fVVNFX1VOU1RBQkxFX0FQSSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5j
cHAKaW5kZXggYTQxMmI2YzM4OWJjZDFkOWUyMGVjNWM0ZTgwMzVjODJlOGQyMWI2Ny4uOGM3Mzhh
ZGQ0NGNiY2M0NjBmMjU1ZjFmNGJiOWM4OGUxNmE4ZTcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExp
a2UuY3BwCkBAIC0yMSw5ICsyMSwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTUmVhZE9ubHlTZXRMaWtlLmgiCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgogI2lu
Y2x1ZGUgIkpTRE9NSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJKU1Rlc3ROb2RlLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKQEAgLTMzLDYgKzM2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBGdW5jdGlvbnMKIAorSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpFeGVjU3Rh
dGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllcyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6RXhl
Y1N0YXRlKik7CkBAIC00MSw2ICs0NSw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6CiAKIC8v
IEF0dHJpYnV0ZXMKIAorSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVNpemUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29s
IHNldEpTUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIApAQCAtOTEsNiArOTYsOCBAQCB0
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJSZWFkT25seVNldAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0
b3IiLCBEb250RW51bSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNS
ZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgInNpemUiLCBSZWFkT25seSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzUmVhZE9ubHlTZXRMaWtlU2l6ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAg
ICB7ICJoYXMiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25I
YXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAiZW50cmllcyIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9
IH0sCiAgICAgeyAia2V5cyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAidmFsdWVzIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90
KSAoMCkgfSB9LApAQCAtMTI5LDYgKzEzNiwyMSBAQCB2b2lkIEpTUmVhZE9ubHlTZXRMaWtlOjpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTUmVhZE9ubHlTZXRM
aWtlOjp+SlNSZWFkT25seVNldExpa2UoKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUganNSZWFkT25s
eVNldExpa2VTaXplKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CisgICAgSlNWYWx1ZSBkZWNvZGVkVGhpc1ZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSk7CisgICAgYXV0byogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNSZWFkT25seVNldExpa2UqPihkZWNvZGVkVGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CisgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJSZWFkT25seVNldExpa2UiLCAic2l6ZSIpOworICAgIH0KKyAgICBhdXRvJiBpbXBsID0g
Y2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1w
bC5zaXplKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworCiBF
bmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpAQCAtMTU0
LDYgKzE3NiwyMyBAQCBKU1ZhbHVlIEpTUmVhZE9ubHlTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihW
TSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBnZXRET01D
b25zdHJ1Y3RvcjxKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25z
dCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoRXhl
Y1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFs
dWUoKTsKKyAgICBhdXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlTZXRM
aWtlKj4odGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQorICAgICAg
ICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpzdGF0ZSwgIlJlYWRPbmx5U2V0TGlrZSIsICJo
YXMiKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTUmVhZE9u
bHlTZXRMaWtlOjppbmZvKCkpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7CisgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3Ioc3RhdGUpKTsKKyAgICBhdXRvIGl0ZW0gPSBKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoc3RhdGUt
PmFyZ3VtZW50KDApKTsKKyAgICBpZiAoVU5MSUtFTFkoIWl0ZW0pKQorICAgICAgICByZXR1cm4g
dGhyb3dBcmd1bWVudFR5cGVFcnJvcigqc3RhdGUsIDAsICJpdGVtIiwgIlJlYWRPbmx5U2V0TGlr
ZSIsICJoYXMiLCAiVGVzdE5vZGUiKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihp
bXBsLmhhcygqaXRlbSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30K
KwogdXNpbmcgUmVhZE9ubHlTZXRMaWtlSXRlcmF0b3IgPSBKU0RPTUl0ZXJhdG9yPEpTUmVhZE9u
bHlTZXRMaWtlPjsKIHVzaW5nIFJlYWRPbmx5U2V0TGlrZUl0ZXJhdG9yUHJvdG90eXBlID0gSlNE
T01JdGVyYXRvclByb3RvdHlwZTxKU1JlYWRPbmx5U2V0TGlrZT47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNw
cAppbmRleCAxOGFlYjkwMmE0MGU3YzdkYmQxZjQ5NGUzYmIzOTY5ZjNmY2FhMDVkLi5lNTI2ZTZk
MmUyYTI1MGE3NzE5MjMwZjllNDdlY2JlMzJkNjVjYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCkBA
IC0yMSw5ICsyMSwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdFNl
dExpa2UuaCIKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0RPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNET01J
dGVyYXRvci5oIgorI2luY2x1ZGUgIkpTVGVzdE5vZGUuaCIKKyNpbmNsdWRlICJKU1Rlc3RTZXRM
aWtlLmgiCisjaW5jbHVkZSAiVGVzdFNldExpa2UuaCIKKyNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KIApAQCAtMzMsNiArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAv
LyBGdW5jdGlvbnMKIAorSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChK
U0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkNsZWFyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IoSlNDOjpFeGVj
U3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhK
U0M6OkV4ZWNTdGF0ZSopOwpAQCAtNDEsNiArNTAsNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkV4
ZQogCiAvLyBBdHRyaWJ1dGVzCiAKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVNp
emUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wg
c2V0SlNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKQEAgLTkxLDYgKzEwMSwxMSBAQCB0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RTZXRMaWtlIiwgJgogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNl
dExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIERv
bnRFbnVtLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNldExpa2VD
b25zdHJ1Y3RvcikgfSB9LAorICAgIHsgInNpemUiLCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VTaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgImhhcyIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKSwgKGludHB0cl90KSAoMSkgfSB9
LAorICAgIHsgImFkZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
QWRkKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImRlbGV0ZSIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKSwgKGludHB0cl90KSAoMSkgfSB9LAor
ICAgIHsgImNsZWFyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25D
bGVhciksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJlbnRyaWVzIiwgSlNDOjpGdW5jdGlv
biwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9
LAogICAgIHsgImtleXMiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAidmFsdWVzIiwgSlNDOjpGdW5jdGlv
biwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0s
CkBAIC0xMjksNiArMTQ0LDIxIEBAIHZvaWQgSlNUZXN0U2V0TGlrZTo6ZGVzdHJveShKU0M6OkpT
Q2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RTZXRMaWtlOjp+SlNUZXN0U2V0TGlr
ZSgpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3sKKyAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOworICAgIEpTVmFs
dWUgZGVjb2RlZFRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpOworICAgIGF1
dG8qIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNldExpa2UqPihkZWNvZGVkVGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CisgICAgICAgIHJldHVy
biB0aHJvd0dldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0U2V0TGlrZSIsICJzaXplIik7Cisg
ICAgfQorICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLnNpemUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOworfQorCisKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBKU1Rlc3RTZXRMaWtlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdFNldExpa2VQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CkBAIC0xNTQsNiArMTg0LDY5IEBAIEpTVmFsdWUgSlNUZXN0U2V0TGlrZTo6Z2V0Q29uc3Ry
dWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0
dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVzdFNldExpa2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nh
c3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0KIAorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMo
RXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlz
VmFsdWUoKTsKKyAgICBhdXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNldExp
a2UqPih0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCisgICAgICAg
IHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFNldExpa2UiLCAiaGFzIik7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RTZXRMaWtl
OjppbmZvKCkpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAg
aWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUp
KTsKKyAgICBhdXRvIGl0ZW0gPSBKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoc3RhdGUtPmFyZ3VtZW50
KDApKTsKKyAgICBpZiAoVU5MSUtFTFkoIWl0ZW0pKQorICAgICAgICByZXR1cm4gdGhyb3dBcmd1
bWVudFR5cGVFcnJvcigqc3RhdGUsIDAsICJpdGVtIiwgIlRlc3RTZXRMaWtlIiwgImhhcyIsICJU
ZXN0Tm9kZSIpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGltcGwuaGFzKCppdGVt
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChFeGVj
U3RhdGUqIHN0YXRlKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1
ZSgpOworICAgIGF1dG8gY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZSo+
KHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKKyAgICAgICAgcmV0
dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0U2V0TGlrZSIsICJhZGQiKTsKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFNldExpa2U6Omlu
Zm8oKSk7CisgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKKyAgICBpZiAo
VU5MSUtFTFkoc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQorICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKHN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOwor
ICAgIGF1dG8gaXRlbSA9IEpTVGVzdE5vZGU6OnRvV3JhcHBlZChzdGF0ZS0+YXJndW1lbnQoMCkp
OworICAgIGlmIChVTkxJS0VMWSghaXRlbSkpCisgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50
VHlwZUVycm9yKCpzdGF0ZSwgMCwgIml0ZW0iLCAiVGVzdFNldExpa2UiLCAiYWRkIiwgIlRlc3RO
b2RlIik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgaW1wbC5hZGQoKml0ZW0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBzdGF0ZS0+dGhpc1ZhbHVlKCk7CisgICAgYXV0byBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RTZXRMaWtlKj4odGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpzdGF0
ZSwgIlRlc3RTZXRMaWtlIiwgImRlbGV0ZSIpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMoY2FzdGVkVGhpcywgSlNUZXN0U2V0TGlrZTo6aW5mbygpKTsKKyAgICBhdXRvJiBpbXBsID0g
Y2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRD
b3VudCgpIDwgMSkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7CisgICAgYXV0byBpdGVtID0gSlNUZXN0Tm9k
ZTo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKFVOTElLRUxZKCFpdGVt
KSkKKyAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCAwLCAiaXRl
bSIsICJUZXN0U2V0TGlrZSIsICJkZWxldGUiLCAiVGVzdE5vZGUiKTsKKyAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzQm9vbGVhbihpbXBsLnJlbW92ZSgqaXRlbSkpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcihFeGVjU3RhdGUqIHN0YXRlKQoreworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgpOworICAgIGF1dG8gY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZSo+KHRoaXNWYWx1ZSk7CisgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKKyAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJv
cigqc3RhdGUsICJUZXN0U2V0TGlrZSIsICJjbGVhciIpOworICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0U2V0TGlrZTo6aW5mbygpKTsKKyAgICBhdXRvJiBp
bXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGltcGwuY2xlYXIoKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiB1c2luZyBUZXN0U2V0TGlr
ZUl0ZXJhdG9yID0gSlNET01JdGVyYXRvcjxKU1Rlc3RTZXRMaWtlPjsKIHVzaW5nIFRlc3RTZXRM
aWtlSXRlcmF0b3JQcm90b3R5cGUgPSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdFNldExp
a2U+OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01SZWFkT25seVNldExpa2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVJlYWRPbmx5U2V0TGlrZS5oCmluZGV4IDQxNTUyYTYxZTQ2ZGEyMjBi
MmFlZGYyNWQwODU4ZTNkMTNhYTdkOGYuLjY4Zjk1YzJlNzVlYjBmOTM3NWI1ZTgyZTdlN2ViOWQz
YTQwYmYyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVJlYWRPbmx5U2V0TGlrZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVJlYWRPbmx5U2V0TGlrZS5oCkBAIC0yNiw2ICsyNiwxMSBA
QAogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgogCitAY2xhc3MgRE9NVGVzdE5vZGU7
CisKIFdFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4NzZfNSkKIFdFQkNPUkVfRVhQT1JUIEBp
bnRlcmZhY2UgRE9NUmVhZE9ubHlTZXRMaWtlIDogRE9NT2JqZWN0CitAcHJvcGVydHkgKHJlYWRv
bmx5KSBpbnQgc2l6ZTsKKworLSAoQk9PTCloYXM6KERPTVRlc3ROb2RlICopaXRlbTsKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVJlYWRPbmx5U2V0TGlrZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVJlYWRPbmx5U2V0TGlrZS5tbQppbmRleCA2OWI3OTA4ODU4OTdlYTkzMWRhOTUy
NGU4NzZhMDRlMDM1NzQzOTk5Li5hMDkzYmRlNTYzNjcyM2ExMWZiOTNhNDMzMjU2MDk3MDgzN2Mx
NDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01SZWFkT25seVNldExpa2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NUmVhZE9ubHlTZXRMaWtlLm1tCkBAIC0zMSw5ICszMSwxMSBAQAog
CiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVJlYWRPbmx5U2V0TGlr
ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01UZXN0Tm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgogI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAj
aW1wb3J0ICJSZWFkT25seVNldExpa2UuaCIKKyNpbXBvcnQgIlRlc3ROb2RlLmgiCiAjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQg
IldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKQEAgLTUzLDYgKzU1LDIwIEBACiAgICAgW3N1cGVy
IGRlYWxsb2NdOwogfQogCistIChpbnQpc2l6ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2l6ZSgpOworfQorCistIChCT09M
KWhhczooRE9NVGVzdE5vZGUgKilpdGVtCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGlmICghaXRlbSkKKyAgICAgICAgV2ViQ29yZTo6cmFpc2VUeXBl
RXJyb3JFeGNlcHRpb24oKTsKKyAgICByZXR1cm4gSU1QTC0+aGFzKCpjb3JlKGl0ZW0pKTsKK30K
KwogQGVuZAogCiBXZWJDb3JlOjpSZWFkT25seVNldExpa2UqIGNvcmUoRE9NUmVhZE9ubHlTZXRM
aWtlICp3cmFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdFNldExpa2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RTZXRMaWtlLmgKaW5kZXggZjQyZmY1ZjM0MGE4YWQwMGYw
Y2U5OTI1YTJmY2M5MzliZjI1N2FkMC4uYmY3MDE2YjhmOWZiYzU4YWE1NmQwMGMyMTBmM2I0ZGY2
MjY1ODViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdFNldExpa2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0U2V0TGlrZS5oCkBAIC0yNiw2ICsyNiwxNSBAQAogCiAjaW1w
b3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgogCitAY2xhc3MgRE9NVGVzdE5vZGU7CitAY2xhc3Mg
RE9NVGVzdFNldExpa2U7CisKIFdFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4NzZfNSkKIFdF
QkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdFNldExpa2UgOiBET01PYmplY3QKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIGludCBzaXplOworCistIChCT09MKWhhczooRE9NVGVzdE5vZGUgKilp
dGVtOworLSAoRE9NVGVzdFNldExpa2UgKilhZGQ6KERPTVRlc3ROb2RlICopaXRlbTsKKy0gKEJP
T0wpZGVsZXRlOihET01UZXN0Tm9kZSAqKWl0ZW07CistICh2b2lkKWNsZWFyOwogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dFNldExpa2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0U2V0TGlrZS5tbQppbmRleCA1ZWI3MjNhMmUzNzIxMWI1ZWY1MGYxZTAyY2E4NjkwOTVk
ODlkYWE2Li43YmJhYWNjNzc3Njc4NjEyYmZlNWQ5MGI3MmM1NmY4NmNlZjNiMDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0U2V0
TGlrZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0U2V0TGlrZS5tbQpAQCAtMzAsOSArMzAsMTEgQEAKICNpbXBvcnQgIkRPTVRlc3RTZXRM
aWtlLmgiCiAKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NVGVzdE5v
ZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NVGVzdFNldExpa2VJbnRlcm5hbC5oIgogI2ltcG9y
dCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKICNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5o
IgorI2ltcG9ydCAiVGVzdE5vZGUuaCIKICNpbXBvcnQgIlRlc3RTZXRMaWtlLmgiCiAjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKQEAgLTUzLDYg
KzU1LDQyIEBACiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCistIChpbnQpc2l6ZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
c2l6ZSgpOworfQorCistIChCT09MKWhhczooRE9NVGVzdE5vZGUgKilpdGVtCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGlmICghaXRlbSkKKyAgICAg
ICAgV2ViQ29yZTo6cmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKKyAgICByZXR1cm4gSU1QTC0+
aGFzKCpjb3JlKGl0ZW0pKTsKK30KKworLSAoRE9NVGVzdFNldExpa2UgKilhZGQ6KERPTVRlc3RO
b2RlICopaXRlbQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBpZiAoIWl0ZW0pCisgICAgICAgIFdlYkNvcmU6OnJhaXNlVHlwZUVycm9yRXhjZXB0aW9u
KCk7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5hZGQoKmNvcmUoaXRlbSkpKSk7
Cit9CisKKy0gKEJPT0wpZGVsZXRlOihET01UZXN0Tm9kZSAqKWl0ZW0KK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgaWYgKCFpdGVtKQorICAgICAgICBX
ZWJDb3JlOjpyYWlzZVR5cGVFcnJvckV4Y2VwdGlvbigpOworICAgIHJldHVybiBJTVBMLT5yZW1v
dmUoKmNvcmUoaXRlbSkpOworfQorCistICh2b2lkKWNsZWFyCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmNsZWFyKCk7Cit9CisKIEBlbmQK
IAogV2ViQ29yZTo6VGVzdFNldExpa2UqIGNvcmUoRE9NVGVzdFNldExpa2UgKndyYXBwZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFJlYWRP
bmx5U2V0TGlrZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dFJlYWRPbmx5U2V0TGlrZS5pZGwKaW5kZXggZGMwYTIxYmU1ZjlhNzg1Yjg4ZTNmNTk1ZDA5Nzgy
NGFjNWE3NGZhNC4uM2EzNzE5YzIxNzM5ZjQzMmU0MjE5MTQ2ZGZhZDQwODZhYzdmYmJlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RSZWFkT25s
eVNldExpa2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0UmVhZE9ubHlTZXRMaWtlLmlkbApAQCAtMTgsNiArMTgsNiBAQAogICovCiAKIGludGVyZmFj
ZSBSZWFkT25seVNldExpa2UgewotICAgIHJlYWRvbmx5IHNldGxpa2U8SXRlbT47CisgICAgcmVh
ZG9ubHkgc2V0bGlrZTxUZXN0Tm9kZT47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNldExpa2UuaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTZXRMaWtlLmlkbAppbmRleCAyZDYxZDc2MDVkZTMx
MmE5ZTQ3ZjY0Yzg1M2JjMTQ3M2Q5ZGE4ZTUwLi40YjgxOTExOGZiZjExOWZiMzEwOGZlMDE4NWU1
MzFhZDc5OGUyNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdFNldExpa2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0U2V0TGlrZS5pZGwKQEAgLTE4LDYgKzE4LDYgQEAKICAqLwogCiBpbnRlcmZh
Y2UgVGVzdFNldExpa2UgIHsKLSAgICBzZXRsaWtlPEl0ZW0+OworICAgIHNldGxpa2U8VGVzdE5v
ZGU+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlU2V0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZVNldC5pZGwKaW5kZXggOWY0MWYwM2IzM2Vm
NzFlNThlNGE0MDc1NzBjYmVjZjQxZmVlNDdlMy4uNzExYTliNGYzNjQ1NTUyOTA0MWIwMGU5MmU0
ZDQyODMwNmRlMjY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlU2V0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2VTZXQuaWRsCkBAIC0zMiwxNiAr
MzIsNyBAQCBlbnVtIEZvbnRGYWNlU2V0TG9hZFN0YXR1cyB7CiAgICAgQ29uc3RydWN0b3JDYWxs
V2l0aD1Eb2N1bWVudCwKICAgICBDb25zdHJ1Y3RvcihzZXF1ZW5jZTxGb250RmFjZT4gaW5pdGlh
bEZhY2VzKSwKIF0gaW50ZXJmYWNlIEZvbnRGYWNlU2V0IDogRXZlbnRUYXJnZXQgewotICAgIGJv
b2xlYW4gaGFzKEZvbnRGYWNlIGZvbnQpOwotCi0gICAgcmVhZG9ubHkgc2V0bGlrZTxGb250RmFj
ZT47Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzaXplOwotCi0gICAgLy8gRklYTUU6
IHNldGxpa2Ugc2hvdWxkIGJlIG1hcmtlZCBhcyBub3QtcmVhZG9ubHkgYW5kIHRoZSAzIG1ldGhv
ZCBkZWNsYXJhdGlvbnMgYmVsb3cgYmUgcmVtb3ZlZC4KLSAgICBGb250RmFjZVNldCBhZGQoRm9u
dEZhY2UgZm9udCk7Ci0gICAgW0ltcGxlbWVudGVkQXM9cmVtb3ZlXSBib29sZWFuIGRlbGV0ZShG
b250RmFjZSBmb250KTsKLSAgICB2b2lkIGNsZWFyKCk7CisgICAgc2V0bGlrZTxGb250RmFjZT47
CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubG9hZGluZzsKICAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9ubG9hZGluZ2RvbmU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2M4ZDU3NzY0YmE2ZjJkMGViYzFk
YWM3ZDEwMDQyYTk2YzM3MWIyYy4uYWNmOGJiMDlkZTY0MjdiZWNkNWRmMWUzMTczZTFiM2QyMmIw
NDEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTA2LTI3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkIHNldGxpa2Ugc3BlY2lmaWMgbWV0aG9k
cyBhbmQgYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvdGV4dC9mb250LWZhY2Utc2V0LWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0
OgorCiAyMDE2LTA2LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgV2ViSURMIHNldGxpa2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9mb250LWZhY2Utc2V0LWphdmFzY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2ZvbnQtZmFjZS1zZXQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQK
aW5kZXggNDc2MzAzMmZkYTE3ZjkxMWI1Zjc1ZDU5MDllMzFkMGVlMmZkMzhlZi4uYzQyOWFjYjZl
MzBjYmMxNWFhYzZkZDMwMWEyOTc1YWYyYTMzMzU5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2ZvbnQtZmFjZS1zZXQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2ZvbnQtZmFjZS1zZXQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQK
QEAgLTE2LDcgKzE2LDcgQEAgUEFTUyBpdGVtLnZhbHVlIGlzIGZvbnRGYWNlMQogUEFTUyBpdGVt
LmRvbmUgaXMgdHJ1ZQogUEFTUyBmb250RmFjZVNldC5hZGQoZm9udEZhY2UyKSBpcyBmb250RmFj
ZVNldAogUEFTUyBmb250RmFjZVNldC5zaXplIGlzIDIKLVBBU1MgZm9udEZhY2VTZXQuYWRkKG51
bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdmb250JykgdG8gRm9u
dEZhY2VTZXQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRm9udEZhY2UuCitQQVNTIGZvbnRG
YWNlU2V0LmFkZChudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
aXRlbScpIHRvIEZvbnRGYWNlU2V0LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEZvbnRGYWNl
LgogUEFTUyBpdGVtLmRvbmUgaXMgZmFsc2UKIFBBU1MgaXRlbS52YWx1ZSBpcyBmb250RmFjZTEK
IFBBU1MgaXRlbS5kb25lIGlzIGZhbHNlCkBAIC0yNCwxMCArMjQsMTAgQEAgUEFTUyBpdGVtLnZh
bHVlIGlzIGZvbnRGYWNlMgogUEFTUyBpdGVtLmRvbmUgaXMgdHJ1ZQogUEFTUyBmb250RmFjZVNl
dC5kZWxldGUoZm9udEZhY2UxKSBpcyB0cnVlCiBQQVNTIGZvbnRGYWNlU2V0LmRlbGV0ZShmb250
RmFjZTMpIGlzIGZhbHNlCi1QQVNTIGZvbnRGYWNlU2V0LmRlbGV0ZShudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZm9udCcpIHRvIEZvbnRGYWNlU2V0LmRlbGV0
ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEZvbnRGYWNlLgorUEFTUyBmb250RmFjZVNldC5kZWxl
dGUobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0
byBGb250RmFjZVNldC5kZWxldGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGb250RmFjZS4KIFBB
U1MgZm9udEZhY2VTZXQuaGFzKGZvbnRGYWNlMSkgaXMgZmFsc2UKIFBBU1MgZm9udEZhY2VTZXQu
aGFzKGZvbnRGYWNlMikgaXMgdHJ1ZQotUEFTUyBmb250RmFjZVNldC5oYXMobnVsbCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2ZvbnQnKSB0byBGb250RmFjZVNldC5o
YXMgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBGb250RmFjZS4KK1BBU1MgZm9udEZhY2VTZXQuaGFz
KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8g
Rm9udEZhY2VTZXQuaGFzIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgRm9udEZhY2UuCiBQQVNTIGZv
bnRGYWNlU2V0LnNpemUgaXMgMAogUEFTUyBmb250RmFjZVNldC52YWx1ZXMoKS5uZXh0KCkuZG9u
ZSBpcyB0cnVlCiBQQVNTIGZvbnRGYWNlU2V0LmNoZWNrKCdnYXJiYWdlJykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>