<?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>192948</bug_id>
          
          <creation_ts>2018-12-20 12:40:56 -0800</creation_ts>
          <short_desc>Use Optional::hasValue() instead of Optional::has_value()</short_desc>
          <delta_ts>2018-12-20 16:45:49 -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>Web Template Framework</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>192728</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1490008</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-20 12:40:56 -0800</bug_when>
    <thetext>Use Optional::hasValue() instead of Optional::has_value().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490022</commentid>
    <comment_count>1</comment_count>
      <attachid>357854</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-20 13:12:01 -0800</bug_when>
    <thetext>Created attachment 357854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490027</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-12-20 13:16:15 -0800</bug_when>
    <thetext>Attachment 357854 did not pass style-queue:


ERROR: Source/WTF/wtf/Optional.h:675:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490179</commentid>
    <comment_count>3</comment_count>
      <attachid>357854</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-20 16:40:17 -0800</bug_when>
    <thetext>Comment on attachment 357854
Patch

Clearing flags on attachment: 357854

Committed r239477: &lt;https://trac.webkit.org/changeset/239477&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490180</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-20 16:40:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490183</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-20 16:45:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/46887797&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357854</attachid>
            <date>2018-12-20 13:12:01 -0800</date>
            <delta_ts>2018-12-20 16:40:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192948-20181220131157.patch</filename>
            <type>text/plain</type>
            <size>37131</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OWRhZGVjODU2MDcyZWE5YjAyZjM1MzcyMzM2MjBmMDNhOWNlOWQ4Li4zMDhkNGZmZjg2ZmFjZjUy
ZGU0ZDIxYjM2MjY1MjIxZjI0M2E3ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOC0xMi0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBPcHRpb25hbDo6aGFzVmFsdWUoKSBpbnN0ZWFkIG9mIE9wdGlvbmFsOjpo
YXNfdmFsdWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3Bh
dGNoZXJfaW1wbGVtZW50YXRpb24ucHk6CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlcklt
cGxlbWVudGF0aW9uR2VuZXJhdG9yLl9nZW5lcmF0ZV9hc3luY19kaXNwYXRjaGVyX2NsYXNzX2Zv
cl9kb21haW4pOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdl
bmVyYXRvci5fZ2VuZXJhdGVfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbl9mb3JfY29tbWFuZCk6
CisKIDIwMTgtMTItMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBVc2UgT3B0aW9uYWw6OnZhbHVlT3IoKSBpbnN0ZWFkIG9mIE9wdGlvbmFsOjp2YWx1ZV9vcigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDM2YTNlYWUyYTIwOTI3M2FiMWU3MWNkM2FhN2E4YWViMzJlMGVhNjYuLjQyYTBkYzgw
ZmVmYWZmODM1YjNkNDIzZGM4YTUzN2IxYjE5YWI4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTgtMTItMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ug
T3B0aW9uYWw6Omhhc1ZhbHVlKCkgaW5zdGVhZCBvZiBPcHRpb25hbDo6aGFzX3ZhbHVlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjk0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hl
ci5oOgorICAgICAgICAoV1RGOjphZGQpOgorICAgICAgICAqIHd0Zi9PcHRpb25hbC5oOgorCiAy
MDE4LTEyLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IE9wdGlvbmFsOjp2YWx1ZU9yKCkgaW5zdGVhZCBvZiBPcHRpb25hbDo6dmFsdWVfb3IoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDZjMTBiYWM2MjBlZDYyNGM2ZjJmMWMwNzU1MWFmZDVmNzJmNDJiNmIuLjcxNjI3
MzNlNDk2MzU0NDM5NjYxNTA0Yjc1ZmEzNTBlZGIxMThjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMyBAQAorMjAxOC0xMi0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFVzZSBPcHRpb25hbDo6aGFzVmFsdWUoKSBpbnN0ZWFkIG9mIE9wdGlvbmFsOjpoYXNf
dmFsdWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkyOTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBy
b21pc2VQcm94eTxJRExUeXBlPjo6aXNGdWxmaWxsZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUHJvbWlzZVByb3h5PElETFZvaWQ+Ojppc0Z1bGZpbGxlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01Qcm9taXNlUHJveHlXaXRoUmVzb2x2ZUNhbGxiYWNrPElETFR5cGU+Ojpp
c0Z1bGZpbGxlZCBjb25zdCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aGFzSXRlbXMgY29uc3Qp
OgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhcHRpb25EaXNw
bGF5TW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OndvdWxkVGFpbnRPcmlnaW4gY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OnBhcnNlRGVtdXhlclNyY1Bh
ZENhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJhY2tEZXRlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHA6
CisgICAgICAgICh3ZWJLaXRNZWRpYVNyY1VwZGF0ZVByZXNlbnRhdGlvblNpemUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGVyU3R5bGU6OnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxp
c3RJdGVtOjpzZXRFeHBsaWNpdFZhbHVlKToKKwogMjAxOC0xMi0yMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBPcHRpb25hbDo6dmFsdWVPcigpIGluc3Rl
YWQgb2YgT3B0aW9uYWw6OnZhbHVlX29yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmY1YzU5NTk1NTBhMDJiNmUx
ZWM0Yzc0NjA1ZWEwZDZmZjRiMjJlZC4uYjhmMDIyNmY3OTllYzA3NzEyYzhjMGM0NDQ3ZTBhM2Qz
NTc4NDU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMi0yMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPcHRpb25hbDo6aGFzVmFsdWUo
KSBpbnN0ZWFkIG9mIE9wdGlvbmFsOjpoYXNfdmFsdWUoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyOTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dG9tYXRpb25Db21tYW5kRXJy
b3I6OnRvUHJvdG9jb2xTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6d2lsbENsb3NlUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dCk6CisKIDIwMTgtMTItMjAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uYWw6OnZh
bHVlT3IoKSBpbnN0ZWFkIG9mIE9wdGlvbmFsOjp2YWx1ZV9vcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBf
YmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0
Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCBlMjBhYWYzZmE3ODBhYWNjM2FjZWM2MmM4ZDRk
NTUyNTJjNDM1NDRjLi5hMTU5NjFhNjQ3NDRlMTExYjU4MGM4ZDFhMGZhODA1NThlZTFjZTRiIDEw
MDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKQEAgLTE2OSw3ICsxNjks
NyBAQCBjbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKENw
cEdlbmVyYXRvcik6CiAKICAgICAgICAgICAgIGlmIHBhcmFtZXRlci5pc19vcHRpb25hbDoKICAg
ICAgICAgICAgICAgICBpZiBDcHBHZW5lcmF0b3Iuc2hvdWxkX3VzZV93cmFwcGVyX2Zvcl9yZXR1
cm5fdHlwZShwYXJhbWV0ZXIudHlwZSk6Ci0gICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbWV0
ZXJfYXNzaWdubWVudHMuYXBwZW5kKCcgICAgaWYgKCUocGFyYW1ldGVyTmFtZSlzLmhhc192YWx1
ZSgpKScgJSBwYXJhbV9hcmdzKQorICAgICAgICAgICAgICAgICAgICBvdXRfcGFyYW1ldGVyX2Fz
c2lnbm1lbnRzLmFwcGVuZCgnICAgIGlmICglKHBhcmFtZXRlck5hbWUpcy5oYXNWYWx1ZSgpKScg
JSBwYXJhbV9hcmdzKQogICAgICAgICAgICAgICAgICAgICBvdXRfcGFyYW1ldGVyX2Fzc2lnbm1l
bnRzLmFwcGVuZCgnICAgICAgICBqc29uTWVzc2FnZS0+JShrZXllZFNldE1ldGhvZClzKCIlKHBh
cmFtZXRlcktleSlzIl9zLCAqJShwYXJhbWV0ZXJOYW1lKXMpOycgJSBwYXJhbV9hcmdzKQogICAg
ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbWV0ZXJfYXNz
aWdubWVudHMuYXBwZW5kKCcgICAgaWYgKCUocGFyYW1ldGVyTmFtZSlzKScgJSBwYXJhbV9hcmdz
KQpAQCAtMjY0LDcgKzI2NCw3IEBAIGNsYXNzIENwcEJhY2tlbmREaXNwYXRjaGVySW1wbGVtZW50
YXRpb25HZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICBvdXRfcGFyYW1l
dGVyX2RlY2xhcmF0aW9ucy5hcHBlbmQoJyAgICAlKHBhcmFtZXRlclR5cGUpcyBvdXRfJShwYXJh
bWV0ZXJOYW1lKXM7JyAlIHBhcmFtX2FyZ3MpCiAgICAgICAgICAgICAgICAgaWYgcGFyYW1ldGVy
LmlzX29wdGlvbmFsOgogICAgICAgICAgICAgICAgICAgICBpZiBDcHBHZW5lcmF0b3Iuc2hvdWxk
X3VzZV93cmFwcGVyX2Zvcl9yZXR1cm5fdHlwZShwYXJhbWV0ZXIudHlwZSk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBvdXRfcGFyYW1ldGVyX2Fzc2lnbm1lbnRzLmFwcGVuZCgnICAgICAgICBp
ZiAob3V0XyUocGFyYW1ldGVyTmFtZSlzLmhhc192YWx1ZSgpKScgJSBwYXJhbV9hcmdzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0X3BhcmFtZXRlcl9hc3NpZ25tZW50cy5hcHBlbmQoJyAg
ICAgICAgaWYgKG91dF8lKHBhcmFtZXRlck5hbWUpcy5oYXNWYWx1ZSgpKScgJSBwYXJhbV9hcmdz
KQogICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3BhcmFtZXRlcl9hc3NpZ25tZW50cy5hcHBl
bmQoJyAgICAgICAgICAgIHJlc3VsdC0+JShrZXllZFNldE1ldGhvZClzKCIlKHBhcmFtZXRlcktl
eSlzIl9zLCAqb3V0XyUocGFyYW1ldGVyTmFtZSlzKTsnICUgcGFyYW1fYXJncykKICAgICAgICAg
ICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbWV0ZXJf
YXNzaWdubWVudHMuYXBwZW5kKCcgICAgICAgIGlmIChvdXRfJShwYXJhbWV0ZXJOYW1lKXMpJyAl
IHBhcmFtX2FyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoZXIuaCBiL1NvdXJj
ZS9XVEYvd3RmL0hhc2hlci5oCmluZGV4IGEzZmVhNGUwYWQ2ZDFhNDE5Y2NjNjc2ODhhZmM2YTg3
Yzg5NTYwNzQuLjdjYTMzNTQ5ZWQ5MGFmNzBlMDg3MTY3N2FkYjhiMzkzNDIwNzlkMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hl
ci5oCkBAIC0xNDIsOCArMTQyLDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
PiB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3Qgc3RkOjpwYWlyPFQxLAogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgT3B0aW9uYWw8VD4m
IG9wdGlvbmFsKQogewotICAgIGFkZChoYXNoZXIsIG9wdGlvbmFsLmhhc192YWx1ZSgpKTsKLSAg
ICBpZiAob3B0aW9uYWwuaGFzX3ZhbHVlKCkpCisgICAgYWRkKGhhc2hlciwgb3B0aW9uYWwuaGFz
VmFsdWUoKSk7CisgICAgaWYgKG9wdGlvbmFsLmhhc1ZhbHVlKCkpCiAgICAgICAgIGFkZChoYXNo
ZXIsIG9wdGlvbmFsLnZhbHVlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9P
cHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCA2ZDRlMjQyNmI3NDVk
OTI3YjViNGU2NmRkNTViYTNjNjhkYmQ0Nzg2Li5iZjVhOTQwMmZiNDVjZDI3NzMwN2RlYWM3MWIw
MDYwMTg4Yzc2ZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTUwNiw3ICs1MDYsNiBAQCBwdWJsaWM6CiAg
IC8vIDIwLjUuNC41LCBPYnNlcnZlcnMKIAogICBleHBsaWNpdCBjb25zdGV4cHIgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IF9fTk9FWENFUFQgeyByZXR1cm4gaW5pdGlhbGl6ZWQoKTsgfQotICBjb25z
dGV4cHIgYm9vbCBoYXNfdmFsdWUoKSBjb25zdCBfX05PRVhDRVBUIHsgcmV0dXJuIGluaXRpYWxp
emVkKCk7IH0gLy8gRklYTUU6IFJlbW92ZSB0aGlzLgogICBjb25zdGV4cHIgYm9vbCBoYXNWYWx1
ZSgpIGNvbnN0IF9fTk9FWENFUFQgeyByZXR1cm4gaW5pdGlhbGl6ZWQoKTsgfQogCiAgIGNvbnN0
ZXhwciBUIGNvbnN0KiBvcGVyYXRvciAtPigpIGNvbnN0IHsKQEAgLTY3Myw3ICs2NzIsNyBAQCBw
dWJsaWM6CiAgICAgcmV0dXJuIHJlZiAhPSBudWxscHRyOwogICB9CiAKLSAgY29uc3RleHByIGJv
b2wgaGFzX3ZhbHVlKCkgY29uc3QgX19OT0VYQ0VQVCB7CisgIGNvbnN0ZXhwciBib29sIGhhc1Zh
bHVlKCkgY29uc3QgX19OT0VYQ0VQVCB7CiAgICAgcmV0dXJuIHJlZiAhPSBudWxscHRyOwogICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5LmgKaW5kZXgg
ZTc1YzNlZDQwYTlhZDRjMzJjOTBkODI4MTFkNWVhNzUwNjVlYTc1NS4uNDhhYzNmOTUwYmVjYjU0
YTA3ZDA0ZmE3YzUzNTAxZDk2NjA4MTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvRE9NUHJvbWlzZVByb3h5LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBpbmxpbmUgdm9pZCBET01Q
cm9taXNlUHJveHk8SURMVHlwZT46OmNsZWFyKCkKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+
CiBpbmxpbmUgYm9vbCBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OmlzRnVsZmlsbGVkKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV92YWx1ZU9yRXhjZXB0aW9uLmhhc192YWx1ZSgpOworICAgIHJl
dHVybiBtX3ZhbHVlT3JFeGNlcHRpb24uaGFzVmFsdWUoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgSURMVHlwZT4KQEAgLTIxMyw3ICsyMTMsNyBAQCBpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJv
eHk8SURMVm9pZD46OmNsZWFyKCkKIAogaW5saW5lIGJvb2wgRE9NUHJvbWlzZVByb3h5PElETFZv
aWQ+Ojppc0Z1bGZpbGxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmFsdWVPckV4Y2VwdGlv
bi5oYXNfdmFsdWUoKTsKKyAgICByZXR1cm4gbV92YWx1ZU9yRXhjZXB0aW9uLmhhc1ZhbHVlKCk7
CiB9CiAKIGlubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExWb2lkPjo6cmVzb2x2ZSgpCkBA
IC0yODIsNyArMjgyLDcgQEAgaW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVD
YWxsYmFjazxJRExUeXBlPjo6Y2xlYXIoKQogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KIGlu
bGluZSBib29sIERPTVByb21pc2VQcm94eVdpdGhSZXNvbHZlQ2FsbGJhY2s8SURMVHlwZT46Omlz
RnVsZmlsbGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92YWx1ZU9yRXhjZXB0aW9uLmhhc192
YWx1ZSgpOworICAgIHJldHVybiBtX3ZhbHVlT3JFeGNlcHRpb24uaGFzVmFsdWUoKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0LmgKaW5kZXggOWE1NWIyM2RmZjUxZmM0N2E4OGI5Yjg3OTVlMDBlYjU0OThlNTlh
NS4uYjI0MTNiODZiNDllYjY0YzhkNDRjMDdlYWY2NTQ3OTg2MTVmOWQyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkaWRDbGVhclN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0eXBlKTsKICAg
ICB2b2lkIGRpZFNldFN0cmluZ0RhdGEoY29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICBib29sIGhh
c0l0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5oYXNfdmFsdWUoKTsgfQorICAgIGJvb2wg
aGFzSXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zLmhhc1ZhbHVlKCk7IH0KICAgICBjb25z
dCBWZWN0b3I8UmVmPERhdGFUcmFuc2Zlckl0ZW0+PiYgaXRlbXMoKSBjb25zdAogICAgIHsKICAg
ICAgICAgQVNTRVJUKG1faXRlbXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXgg
ZDFjODdkZTVlNDk4ZDU5ZTFiMmE4NWM2OThjZWJiYTFiMmViMWM2MS4uYzM3OTEwZTY2ZmU4MzM0
OTdiMmU2YTAzNzVkMGRlMDFiYzI0MmI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3Bw
CkBAIC02Nyw3ICs2Nyw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlCiB7CiAgICAgYXV0byBw
YXNzaXZlID0gb3B0aW9ucy5wYXNzaXZlOwogCi0gICAgaWYgKCFwYXNzaXZlLmhhc192YWx1ZSgp
ICYmIGV2ZW50TmFtZXMoKS5pc1RvdWNoU2Nyb2xsQmxvY2tpbmdFdmVudFR5cGUoZXZlbnRUeXBl
KSkgeworICAgIGlmICghcGFzc2l2ZS5oYXNWYWx1ZSgpICYmIGV2ZW50TmFtZXMoKS5pc1RvdWNo
U2Nyb2xsQmxvY2tpbmdFdmVudFR5cGUoZXZlbnRUeXBlKSkgewogICAgICAgICBpZiAoaXM8RE9N
V2luZG93PigqdGhpcykpIHsKICAgICAgICAgICAgIGF1dG8mIHdpbmRvdyA9IGRvd25jYXN0PERP
TVdpbmRvdz4oKnRoaXMpOwogICAgICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gd2luZG93
LmRvY3VtZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCAzNTQyOWYxYzg2YjBjMWVhOTk3OGZkYTRjZjlhZTA0ZWI0M2YwZTk1Li4zNDQyZWRhMDVlZWYw
MTFiODExMjZmMTVmNDhiNTJlMmU1MjkxNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTY1ODMsNyArNjU4Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCiAKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OkNhcHRpb25EaXNwbGF5TW9kZSBIVE1MTWVkaWFFbGVtZW50OjpjYXB0aW9uRGlzcGxheU1vZGUo
KQogewotICAgIGlmICghbV9jYXB0aW9uRGlzcGxheU1vZGUuaGFzX3ZhbHVlKCkpIHsKKyAgICBp
ZiAoIW1fY2FwdGlvbkRpc3BsYXlNb2RlLmhhc1ZhbHVlKCkpIHsKICAgICAgICAgaWYgKGRvY3Vt
ZW50KCkucGFnZSgpKQogICAgICAgICAgICAgbV9jYXB0aW9uRGlzcGxheU1vZGUgPSBkb2N1bWVu
dCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS5jYXB0aW9uRGlzcGxheU1v
ZGUoKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDY1NTFjMTEwNWZmNTMyNGU3NTQyMDhmZjBkMDU2ZWZm
ZjJiNDhiMmYuLmYxZTU2MTBiOTFlMWQyMTdjODQ2MTFiNTYxMDMxMjZjMGU5ZGE1N2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAg
LTEwNjEsNyArMTA2MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmRpZFBhc3NDT1JTQWNjZXNzQ2hl
Y2soKSBjb25zdAogYm9vbCBNZWRpYVBsYXllcjo6d291bGRUYWludE9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewogICAgIGF1dG8gd291bGRUYWludCA9IG1fcHJp
dmF0ZS0+d291bGRUYWludE9yaWdpbihvcmlnaW4pOwotICAgIGlmICh3b3VsZFRhaW50Lmhhc192
YWx1ZSgpKQorICAgIGlmICh3b3VsZFRhaW50Lmhhc1ZhbHVlKCkpCiAgICAgICAgIHJldHVybiB3
b3VsZFRhaW50LnZhbHVlKCk7CiAKICAgICBpZiAobV91cmwucHJvdG9jb2xJc0RhdGEoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
QXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggOWZiZTdiZmQ2ZjQ4MjUyMTYxZGY0
NzBjZTg1ZWQ0ZjI0MzBkZWE1MS4uZDY3ZWYyNTBmMGFkMDExNzkxMGU5MWZkZTYyM2JmMzVhNmJi
OTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTM4Myw3ICszODMs
NyBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKEdzdENhcHMq
IGRlbXV4ZXJTcmNQYWRDYXBzKQogICAgICAgICAgICAgbV9zdHJlYW1UeXBlID0gV2ViQ29yZTo6
TWVkaWFTb3VyY2VTdHJlYW1UeXBlR1N0cmVhbWVyOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAo
ZG9DYXBzSGF2ZVR5cGUobV9kZW11eGVyU3JjUGFkQ2Fwcy5nZXQoKSwgR1NUX1ZJREVPX0NBUFNf
VFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gc2l6ZSA9IGdldFZp
ZGVvUmVzb2x1dGlvbkZyb21DYXBzKG1fZGVtdXhlclNyY1BhZENhcHMuZ2V0KCkpOwotICAgICAg
ICBpZiAoc2l6ZS5oYXNfdmFsdWUoKSkKKyAgICAgICAgaWYgKHNpemUuaGFzVmFsdWUoKSkKICAg
ICAgICAgICAgIG1fcHJlc2VudGF0aW9uU2l6ZSA9IHNpemUudmFsdWUoKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbV9wcmVzZW50YXRpb25TaXplID0gV2ViQ29yZTo6RmxvYXRTaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5jcHAKaW5kZXggOGVhODk2MTFkOGNhZDFhMmFmMjBiMDFhM2JlY2Q0MTA0NWUwZDcyMi4u
NmJmZTQ4YTJlZDdiMGJmYmRlODFjZTJkZDA1NGEzZjc3NTE2ZDQ5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAt
NzIxLDcgKzcyMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjp0cmFj
a0RldGVjdGVkKFJlZlB0cjxBcHBlbmRQaXBlbGluZT4gYXBwZW5kCiAKICAgICBpZiAoZG9DYXBz
SGF2ZVR5cGUoY2FwcywgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIE9w
dGlvbmFsPEZsb2F0U2l6ZT4gc2l6ZSA9IGdldFZpZGVvUmVzb2x1dGlvbkZyb21DYXBzKGNhcHMp
OwotICAgICAgICBpZiAoc2l6ZS5oYXNfdmFsdWUoKSkKKyAgICAgICAgaWYgKHNpemUuaGFzVmFs
dWUoKSkKICAgICAgICAgICAgIG1fdmlkZW9TaXplID0gc2l6ZS52YWx1ZSgpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApp
bmRleCAzZjUwZDc2YzdiYTMwM2I0ZmIwMWFiZjEzOWVkNWU3ODhiNWJlNzdmLi4xYWQ0NDI0OTAy
MTk1NjRkNTAwMWNmNDY4ZGVlMjg3YzBkNDEyZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZv
aWQgd2ViS2l0TWVkaWFTcmNVcGRhdGVQcmVzZW50YXRpb25TaXplKEdzdENhcHMqIGNhcHMsIFN0
cmVhbSogc3RyZWFtKQogICAgIEdTVF9PQkpFQ1RfTE9DSyhzdHJlYW0tPnBhcmVudCk7CiAgICAg
aWYgKFdlYkNvcmU6OmRvQ2Fwc0hhdmVUeXBlKGNhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJF
RklYKSkgewogICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHNpemUgPSBXZWJD
b3JlOjpnZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2FwcyhjYXBzKTsKLSAgICAgICAgaWYgKHNpemUu
aGFzX3ZhbHVlKCkpCisgICAgICAgIGlmIChzaXplLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICBz
dHJlYW0tPnByZXNlbnRhdGlvblNpemUgPSBzaXplLnZhbHVlKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHN0cmVhbS0+cHJlc2VudGF0aW9uU2l6ZSA9IFdlYkNvcmU6OkZsb2F0U2l6ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBE
ZXRhaWxzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRh
aWxzLm1tCmluZGV4IGJmZTNhZTIwZjIxNjMxODViYzAxMzUzMWQyOGJlZmIzOTE2OTRhZGEuLmRh
ZDA0NWYwZDYyODdhNGZmNzI2YjY1MzMwYmE5ODhkNGE5YWRiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW0KQEAgLTM4LDcg
KzM4LDcgQEAgT3B0aW9uYWw8Ym9vbD4gU2Nyb2xsZXJTdHlsZTo6bV91c2VPdmVybGF5U2Nyb2xs
YmFyczsKIAogTlNTY3JvbGxlclN0eWxlIFNjcm9sbGVyU3R5bGU6OnJlY29tbWVuZGVkU2Nyb2xs
ZXJTdHlsZSgpCiB7Ci0gICAgaWYgKG1fdXNlT3ZlcmxheVNjcm9sbGJhcnMuaGFzX3ZhbHVlKCkp
CisgICAgaWYgKG1fdXNlT3ZlcmxheVNjcm9sbGJhcnMuaGFzVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuICptX3VzZU92ZXJsYXlTY3JvbGxiYXJzID8gTlNTY3JvbGxlclN0eWxlT3ZlcmxheSA6IE5T
U2Nyb2xsZXJTdHlsZUxlZ2FjeTsKICAgICAKICAgICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEl0ZW0uY3BwCmluZGV4IGU0ODM3ZTE4NGFiYjBjYTM2ZDAyMTEwOGJlYWI0MzFm
MTNmOWU2YzYuLmQ5MjNlZWEzZDA1MzcyMGQwODEwNzFmZjUzMzRiNTYwNTYwNWI0MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcApAQCAtNDA3LDcgKzQw
Nyw3IEBAIHZvaWQgUmVuZGVyTGlzdEl0ZW06OnNldEV4cGxpY2l0VmFsdWUoT3B0aW9uYWw8aW50
PiB2YWx1ZSkKICAgICAgICAgaWYgKG1fdmFsdWVXYXNTZXRFeHBsaWNpdGx5ICYmIG1fdmFsdWUg
PT0gdmFsdWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fdmFsdWVXYXNTZXRF
eHBsaWNpdGx5ID0gdmFsdWUuaGFzX3ZhbHVlKCk7CisgICAgbV92YWx1ZVdhc1NldEV4cGxpY2l0
bHkgPSB2YWx1ZS5oYXNWYWx1ZSgpOwogICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAgICBleHBsaWNp
dFZhbHVlQ2hhbmdlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCA1N2RmNWYzZTAz
MTgxMDNjNDJmYjlkYzlkMGRkYjE3NzhiODZhMGViLi5iYTUyN2QyNjAxMDM2OGE3YThhODU3ZjA1
Y2ZlODAwMTE2MDVkOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtNTgsNyArNTgsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBBdXRvbWF0aW9uQ29tbWFuZEVycm9yOjp0b1By
b3RvY29sU3RyaW5nKCkKIHsKICAgICBTdHJpbmcgcHJvdG9jb2xFcnJvck5hbWUgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUodHlw
ZSk7Ci0gICAgaWYgKCFtZXNzYWdlLmhhc192YWx1ZSgpKQorICAgIGlmICghbWVzc2FnZS5oYXNW
YWx1ZSgpKQogICAgICAgICByZXR1cm4gcHJvdG9jb2xFcnJvck5hbWU7CiAKICAgICByZXR1cm4g
bWFrZVN0cmluZyhwcm90b2NvbEVycm9yTmFtZSwgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRv
ciwgbWVzc2FnZS52YWx1ZSgpKTsKQEAgLTc4NCw3ICs3ODQsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjp3aWxsQ2xvc2VQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYgcGFnZSkKIAogICAg
IC8vIFRoZW4gdGVsbCB0aGUgaW5wdXQgZGlzcGF0Y2hlciB0byBjYW5jZWwgc28gdGltZXJzIGFy
ZSBzdG9wcGVkLCBhbmQgbGV0IGl0IGdvIG91dCBvZiBzY29wZS4KICAgICBPcHRpb25hbDxSZWY8
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPj4gaW5wdXREaXNwYXRjaGVyID0gbV9pbnB1dERpc3Bh
dGNoZXJzQnlQYWdlLnRha2UocGFnZS5wYWdlSUQoKSk7Ci0gICAgaWYgKGlucHV0RGlzcGF0Y2hl
ci5oYXNfdmFsdWUoKSkKKyAgICBpZiAoaW5wdXREaXNwYXRjaGVyLmhhc1ZhbHVlKCkpCiAgICAg
ICAgIGlucHV0RGlzcGF0Y2hlci52YWx1ZSgpLT5jYW5jZWwoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBhYzViNzFiZjMzODEzN2MxMWYxNzBjZDNlOWMxYzgw
MTMwMWY0Yjc3Li44ZWRjNWU5Yzk2ZmUxYzJlYjJjMDFhYTgyZWZmMDliODJjYWU1YjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQodWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmCiAgICAgYm9vbCBpc09ic2N1cmVkID0gZmFsc2U7CiAgICAgaWYg
KGNvbnRhaW5lckVsZW1lbnQpIHsKICAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2lu
dD4gZnJhbWVJblZpZXdDZW50ZXJQb2ludCA9IGVsZW1lbnRJblZpZXdDbGllbnRDZW50ZXJQb2lu
dCgqY29udGFpbmVyRWxlbWVudCwgaXNPYnNjdXJlZCk7Ci0gICAgICAgIGlmIChmcmFtZUluVmll
d0NlbnRlclBvaW50Lmhhc192YWx1ZSgpKSB7CisgICAgICAgIGlmIChmcmFtZUluVmlld0NlbnRl
clBvaW50Lmhhc1ZhbHVlKCkpIHsKICAgICAgICAgICAgIFdlYkNvcmU6OkludFBvaW50IHJvb3RJ
blZpZXdDZW50ZXJQb2ludCA9IG1haW5WaWV3LT5yb290Vmlld1RvQ29udGVudHMoZnJhbWVWaWV3
LT5jb250ZW50c1RvUm9vdFZpZXcoV2ViQ29yZTo6SW50UG9pbnQoZnJhbWVJblZpZXdDZW50ZXJQ
b2ludC52YWx1ZSgpKSkpOwogICAgICAgICAgICAgc3dpdGNoIChjb29yZGluYXRlU3lzdGVtKSB7
CiAgICAgICAgICAgICBjYXNlIENvb3JkaW5hdGVTeXN0ZW06OlBhZ2U6CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmI4NDM0NTI1NGIxNWVmM2Y4
ODk4NzYxMzAzMDkxYTM2NzhkOWUzMy4uNzY2OWJjZjI3ZGYyYTFmOTQ3ZWI5MDQwZjU0ZTE2YzA5
YTcwZGZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTEyLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgVXNlIE9wdGlvbmFsOjpoYXNWYWx1ZSgpIGluc3RlYWQgb2YgT3B0
aW9uYWw6Omhhc192YWx1ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI5NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SUmVhZGVyVGVzdC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUldyaXRlclRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVT
eXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAxOC0xMi0y
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBPcHRpb25h
bDo6dmFsdWVPcigpIGluc3RlYWQgb2YgT3B0aW9uYWw6OnZhbHVlX29yKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SUmVhZGVyVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlJlYWRlclRlc3QuY3BwCmluZGV4
IGZkZWI1MDFiNzRhN2RlMmUzYmVjYjYwNTIwYTc4MjlhMGUyZWYxMjEuLjNhYjYwNDdmYzMwMTg0
ZmIwNDE3ZGM1NDY1OWQzODZhMTViNTZmOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DQk9SUmVhZGVyVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JSZWFkZXJUZXN0LmNwcApAQCAtNjQsNyArNjQsNyBAQCBU
RVNUKENCT1JSZWFkZXJUZXN0LCBUZXN0UmVhZFVpbnQpCiAKICAgICBmb3IgKGNvbnN0IFVpbnRU
ZXN0Q2FzZSYgdGVzdENhc2UgOiBrVWludFRlc3RDYXNlcykgewogICAgICAgICBPcHRpb25hbDxD
Qk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFkKHRlc3RDYXNlLmNib3JEYXRhKTsKLSAg
ICAgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNfdmFsdWUoKSk7CisgICAgICAgIEFTU0VSVF9UUlVF
KGNib3IuaGFzVmFsdWUoKSk7CiAgICAgICAgIEFTU0VSVF9UUlVFKGNib3IudmFsdWUoKS50eXBl
KCkgPT0gQ0JPUlZhbHVlOjpUeXBlOjpVbnNpZ25lZCk7CiAgICAgICAgIEVYUEVDVF9FUShjYm9y
LnZhbHVlKCkuZ2V0SW50ZWdlcigpLCB0ZXN0Q2FzZS52YWx1ZSk7CiAgICAgfQpAQCAtMTA5LDcg
KzEwOSw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RVaW50RW5jb2RlZFdpdGhOb25NaW5p
bXVtQnl0ZUxlbmd0aCkKICAgICBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3IgZXJyb3JDb2RlOwog
ICAgIGZvciAoY29uc3QgYXV0byYgbm9uTWluaW1hbFVpbnQgOiBub25NaW5pbWFsVWludEVuY29k
aW5ncykgewogICAgICAgICBPcHRpb25hbDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpy
ZWFkKG5vbk1pbmltYWxVaW50LCAmZXJyb3JDb2RlKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKGNi
b3IuaGFzX3ZhbHVlKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoY2Jvci5oYXNWYWx1ZSgpKTsK
ICAgICAgICAgRVhQRUNUX1RSVUUoZXJyb3JDb2RlID09IENCT1JSZWFkZXI6OkRlY29kZXJFcnJv
cjo6Tm9uTWluaW1hbENCT1JFbmNvZGluZyk7CiAgICAgfQogfQpAQCAtMTM1LDcgKzEzNSw3IEBA
IFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RSZWFkTmVnYXRpdmVJbnQpCiAKICAgICBmb3IgKGNv
bnN0IE5lZ2F0aXZlSW50VGVzdENhc2UmIHRlc3RDYXNlIDoga05lZ2F0aXZlSW50VGVzdENhc2Vz
KSB7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gY2JvciA9IENCT1JSZWFkZXI6OnJlYWQo
dGVzdENhc2UuY2JvckRhdGEpOwotICAgICAgICBBU1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgp
KTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICAgICAgQVNTRVJU
X1RSVUUoY2Jvci52YWx1ZSgpLnR5cGUoKSA9PSBDQk9SVmFsdWU6OlR5cGU6Ok5lZ2F0aXZlKTsK
ICAgICAgICAgRVhQRUNUX0VRKGNib3IudmFsdWUoKS5nZXRJbnRlZ2VyKCksIHRlc3RDYXNlLm5l
Z2F0aXZlSW50KTsKICAgICB9CkBAIC0xNTUsNyArMTU1LDcgQEAgVEVTVChDQk9SUmVhZGVyVGVz
dCwgVGVzdFJlYWRCeXRlcykKIAogICAgIGZvciAoY29uc3QgQnl0ZVRlc3RDYXNlJiB0ZXN0Q2Fz
ZSA6IGtCeXRlU3RyaW5nVGVzdENhc2VzKSB7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4g
Y2JvciA9IENCT1JSZWFkZXI6OnJlYWQodGVzdENhc2UuY2JvckRhdGEpOwotICAgICAgICBBU1NF
UlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNW
YWx1ZSgpKTsKICAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci52YWx1ZSgpLnR5cGUoKSA9PSBDQk9S
VmFsdWU6OlR5cGU6OkJ5dGVTdHJpbmcpOwogICAgICAgICBFWFBFQ1RfVFJVRShjYm9yLnZhbHVl
KCkuZ2V0Qnl0ZVN0cmluZygpID09IHRlc3RDYXNlLnZhbHVlKTsKICAgICB9CkBAIC0xODAsNyAr
MTgwLDcgQEAgVEVTVChDQk9SUmVhZGVyVGVzdCwgVGVzdFJlYWRTdHJpbmcpCiAKICAgICBmb3Ig
KGNvbnN0IFN0cmluZ1Rlc3RDYXNlJiB0ZXN0Q2FzZSA6IGtTdHJpbmdUZXN0Q2FzZXMpIHsKICAg
ICAgICAgT3B0aW9uYWw8Q0JPUlZhbHVlPiBjYm9yID0gQ0JPUlJlYWRlcjo6cmVhZCh0ZXN0Q2Fz
ZS5jYm9yRGF0YSk7Ci0gICAgICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzX3ZhbHVlKCkpOworICAg
ICAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgICAgICBBU1NFUlRfVFJVRShj
Ym9yLnZhbHVlKCkudHlwZSgpID09IENCT1JWYWx1ZTo6VHlwZTo6U3RyaW5nKTsKICAgICAgICAg
RVhQRUNUX1RSVUUoY2Jvci52YWx1ZSgpLmdldFN0cmluZygpID09IHRlc3RDYXNlLnZhbHVlKTsK
ICAgICB9CkBAIC0yMDgsNyArMjA4LDcgQEAgVEVTVChDQk9SUmVhZGVyVGVzdCwgVGVzdFJlYWRT
dHJpbmdXaXRoTlVMKQogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0ZXN0Q2FzZSA6IGtTdHJpbmdU
ZXN0Q2FzZXMpIHsKICAgICAgICAgT3B0aW9uYWw8Q0JPUlZhbHVlPiBjYm9yID0gQ0JPUlJlYWRl
cjo6cmVhZCh0ZXN0Q2FzZS5jYm9yRGF0YSk7Ci0gICAgICAgIEFTU0VSVF9UUlVFKGNib3IuaGFz
X3ZhbHVlKCkpOworICAgICAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgICAg
ICBBU1NFUlRfVFJVRShjYm9yLnZhbHVlKCkudHlwZSgpID09IENCT1JWYWx1ZTo6VHlwZTo6U3Ry
aW5nKTsKICAgICAgICAgRVhQRUNUX1RSVUUoY2Jvci52YWx1ZSgpLmdldFN0cmluZygpID09IHRl
c3RDYXNlLnZhbHVlKTsKICAgICB9CkBAIC0yMjUsNyArMjI1LDcgQEAgVEVTVChDQk9SUmVhZGVy
VGVzdCwgVGVzdFJlYWRTdHJpbmdXaXRoSW52YWxpZEJ5dGVTZXF1ZW5jZUFmdGVyTlVMKQogICAg
IH07CiAgICAgQ0JPUlJlYWRlcjo6RGVjb2RlckVycm9yIGVycm9yQ29kZTsKICAgICBPcHRpb25h
bDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFkKHN0cmluZ1dpdGhJbnZhbGlkQ29u
dGludWF0aW9uQnl0ZSwgJmVycm9yQ29kZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGNib3IuaGFzX3Zh
bHVlKCkpOworICAgIEVYUEVDVF9GQUxTRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgIEVYUEVDVF9U
UlVFKGVycm9yQ29kZSA9PSBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3I6OkludmFsaWRVVEY4KTsK
IH0KIApAQCAtMjM5LDcgKzIzOSw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RSZWFkQXJy
YXkpCiAgICAgfTsKIAogICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gY2JvciA9IENCT1JSZWFkZXI6
OnJlYWQoa0FycmF5VGVzdENhc2VDQk9SKTsKLSAgICBBU1NFUlRfVFJVRShjYm9yLmhhc192YWx1
ZSgpKTsKKyAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgIGNvbnN0IENCT1JW
YWx1ZSBjYm9yQXJyYXkgPSBXVEZNb3ZlKGNib3IudmFsdWUoKSk7CiAgICAgQVNTRVJUX1RSVUUo
Y2JvckFycmF5LnR5cGUoKSA9PSBDQk9SVmFsdWU6OlR5cGU6OkFycmF5KTsKICAgICBBU1NFUlRf
RVEoY2JvckFycmF5LmdldEFycmF5KCkuc2l6ZSgpLCAyNXUpOwpAQCAtMjY5LDcgKzI2OSw3IEBA
IFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RSZWFkTWFwV2l0aE1hcFZhbHVlKQogICAgIH07CiAK
ICAgICBPcHRpb25hbDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFkKGtNYXBUZXN0
Q2FzZUNCT1IpOwotICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzX3ZhbHVlKCkpOworICAgIEFTU0VS
VF9UUlVFKGNib3IuaGFzVmFsdWUoKSk7CiAgICAgY29uc3QgQ0JPUlZhbHVlIGNib3JWYWwgPSBX
VEZNb3ZlKGNib3IudmFsdWUoKSk7CiAgICAgQVNTRVJUX1RSVUUoY2JvclZhbC50eXBlKCkgPT0g
Q0JPUlZhbHVlOjpUeXBlOjpNYXApOwogICAgIEFTU0VSVF9FUShjYm9yVmFsLmdldE1hcCgpLnNp
emUoKSwgNHUpOwpAQCAtMzEzLDcgKzMxMyw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RS
ZWFkTWFwV2l0aEludGVnZXJLZXlzKQogICAgIH07CiAKICAgICBPcHRpb25hbDxDQk9SVmFsdWU+
IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFkKGtNYXBXaXRoSW50ZWdlcktleUNCT1IpOwotICAgIEFT
U0VSVF9UUlVFKGNib3IuaGFzX3ZhbHVlKCkpOworICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzVmFs
dWUoKSk7CiAgICAgY29uc3QgQ0JPUlZhbHVlIGNib3JWYWwgPSBXVEZNb3ZlKGNib3IudmFsdWUo
KSk7CiAgICAgQVNTRVJUX1RSVUUoY2JvclZhbC50eXBlKCkgPT0gQ0JPUlZhbHVlOjpUeXBlOjpN
YXApOwogICAgIEFTU0VSVF9FUShjYm9yVmFsLmdldE1hcCgpLnNpemUoKSwgNHUpOwpAQCAtMzUz
LDcgKzM1Myw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RSZWFkTWFwV2l0aEFycmF5KQog
ICAgIH07CiAKICAgICBPcHRpb25hbDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFk
KGtNYXBBcnJheVRlc3RDYXNlQ0JPUik7Ci0gICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNfdmFsdWUo
KSk7CisgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICBjb25zdCBDQk9SVmFs
dWUgY2JvclZhbCA9IFdURk1vdmUoY2Jvci52YWx1ZSgpKTsKICAgICBBU1NFUlRfVFJVRShjYm9y
VmFsLnR5cGUoKSA9PSBDQk9SVmFsdWU6OlR5cGU6Ok1hcCk7CiAgICAgQVNTRVJUX0VRKGNib3JW
YWwuZ2V0TWFwKCkuc2l6ZSgpLCAydSk7CkBAIC0zOTIsNyArMzkyLDcgQEAgVEVTVChDQk9SUmVh
ZGVyVGVzdCwgVGVzdFJlYWROZXN0ZWRNYXApCiAgICAgfTsKIAogICAgIE9wdGlvbmFsPENCT1JW
YWx1ZT4gY2JvciA9IENCT1JSZWFkZXI6OnJlYWQoa05lc3RlZE1hcFRlc3RDYXNlKTsKLSAgICBB
U1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1Zh
bHVlKCkpOwogICAgIGNvbnN0IENCT1JWYWx1ZSBjYm9yVmFsID0gV1RGTW92ZShjYm9yLnZhbHVl
KCkpOwogICAgIEFTU0VSVF9UUlVFKGNib3JWYWwudHlwZSgpID09IENCT1JWYWx1ZTo6VHlwZTo6
TWFwKTsKICAgICBBU1NFUlRfRVEoY2JvclZhbC5nZXRNYXAoKS5zaXplKCksIDJ1KTsKQEAgLTQy
OSwxMSArNDI5LDExIEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RJbnRlZ2VyUmFuZ2UpCiAg
ICAgfTsKIAogICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gbWF4UG9zaXRpdmVJbnQgPSBDQk9SUmVh
ZGVyOjpyZWFkKGtNYXhQb3NpdGl2ZUludCk7Ci0gICAgQVNTRVJUX1RSVUUobWF4UG9zaXRpdmVJ
bnQuaGFzX3ZhbHVlKCkpOworICAgIEFTU0VSVF9UUlVFKG1heFBvc2l0aXZlSW50Lmhhc1ZhbHVl
KCkpOwogICAgIEVYUEVDVF9FUShtYXhQb3NpdGl2ZUludC52YWx1ZSgpLmdldEludGVnZXIoKSwg
SU5UNjRfTUFYKTsKIAogICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gbWluTmVnYXRpdmVJbnQgPSBD
Qk9SUmVhZGVyOjpyZWFkKGtNaW5OZWdhdGl2ZUludCk7Ci0gICAgQVNTRVJUX1RSVUUobWluTmVn
YXRpdmVJbnQuaGFzX3ZhbHVlKCkpOworICAgIEFTU0VSVF9UUlVFKG1pbk5lZ2F0aXZlSW50Lmhh
c1ZhbHVlKCkpOwogICAgIEVYUEVDVF9FUShtaW5OZWdhdGl2ZUludC52YWx1ZSgpLmdldEludGVn
ZXIoKSwgSU5UNjRfTUlOKTsKIH0KIApAQCAtNDcxLDcgKzQ3MSw3IEBAIFRFU1QoQ0JPUlJlYWRl
clRlc3QsIFRlc3RSZWFkU2ltcGxlVmFsdWUpCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRlc3RD
YXNlIDoga1NpbXBsZVZhbHVlVGVzdENhc2VzKSB7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1
ZT4gY2JvciA9IENCT1JSZWFkZXI6OnJlYWQodGVzdENhc2UuY2JvckRhdGEpOwotICAgICAgICBB
U1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci5o
YXNWYWx1ZSgpKTsKICAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci52YWx1ZSgpLnR5cGUoKSA9PSBD
Qk9SVmFsdWU6OlR5cGU6OlNpbXBsZVZhbHVlKTsKICAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci52
YWx1ZSgpLmdldFNpbXBsZVZhbHVlKCkgPT0gdGVzdENhc2UudmFsdWUpOwogICAgIH0KQEAgLTQ5
MSw3ICs0OTEsNyBAQCBURVNUKENCT1JSZWFkZXJUZXN0LCBUZXN0UmVhZFVuc3VwcG9ydGVkRmxv
YXRpbmdQb2ludE51bWJlcnMpCiAgICAgZm9yIChjb25zdCBhdXRvJiB1bnN1cHBvcnRlZF9mbG9h
dGluZ19wb2ludCA6IGZsb2F0aW5nUG9pbnRDYm9ycykgewogICAgICAgICBDQk9SUmVhZGVyOjpE
ZWNvZGVyRXJyb3IgZXJyb3JDb2RlOwogICAgICAgICBPcHRpb25hbDxDQk9SVmFsdWU+IGNib3Ig
PSBDQk9SUmVhZGVyOjpyZWFkKHVuc3VwcG9ydGVkX2Zsb2F0aW5nX3BvaW50LCAmZXJyb3JDb2Rl
KTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKGNib3IuaGFzX3ZhbHVlKCkpOworICAgICAgICBFWFBF
Q1RfRkFMU0UoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoZXJyb3JDb2Rl
ID09IENCT1JSZWFkZXI6OkRlY29kZXJFcnJvcjo6VW5zdXBwb3J0ZWRGbG9hdGluZ1BvaW50VmFs
dWUpOwogICAgIH0KIH0KQEAgLTUxNyw3ICs1MTcsNyBAQCBURVNUKENCT1JSZWFkZXJUZXN0LCBU
ZXN0SW5jb21wbGV0ZUNCT1JEYXRhRXJyb3IpCiAgICAgZm9yIChjb25zdCBhdXRvJiBpbmNvbXBs
ZXRlX2RhdGEgOiBpbmNvbXBsZXRlQ2Jvckxpc3QpIHsKICAgICAgICAgQ0JPUlJlYWRlcjo6RGVj
b2RlckVycm9yIGVycm9yQ29kZTsKICAgICAgICAgT3B0aW9uYWw8Q0JPUlZhbHVlPiBjYm9yID0g
Q0JPUlJlYWRlcjo6cmVhZChpbmNvbXBsZXRlX2RhdGEsICZlcnJvckNvZGUpOwotICAgICAgICBF
WFBFQ1RfRkFMU0UoY2Jvci5oYXNfdmFsdWUoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShjYm9y
Lmhhc1ZhbHVlKCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShlcnJvckNvZGUgPT0gQ0JPUlJlYWRl
cjo6RGVjb2RlckVycm9yOjpJbmNvbXBsZXRlQ0JPUkRhdGEpOwogICAgIH0KIH0KQEAgLTUzOCw3
ICs1MzgsNyBAQCBURVNUKENCT1JSZWFkZXJUZXN0LCBUZXN0VW5zdXBwb3J0ZWRNYXBLZXlGb3Jt
YXRFcnJvcikKIAogICAgIENCT1JSZWFkZXI6OkRlY29kZXJFcnJvciBlcnJvckNvZGU7CiAgICAg
T3B0aW9uYWw8Q0JPUlZhbHVlPiBjYm9yID0gQ0JPUlJlYWRlcjo6cmVhZChrTWFwV2l0aFVpbnRL
ZXksICZlcnJvckNvZGUpOwotICAgIEVYUEVDVF9GQUxTRShjYm9yLmhhc192YWx1ZSgpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICBFWFBFQ1RfVFJVRShlcnJvckNv
ZGUgPT0gQ0JPUlJlYWRlcjo6RGVjb2RlckVycm9yOjpJbmNvcnJlY3RNYXBLZXlUeXBlKTsKIH0K
IApAQCAtNTY3LDcgKzU2Nyw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RVbmtub3duQWRk
aXRpb25hbEluZm9FcnJvcikKICAgICBmb3IgKGNvbnN0IGF1dG8mIGluY29ycmVjdF9jYm9yIDog
a1Vua25vd25BZGRpdGlvbmFsSW5mb0xpc3QpIHsKICAgICAgICAgQ0JPUlJlYWRlcjo6RGVjb2Rl
ckVycm9yIGVycm9yQ29kZTsKICAgICAgICAgT3B0aW9uYWw8Q0JPUlZhbHVlPiBjYm9yID0gQ0JP
UlJlYWRlcjo6cmVhZChpbmNvcnJlY3RfY2JvciwgJmVycm9yQ29kZSk7Ci0gICAgICAgIEVYUEVD
VF9GQUxTRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGNib3IuaGFz
VmFsdWUoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKGVycm9yQ29kZSA9PSBDQk9SUmVhZGVyOjpE
ZWNvZGVyRXJyb3I6OlVua25vd25BZGRpdGlvbmFsSW5mbyk7CiAgICAgfQogfQpAQCAtNTkwLDcg
KzU5MCw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRlc3RUb29NdWNoTmVzdGluZ0Vycm9yKQog
ICAgIGZvciAoY29uc3QgYXV0byYgemVyb0RlcHRoRGF0YSA6IGtaZXJvRGVwdGhDQk9STGlzdCkg
ewogICAgICAgICBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3IgZXJyb3JDb2RlOwogICAgICAgICBP
cHRpb25hbDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFkKHplcm9EZXB0aERhdGEs
ICZlcnJvckNvZGUsIDApOwotICAgICAgICBFWFBFQ1RfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsK
KyAgICAgICAgRVhQRUNUX1RSVUUoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICAgICAgRVhQRUNUX1RS
VUUoZXJyb3JDb2RlID09IENCT1JSZWFkZXI6OkRlY29kZXJFcnJvcjo6Q0JPUk5vRXJyb3IpOwog
ICAgIH0KIApAQCAtNjEwLDExICs2MTAsMTEgQEAgVEVTVChDQk9SUmVhZGVyVGVzdCwgVGVzdFRv
b011Y2hOZXN0aW5nRXJyb3IpCiAKICAgICBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3IgZXJyb3JD
b2RlOwogICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gY2JvclNpbmdsZUxheWVyTWF4ID0gQ0JPUlJl
YWRlcjo6cmVhZChrTmVzdGVkQ0JPUkRhdGEsICZlcnJvckNvZGUsIDEpOwotICAgIEVYUEVDVF9G
QUxTRShjYm9yU2luZ2xlTGF5ZXJNYXguaGFzX3ZhbHVlKCkpOworICAgIEVYUEVDVF9GQUxTRShj
Ym9yU2luZ2xlTGF5ZXJNYXguaGFzVmFsdWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoZXJyb3JDb2Rl
ID09IENCT1JSZWFkZXI6OkRlY29kZXJFcnJvcjo6VG9vTXVjaE5lc3RpbmcpOwogCiAgICAgT3B0
aW9uYWw8Q0JPUlZhbHVlPiBjYm9yRG91YmxlTGF5ZXJNYXggPSBDQk9SUmVhZGVyOjpyZWFkKGtO
ZXN0ZWRDQk9SRGF0YSwgJmVycm9yQ29kZSwgMik7Ci0gICAgRVhQRUNUX1RSVUUoY2JvckRvdWJs
ZUxheWVyTWF4Lmhhc192YWx1ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShjYm9yRG91YmxlTGF5ZXJN
YXguaGFzVmFsdWUoKSk7CiAgICAgRVhQRUNUX1RSVUUoZXJyb3JDb2RlID09IENCT1JSZWFkZXI6
OkRlY29kZXJFcnJvcjo6Q0JPUk5vRXJyb3IpOwogfQogCkBAIC02NDgsNyArNjQ4LDcgQEAgVEVT
VChDQk9SUmVhZGVyVGVzdCwgVGVzdE91dE9mT3JkZXJLZXlFcnJvcikKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHVuc29ydGVkTWFwIDoga01hcHNXaXRoVW5zb3J0ZWRLZXlzKSB7CiAgICAgICAgIE9w
dGlvbmFsPENCT1JWYWx1ZT4gY2JvciA9CiAgICAgICAgIENCT1JSZWFkZXI6OnJlYWQodW5zb3J0
ZWRNYXAsICZlcnJvckNvZGUpOwotICAgICAgICBFWFBFQ1RfRkFMU0UoY2Jvci5oYXNfdmFsdWUo
KSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgICAgICBFWFBF
Q1RfVFJVRShlcnJvckNvZGUgPT0gQ0JPUlJlYWRlcjo6RGVjb2RlckVycm9yOjpPdXRPZk9yZGVy
S2V5KTsKICAgICB9CiB9CkBAIC02NzksNyArNjc5LDcgQEAgVEVTVChDQk9SUmVhZGVyVGVzdCwg
VGVzdER1cGxpY2F0ZUtleUVycm9yKQogICAgIENCT1JSZWFkZXI6OkRlY29kZXJFcnJvciBlcnJv
ckNvZGU7CiAKICAgICBPcHRpb25hbDxDQk9SVmFsdWU+IGNib3IgPSBDQk9SUmVhZGVyOjpyZWFk
KGtNYXBXaXRoRHVwbGljYXRlS2V5LCAmZXJyb3JDb2RlKTsKLSAgICBFWFBFQ1RfRkFMU0UoY2Jv
ci5oYXNfdmFsdWUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNib3IuaGFzVmFsdWUoKSk7CiAgICAg
RVhQRUNUX1RSVUUoZXJyb3JDb2RlID09IENCT1JSZWFkZXI6OkRlY29kZXJFcnJvcjo6RHVwbGlj
YXRlS2V5KTsKIH0KIApAQCAtNjk5LDcgKzY5OSw3IEBAIFRFU1QoQ0JPUlJlYWRlclRlc3QsIFRl
c3RJbmNvcnJlY3RTdHJpbmdFbmNvZGluZ0Vycm9yKQogICAgIENCT1JSZWFkZXI6OkRlY29kZXJF
cnJvciBlcnJvckNvZGU7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjYm9yX2J5dGUgOiB1dGY4Q2hh
cmFjdGVyRW5jb2RpbmdzKSB7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gY29ycmVjdGx5
RW5jb2RlZENib3IgPSBDQk9SUmVhZGVyOjpyZWFkKGNib3JfYnl0ZSwgJmVycm9yQ29kZSk7Ci0g
ICAgICAgIEVYUEVDVF9UUlVFKGNvcnJlY3RseUVuY29kZWRDYm9yLmhhc192YWx1ZSgpKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoY29ycmVjdGx5RW5jb2RlZENib3IuaGFzVmFsdWUoKSk7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKGVycm9yQ29kZSA9PSBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3I6OkNC
T1JOb0Vycm9yKTsKICAgICB9CiAKQEAgLTcyOCw3ICs3MjgsNyBAQCBURVNUKENCT1JSZWFkZXJU
ZXN0LCBUZXN0RXh0cmFuZW91c0NCT1JEYXRhRXJyb3IpCiAgICAgZm9yIChjb25zdCBhdXRvJiBl
eHRyYW5lb3VzX2Nib3JEYXRhIDogemVyb1BhZGRlZENib3JMaXN0KSB7CiAgICAgICAgIENCT1JS
ZWFkZXI6OkRlY29kZXJFcnJvciBlcnJvckNvZGU7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1
ZT4gY2JvciA9IENCT1JSZWFkZXI6OnJlYWQoZXh0cmFuZW91c19jYm9yRGF0YSwgJmVycm9yQ29k
ZSk7Ci0gICAgICAgIEVYUEVDVF9GQUxTRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgRVhQ
RUNUX0ZBTFNFKGNib3IuaGFzVmFsdWUoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKGVycm9yQ29k
ZSA9PSBDQk9SUmVhZGVyOjpEZWNvZGVyRXJyb3I6OkV4dHJhbmVvdXNEYXRhKTsKICAgICB9CiB9
CkBAIC03NTksNyArNzU5LDcgQEAgVEVTVChDQk9SUmVhZGVyVGVzdCwgVGVzdFVuc3VwcG9ydGVk
U2ltcGxldmFsdWUpCiAgICAgZm9yIChjb25zdCBhdXRvJiB1bnN1cHBvcnRlZFNpbXBsZVZhbCA6
IHVuc3VwcG9ydGVkU2ltcGxlVmFsdWVzKSB7CiAgICAgICAgIENCT1JSZWFkZXI6OkRlY29kZXJF
cnJvciBlcnJvckNvZGU7CiAgICAgICAgIE9wdGlvbmFsPENCT1JWYWx1ZT4gY2JvciA9IENCT1JS
ZWFkZXI6OnJlYWQodW5zdXBwb3J0ZWRTaW1wbGVWYWwsICZlcnJvckNvZGUpOwotICAgICAgICBF
WFBFQ1RfRkFMU0UoY2Jvci5oYXNfdmFsdWUoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShjYm9y
Lmhhc1ZhbHVlKCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShlcnJvckNvZGUgPT0gQ0JPUlJlYWRl
cjo6RGVjb2RlckVycm9yOjpVbnN1cHBvcnRlZFNpbXBsZVZhbHVlKTsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUldyaXRlclRlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JXcml0ZXJUZXN0LmNw
cAppbmRleCAxOTYxYTZjZjM5ZGUwMWYxMzE2MzViMGUwOWFkYmM3MjNiMDY4Y2E2Li4zZTliZGQy
NmI1OTdkNzM0Yjk2MGFhYjNhNjYwMTRiN2Y0Mjk1MWMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUldyaXRlclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SV3JpdGVyVGVzdC5jcHAKQEAgLTgxLDcgKzgx
LDcgQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwgVGVzdFdyaXRlVWludCkKIAogICAgIGZvciAoY29u
c3QgVWludFRlc3RDYXNlJiB0ZXN0Q2FzZSA6IGtVaW50VGVzdENhc2VzKSB7CiAgICAgICAgIGF1
dG8gY2JvciA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZSh0ZXN0Q2FzZS52YWx1ZSkpOwot
ICAgICAgICBBU1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1RS
VUUoY2Jvci5oYXNWYWx1ZSgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoZXEoY2Jvci52YWx1ZSgp
LCB0ZXN0Q2FzZS5jYm9yKSk7CiAgICAgfQogfQpAQCAtMTA4LDcgKzEwOCw3IEBAIFRFU1QoQ0JP
UldyaXRlclRlc3QsIFRlc3RXcml0ZU5lZ2F0aXZlSW50ZWdlcikKIAogICAgIGZvciAoY29uc3Qg
YXV0byYgdGVzdENhc2UgOiBrTmVnYXRpdmVJbnRUZXN0Q2FzZXMpIHsKICAgICAgICAgYXV0byBj
Ym9yID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKHRlc3RDYXNlLm5lZ2F0aXZlSW50KSk7
Ci0gICAgICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzX3ZhbHVlKCkpOworICAgICAgICBBU1NFUlRf
VFJVRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShlcShjYm9yLnZhbHVl
KCksIHRlc3RDYXNlLmNib3IpKTsKICAgICB9CiB9CkBAIC0xMjcsNyArMTI3LDcgQEAgVEVTVChD
Qk9SV3JpdGVyVGVzdCwgVGVzdFdyaXRlQnl0ZXMpCiAKICAgICBmb3IgKGNvbnN0IEJ5dGVzVGVz
dENhc2UmIHRlc3RDYXNlIDoga0J5dGVzVGVzdENhc2VzKSB7CiAgICAgICAgIGF1dG8gY2JvciA9
IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZSh0ZXN0Q2FzZS5ieXRlcykpOwotICAgICAgICBB
U1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci5o
YXNWYWx1ZSgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoZXEoY2Jvci52YWx1ZSgpLCB0ZXN0Q2Fz
ZS5jYm9yKSk7CiAgICAgfQogfQpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1QoQ0JPUldyaXRlclRl
c3QsIFRlc3RXcml0ZVN0cmluZykKIAogICAgIGZvciAoY29uc3QgU3RyaW5nVGVzdENhc2UmIHRl
c3RDYXNlIDoga1N0cmluZ1Rlc3RDYXNlcykgewogICAgICAgICBhdXRvIGNib3IgPSBDQk9SV3Jp
dGVyOjp3cml0ZShDQk9SVmFsdWUodGVzdENhc2Uuc3RyaW5nKSk7Ci0gICAgICAgIEFTU0VSVF9U
UlVFKGNib3IuaGFzX3ZhbHVlKCkpOworICAgICAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1ZhbHVl
KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShlcShjYm9yLnZhbHVlKCksIHRlc3RDYXNlLmNib3Ip
KTsKICAgICB9CiB9CkBAIC0xNjgsNyArMTY4LDcgQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwgVGVz
dFdyaXRlQXJyYXkpCiAgICAgZm9yIChpbnQ2NF90IGkgPSAxOyBpIDw9IDI1OyBpKyspCiAgICAg
ICAgIGFycmF5LmFwcGVuZChDQk9SVmFsdWUoaSkpOwogICAgIGF1dG8gY2JvciA9IENCT1JXcml0
ZXI6OndyaXRlKENCT1JWYWx1ZShhcnJheSkpOwotICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzX3Zh
bHVlKCkpOworICAgIEFTU0VSVF9UUlVFKGNib3IuaGFzVmFsdWUoKSk7CiAgICAgRVhQRUNUX1RS
VUUoZXEoY2Jvci52YWx1ZSgpLCBrQXJyYXlUZXN0Q2FzZUNib3IsIHNpemVvZihrQXJyYXlUZXN0
Q2FzZUNib3IpKSk7CiB9CiAKQEAgLTI3OCw3ICsyNzgsNyBAQCBURVNUKENCT1JXcml0ZXJUZXN0
LCBUZXN0V3JpdGVNYXBXaXRoTWFwVmFsdWUpCiAgICAgbWFwW0NCT1JWYWx1ZShpbnQ2NF90KDQy
OTQ5NjcyOTYpKV0gPSBDQk9SVmFsdWUoImkiKTsKICAgICBtYXBbQ0JPUlZhbHVlKHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpKV0gPSBDQk9SVmFsdWUoImoiKTsKICAgICBhdXRv
IGNib3IgPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUobWFwKSk7Ci0gICAgQVNTRVJUX1RS
VUUoY2Jvci5oYXNfdmFsdWUoKSk7CisgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNWYWx1ZSgpKTsK
ICAgICBFWFBFQ1RfVFJVRShlcShjYm9yLnZhbHVlKCksIGtNYXBUZXN0Q2FzZUNib3IsIHNpemVv
ZihrTWFwVGVzdENhc2VDYm9yKSkpOwogfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgVEVTVChDQk9S
V3JpdGVyVGVzdCwgVGVzdFdyaXRlTWFwV2l0aEFycmF5KQogICAgIGFycmF5LmFwcGVuZChDQk9S
VmFsdWUoMykpOwogICAgIG1hcFtDQk9SVmFsdWUoImIiKV0gPSBDQk9SVmFsdWUoYXJyYXkpOwog
ICAgIGF1dG8gY2JvciA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShtYXApKTsKLSAgICBB
U1NFUlRfVFJVRShjYm9yLmhhc192YWx1ZSgpKTsKKyAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1Zh
bHVlKCkpOwogICAgIEVYUEVDVF9UUlVFKGVxKGNib3IudmFsdWUoKSwga01hcEFycmF5VGVzdENh
c2VDYm9yLCBzaXplb2Yoa01hcEFycmF5VGVzdENhc2VDYm9yKSkpOwogfQogCkBAIC0zMjcsNyAr
MzI3LDcgQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwgVGVzdFdyaXRlTmVzdGVkTWFwKQogICAgIG5l
c3RlZE1hcFtDQk9SVmFsdWUoImQiKV0gPSBDQk9SVmFsdWUoMyk7CiAgICAgbWFwW0NCT1JWYWx1
ZSgiYiIpXSA9IENCT1JWYWx1ZShuZXN0ZWRNYXApOwogICAgIGF1dG8gY2JvciA9IENCT1JXcml0
ZXI6OndyaXRlKENCT1JWYWx1ZShtYXApKTsKLSAgICBBU1NFUlRfVFJVRShjYm9yLmhhc192YWx1
ZSgpKTsKKyAgICBBU1NFUlRfVFJVRShjYm9yLmhhc1ZhbHVlKCkpOwogICAgIEVYUEVDVF9UUlVF
KGVxKGNib3IudmFsdWUoKSwga05lc3RlZE1hcFRlc3RDYXNlLCBzaXplb2Yoa05lc3RlZE1hcFRl
c3RDYXNlKSkpOwogfQogCkBAIC0zNDUsNyArMzQ1LDcgQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwg
VGVzdFdyaXRlU2ltcGxlVmFsdWUpCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRlc3RDYXNlIDog
a1NpbXBsZVRlc3RDYXNlKSB7CiAgICAgICAgIGF1dG8gY2JvciA9IENCT1JXcml0ZXI6OndyaXRl
KENCT1JWYWx1ZSh0ZXN0Q2FzZS5zaW1wbGVWYWx1ZSkpOwotICAgICAgICBBU1NFUlRfVFJVRShj
Ym9yLmhhc192YWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2Jvci5oYXNWYWx1ZSgpKTsK
ICAgICAgICAgRVhQRUNUX1RSVUUoZXEoY2Jvci52YWx1ZSgpLCB0ZXN0Q2FzZS5jYm9yKSk7CiAg
ICAgfQogfQpAQCAtMzcwLDE4ICszNzAsMTggQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwgVGVzdFdy
aXRlU2luZ2xlTGF5ZXIpCiAgICAgY29uc3QgQ0JPUlZhbHVlIHNpbmdsZUxheWVyQ2Jvck1hcCA9
IENCT1JWYWx1ZShzaW1wbGVNYXApOwogICAgIGNvbnN0IENCT1JWYWx1ZSBzaW5nbGVMYXllckNi
b3JBcnJheSA9IENCT1JWYWx1ZShzaW1wbGVBcnJheSk7CiAKLSAgICBFWFBFQ1RfVFJVRShDQk9S
V3JpdGVyOjp3cml0ZShzaW1wbGVVaW50LCAwKS5oYXNfdmFsdWUoKSk7Ci0gICAgRVhQRUNUX1RS
VUUoQ0JPUldyaXRlcjo6d3JpdGUoc2ltcGxlU3RyaW5nLCAwKS5oYXNfdmFsdWUoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUoc2ltcGxlQnl0ZXN0cmluZywgMCkuaGFzX3Zh
bHVlKCkpOworICAgIEVYUEVDVF9UUlVFKENCT1JXcml0ZXI6OndyaXRlKHNpbXBsZVVpbnQsIDAp
Lmhhc1ZhbHVlKCkpOworICAgIEVYUEVDVF9UUlVFKENCT1JXcml0ZXI6OndyaXRlKHNpbXBsZVN0
cmluZywgMCkuaGFzVmFsdWUoKSk7CisgICAgRVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUo
c2ltcGxlQnl0ZXN0cmluZywgMCkuaGFzVmFsdWUoKSk7CiAKLSAgICBFWFBFQ1RfVFJVRShDQk9S
V3JpdGVyOjp3cml0ZShlbXB0eUFycmF5VmFsdWUsIDApLmhhc192YWx1ZSgpKTsKLSAgICBFWFBF
Q1RfVFJVRShDQk9SV3JpdGVyOjp3cml0ZShlbXB0eU1hcFZhbHVlLCAwKS5oYXNfdmFsdWUoKSk7
CisgICAgRVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUoZW1wdHlBcnJheVZhbHVlLCAwKS5o
YXNWYWx1ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShDQk9SV3JpdGVyOjp3cml0ZShlbXB0eU1hcFZh
bHVlLCAwKS5oYXNWYWx1ZSgpKTsKIAotICAgIEVYUEVDVF9GQUxTRShDQk9SV3JpdGVyOjp3cml0
ZShzaW5nbGVMYXllckNib3JBcnJheSwgMCkuaGFzX3ZhbHVlKCkpOwotICAgIEVYUEVDVF9UUlVF
KENCT1JXcml0ZXI6OndyaXRlKHNpbmdsZUxheWVyQ2JvckFycmF5LCAxKS5oYXNfdmFsdWUoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKENCT1JXcml0ZXI6OndyaXRlKHNpbmdsZUxheWVyQ2JvckFycmF5
LCAwKS5oYXNWYWx1ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShDQk9SV3JpdGVyOjp3cml0ZShzaW5n
bGVMYXllckNib3JBcnJheSwgMSkuaGFzVmFsdWUoKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoQ0JP
UldyaXRlcjo6d3JpdGUoc2luZ2xlTGF5ZXJDYm9yTWFwLCAwKS5oYXNfdmFsdWUoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUoc2luZ2xlTGF5ZXJDYm9yTWFwLCAxKS5oYXNf
dmFsdWUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKENCT1JXcml0ZXI6OndyaXRlKHNpbmdsZUxheWVy
Q2Jvck1hcCwgMCkuaGFzVmFsdWUoKSk7CisgICAgRVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3Jp
dGUoc2luZ2xlTGF5ZXJDYm9yTWFwLCAxKS5oYXNWYWx1ZSgpKTsKIH0KIAogLy8gTWFqb3IgdHlw
ZSA1IG5lc3RlZCBDQk9SIG1hcCB2YWx1ZSB3aXRoIGZvbGxvd2luZyBzdHJ1Y3R1cmUuCkBAIC0z
OTYsOCArMzk2LDggQEAgVEVTVChDQk9SV3JpdGVyVGVzdCwgTmVzdGVkTWFwcykKICAgICBuZXN0
ZWRNYXBbQ0JPUlZhbHVlKCJjIildID0gQ0JPUlZhbHVlKDIpOwogICAgIG5lc3RlZE1hcFtDQk9S
VmFsdWUoImQiKV0gPSBDQk9SVmFsdWUoMyk7CiAgICAgY2Jvck1hcFtDQk9SVmFsdWUoImIiKV0g
PSBDQk9SVmFsdWUobmVzdGVkTWFwKTsKLSAgICBFWFBFQ1RfVFJVRShDQk9SV3JpdGVyOjp3cml0
ZShDQk9SVmFsdWUoY2Jvck1hcCksIDIpLmhhc192YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKGNib3JNYXApLCAxKS5oYXNfdmFsdWUoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKGNib3JNYXApLCAyKS5o
YXNWYWx1ZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVl
KGNib3JNYXApLCAxKS5oYXNWYWx1ZSgpKTsKIH0KIAogLy8gVGVzdGluZyBXcml0ZSgpIGZ1bmN0
aW9uIGZvciBmb2xsb3dpbmcgQ0JPUiBzdHJ1Y3R1cmUgd2l0aCBkZXB0aCBvZiAzLgpAQCAtNDIy
LDggKzQyMiw4IEBAIFRFU1QoQ0JPUldyaXRlclRlc3QsIFVuYmFsYW5jZWROZXN0ZWRDb250YWlu
ZXJzKQogICAgIGNib3JBcnJheS5hcHBlbmQoQ0JPUlZhbHVlKDMpKTsKICAgICBjYm9yQXJyYXku
YXBwZW5kKENCT1JWYWx1ZShjYm9yTWFwKSk7CiAKLSAgICBFWFBFQ1RfVFJVRShDQk9SV3JpdGVy
Ojp3cml0ZShDQk9SVmFsdWUoY2JvckFycmF5KSwgMykuaGFzX3ZhbHVlKCkpOwotICAgIEVYUEVD
VF9GQUxTRShDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoY2JvckFycmF5KSwgMikuaGFzX3Zh
bHVlKCkpOworICAgIEVYUEVDVF9UUlVFKENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShjYm9y
QXJyYXkpLCAzKS5oYXNWYWx1ZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoQ0JPUldyaXRlcjo6d3Jp
dGUoQ0JPUlZhbHVlKGNib3JBcnJheSksIDIpLmhhc1ZhbHVlKCkpOwogfQogCiAvLyBUZXN0aW5n
IFdyaXRlKCkgZnVuY3Rpb24gZm9yIGZvbGxvd2luZyBDQk9SIHN0cnVjdHVyZS4KQEAgLTQ1Niw4
ICs0NTYsOCBAQCBURVNUKENCT1JXcml0ZXJUZXN0LCBPdmVybHlOZXN0ZWRDQk9SKQogICAgIG5l
c3RlZE1hcFtDQk9SVmFsdWUoImgiKV0gPSBDQk9SVmFsdWUoaW5uZXJOZXN0ZWRNYXApOwogICAg
IG1hcFtDQk9SVmFsdWUoImIiKV0gPSBDQk9SVmFsdWUobmVzdGVkTWFwKTsKIAotICAgIEVYUEVD
VF9UUlVFKENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShtYXApLCA1KS5oYXNfdmFsdWUoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShtYXApLCA0KS5o
YXNfdmFsdWUoKSk7CisgICAgRVhQRUNUX1RSVUUoQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVl
KG1hcCksIDUpLmhhc1ZhbHVlKCkpOworICAgIEVYUEVDVF9GQUxTRShDQk9SV3JpdGVyOjp3cml0
ZShDQk9SVmFsdWUobWFwKSwgNCkuaGFzVmFsdWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
U3lzdGVtLmNwcAppbmRleCA0ODNmNDZkNWZlZDA4NWI5YWNiZTI4OTNkNDNjN2M3OWQ2NjFjZTZi
Li43NjYyNTAyNTMwOTcyN2VhNjA1Y2I1MmNmYzllY2Q0YjMzZTc3ODc1IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjksMTIg
KzEyOSwxMiBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIEZpbGVzSGF2ZVNhbWVWb2x1bWUpCiBU
RVNUX0YoRmlsZVN5c3RlbVRlc3QsIEdldEZpbGVNZXRhZGF0YVN5bWxpbmspCiB7CiAgICAgYXV0
byBzeW1saW5rTWV0YWRhdGEgPSBGaWxlU3lzdGVtOjpmaWxlTWV0YWRhdGEodGVtcEZpbGVTeW1s
aW5rUGF0aCgpKTsKLSAgICBBU1NFUlRfVFJVRShzeW1saW5rTWV0YWRhdGEuaGFzX3ZhbHVlKCkp
OworICAgIEFTU0VSVF9UUlVFKHN5bWxpbmtNZXRhZGF0YS5oYXNWYWx1ZSgpKTsKICAgICBFWFBF
Q1RfVFJVRShzeW1saW5rTWV0YWRhdGEudmFsdWUoKS50eXBlID09IEZpbGVNZXRhZGF0YTo6VHlw
ZTo6U3ltYm9saWNMaW5rKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
eW1saW5rTWV0YWRhdGEudmFsdWUoKS5sZW5ndGgpID09IHN0cmxlbihGaWxlU3lzdGVtVGVzdERh
dGEpKTsKIAogICAgIGF1dG8gdGFyZ2V0TWV0YWRhdGEgPSBGaWxlU3lzdGVtOjpmaWxlTWV0YWRh
dGFGb2xsb3dpbmdTeW1saW5rcyh0ZW1wRmlsZVN5bWxpbmtQYXRoKCkpOwotICAgIEFTU0VSVF9U
UlVFKHRhcmdldE1ldGFkYXRhLmhhc192YWx1ZSgpKTsKKyAgICBBU1NFUlRfVFJVRSh0YXJnZXRN
ZXRhZGF0YS5oYXNWYWx1ZSgpKTsKICAgICBFWFBFQ1RfVFJVRSh0YXJnZXRNZXRhZGF0YS52YWx1
ZSgpLnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlOjpGaWxlKTsKICAgICBFWFBFQ1RfRVEoc3Ry
bGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSksIHN0YXRpY19jYXN0PHNpemVfdD4odGFyZ2V0TWV0YWRh
dGEudmFsdWUoKS5sZW5ndGgpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>