<?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>47400</bug_id>
          
          <creation_ts>2010-10-08 01:46:51 -0700</creation_ts>
          <short_desc>Support DirectoryEntry.removeRecursively for FileSystem API</short_desc>
          <delta_ts>2010-10-11 04:21:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ericu</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>291501</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-08 01:46:51 -0700</bug_when>
    <thetext>Support DirectoryEntry.removeRecursively, which is recently added to the latest FileSystem API.

http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#widl-DirectoryEntry-removeRecursively
http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#widl-DirectoryEntrySync-removeRecursively</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291514</commentid>
    <comment_count>1</comment_count>
      <attachid>70214</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-08 02:23:19 -0700</bug_when>
    <thetext>Created attachment 70214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292447</commentid>
    <comment_count>2</comment_count>
      <attachid>70214</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-11 03:40:17 -0700</bug_when>
    <thetext>Comment on attachment 70214
Patch

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

&gt; WebCore/ChangeLog:8
&gt; +        Also disallows remove/removeRecursively on the root directory.

Is there a test for this one? if not, please add one.

&gt; WebCore/fileapi/DOMFileSystemBase.cpp:128
&gt; +        return false;

This was only returning true before.

Please check that the caller is properly handling false.

&gt; WebCore/fileapi/DirectoryEntry.h:61
&gt; +    virtual void removeRecursively(PassRefPtr&lt;VoidCallback&gt; successCallback = 0, PassRefPtr&lt;ErrorCallback&gt; errorCallback = 0) const;

pls remove virtual.

Also, &quot;successCallback&quot; is a useful name. Please keep it.

But &quot;errorCallback&quot; just repeats the type. Please remove this param name.

&gt; WebCore/fileapi/DirectoryEntrySync.cpp:80
&gt; +        ec = INVALID_MODIFICATION_ERR;

As discussed add a return here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292450</commentid>
    <comment_count>3</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-11 04:21:50 -0700</bug_when>
    <thetext>Committed r69485: &lt;http://trac.webkit.org/changeset/69485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70214</attachid>
            <date>2010-10-08 02:23:19 -0700</date>
            <delta_ts>2010-10-11 03:40:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47400-20101008022318.patch</filename>
            <type>text/plain</type>
            <size>34178</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGM1ZWI0ZDVjMjczZDQ3NWE1NWJjYTMyNmE4YmYyN2VlOTJmODE3Li45Y2I5MmNm
MzllY2RlZTQyYzk2NDQ5NjA3ZTM2ODYwMDJlMGFhODNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMTAtMDggIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgRGlyZWN0
b3J5RW50cnkucmVtb3ZlUmVjdXJzaXZlbHkgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQwMAorCisgICAgICAgICog
ZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9hc3luYy1vcGVyYXRpb25zLmpzOgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzOgorICAgICAgICAocmVt
b3ZlQWxsSW5EaXJlY3RvcnkpOiByZW5hbWVkIGZyb20gcmVtb3ZlUmVjdXJzaXZlbHkgYW5kIGNo
YW5nZWQKKyAgICAgICAgdGhlIGltcGxlbW50YXRpb24gdG8gdXNlIERpcmVjdG9yeUVudHJ5LnJl
bW92ZVJlY3Vyc2l2ZWx5LgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMt
d29ya2VyLWNvbW1vbi5qczoKKyAgICAgICAgKHJlbW92ZUFsbEluRGlyZWN0b3J5U3luYyk6IGRp
dHRvLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtcmVtb3ZlLmpzOiBB
ZGRlZCByZW1vdmVSZWN1cnNpdmVseSB0ZXN0LgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvb3AtdGVzdHMtaGVscGVyLmpzOgorICAgICAgICAocnVuT3BlcmF0aW9uVGVzdC5P
cGVyYXRpb25UZXN0SGVscGVyLnRoaXMucmVtb3ZlUmVjdXJzaXZlbHkpOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL3N5bmMtb3BlcmF0aW9ucy5qczoKKyAgICAg
ICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZpbGUtZnJvbS1maWxlLWVudHJ5Lmpz
OgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvcmVhZC1kaXJlY3Rvcnku
anM6CisKIDIwMTAtMTAtMDcgIEFsYmVydCBKLiBXb25nICA8YWp3b25nQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvYXN5bmMtb3BlcmF0aW9ucy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvYXN5bmMtb3BlcmF0aW9u
cy5qcwppbmRleCA1YzQ4NGZjMTVkZDkzNzE4YTNlZTEyZGMwNzczNWNmNTM0YTAwMzRlLi5kM2M5
MTVhNTlkNzM4Y2Q1YTNiMzUzZTAzNmYwZGU2ZTllNjFjMDE0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2FzeW5jLW9wZXJhdGlvbnMuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9hc3luYy1vcGVyYXRpb25zLmpz
CkBAIC0xOCw3ICsxOCw3IEBAIHZhciByZWFkZXIgPSBudWxsOwogCiBmdW5jdGlvbiBlcnJvckNh
bGxiYWNrKGVycm9yKSB7CiAgICAgZGVidWcoIkdvdCBlcnJvcjogIiArIGVycm9yLmNvZGUpOwot
ICAgIHJlbW92ZVJlY3Vyc2l2ZWx5KGZpbGVTeXN0ZW0ucm9vdCk7CisgICAgcmVtb3ZlQWxsSW5E
aXJlY3RvcnkoZmlsZVN5c3RlbS5yb290KTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIApAQCAt
MzQsNyArMzQsNyBAQCBmdW5jdGlvbiBlbnRyaWVzQ2FsbGJhY2soZW50cmllcykgewogICAgICAg
ICBwYXRocy5zb3J0KCk7CiAgICAgICAgIHNob3VsZEJlKCciJyArIHBhdGhzLmpvaW4oJywnKSAr
ICciJywgJyIvYSwvYiwvYywvZDIsL2UsL2YiJyk7CiAgICAgICAgIHNob3VsZEJlKCJkaXJzQ291
bnQiLCAiMyIpOwotICAgICAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOwor
ICAgICAgICByZW1vdmVBbGxJbkRpcmVjdG9yeShmaWxlU3lzdGVtLnJvb3QpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CkBAIC05Nyw3ICs5Nyw3IEBAIGlmICh0aGlzLnJlcXVl
c3RGaWxlU3lzdGVtKSB7CiAgICAgcmVxdWVzdEZpbGVTeXN0ZW0uYXBwbHkodGhpcywgW3RoaXMu
VEVNUE9SQVJZLCAxMDAsIGZ1bmN0aW9uKGZzKSB7CiAgICAgICAgIGRlYnVnKCJHb3QgRmlsZVN5
c3RlbToiICsgZnMubmFtZSk7CiAgICAgICAgIGZpbGVTeXN0ZW0gPSBmczsKLSAgICAgICAgcmVt
b3ZlUmVjdXJzaXZlbHkoZmlsZVN5c3RlbS5yb290LCBmdW5jdGlvbigpeyBoZWxwZXIuZG9uZSgp
OyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgcmVtb3ZlQWxsSW5EaXJlY3RvcnkoZmlsZVN5
c3RlbS5yb290LCBmdW5jdGlvbigpeyBoZWxwZXIuZG9uZSgpOyB9LCBlcnJvckNhbGxiYWNrKTsK
ICAgICB9LCBlcnJvckNhbGxiYWNrXSk7IH0pOwogICAgIGRlYnVnKCJyZXF1ZXN0ZWQgRmlsZVN5
c3RlbS4iKTsKICAgICBoZWxwZXIuam9pbihhc3luY1Rlc3QxKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKaW5kZXggOTg3
NjhjZTQ5MWQzYmQ2MjhkMDRkMDFhMjUwZWE1YTY0YzI0ZGU4My4uN2Q4ZTZmNDEzNGU4MmY5YmRk
YmE5ODFmNGM4MjMyMjdmMjM0YzljOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKQEAgLTQ2LDgyICs0Niw0MyBAQCB2
YXIgSm9pbkhlbHBlciA9IGZ1bmN0aW9uKCkKICAgICB9OwogfTsKIAotLy8gRklYTUU6IHJlcGxh
Y2UgdGhpcyBjb2RlIHdpdGggdGhlIGVxdWl2YWxlbnQgRmlsZSBBUEkgbWV0aG9kIG9uY2UgaXQg
ZnVsbHkgc3VwcG9ydHMgcmVtb3ZlUmVjdXJzaXZlbHkuCi1mdW5jdGlvbiByZW1vdmVSZWN1cnNp
dmVseShkaXJlY3RvcnksIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykgewotICAgIHZh
ciBSZW1vdmVSZWN1cnNpdmVIZWxwZXIgPSBmdW5jdGlvbihzdWNjZXNzQ2FsbGJhY2ssIGVycm9y
Q2FsbGJhY2spIHsKLSAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXAgPSB7fTsKKy8vIFJlbW92ZSBl
dmVyeXRoaW5nIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuCitmdW5jdGlvbiByZW1vdmVBbGxJbkRp
cmVjdG9yeShkaXJlY3RvcnksIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykgeworICAg
IHZhciBSZW1vdmVBbGxJbkRpcmVjdG9yeUhlbHBlciA9IGZ1bmN0aW9uKHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjaykgeworICAgICAgICB0aGlzLmVudHJpZXNDb3VudCA9IDA7CisgICAg
ICAgIHRoaXMucmVhZGVyID0gbnVsbDsKICAgICAgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2sgPSBz
dWNjZXNzQ2FsbGJhY2s7CiAgICAgICAgIHRoaXMuZXJyb3JDYWxsYmFjayA9IGVycm9yQ2FsbGJh
Y2s7CiAKLSAgICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGRpcmVjdG9y
eSkKKyAgICAgICAgdGhpcy5lbnRyeVJlbW92ZWRDYWxsYmFjayA9IGJpbmRDYWxsYmFjayh0aGlz
LCBmdW5jdGlvbihlbnRyeSkKICAgICAgICAgewotICAgICAgICAgICAgdGhpcy5yZW1vdmVSZWN1
cnNpdmVseUludGVybmFsKGRpcmVjdG9yeSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdGhpcy5o
YXNNb3JlRW50cmllcyA9IGZ1bmN0aW9uKGhhc2gpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZv
ciAoayBpbiBoYXNoKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9OwotCi0gICAgICAgIHRoaXMucmVtb3ZlRGlyZWN0b3J5
ID0gZnVuY3Rpb24oZGlyZWN0b3J5LCBwYXJlbnREaXJlY3RvcnkpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChkaXJlY3RvcnkuZnVsbFBhdGggIT0gJy8nKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gT2sgdG8gcmVtb3ZlIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgotICAgICAgICAgICAgICAgIGRp
cmVjdG9yeS5yZW1vdmUoYmluZENhbGxiYWNrKHRoaXMsIHRoaXMuZW50cnlSZW1vdmVkQ2FsbGJh
Y2ssIHBhcmVudERpcmVjdG9yeSwgZGlyZWN0b3J5KSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMu
RXJyb3JDYWxsYmFjaykpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZGVs
ZXRlIHRoaXMucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF07Ci0gICAgICAgICAgICBp
ZiAoIXRoaXMuaGFzTW9yZUVudHJpZXModGhpcy5yZW1vdmVEaXJNYXApICYmIHRoaXMuc3VjY2Vz
c0NhbGxiYWNrKQorICAgICAgICAgICAgaWYgKC0tdGhpcy5lbnRyaWVzQ291bnQgPT0gMCAmJiB0
aGlzLnN1Y2Nlc3NDYWxsYmFjaykKICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3NDYWxsYmFj
aygpOwotICAgICAgICB9OworICAgICAgICB9KTsKIAotICAgICAgICB0aGlzLmVudHJ5UmVtb3Zl
ZENhbGxiYWNrID0gZnVuY3Rpb24oZGlyZWN0b3J5LCBlbnRyeSkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KQotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
LnJlbW92ZURpck1hcFtlbnRyeS5mdWxsUGF0aF07Ci0KLSAgICAgICAgICAgIGlmIChkaXJlY3Rv
cnkpIHsKLSAgICAgICAgICAgICAgICB2YXIgZGlySW5mbyA9IHRoaXMucmVtb3ZlRGlyTWFwW2Rp
cmVjdG9yeS5mdWxsUGF0aF07Ci0gICAgICAgICAgICAgICAgaWYgKC0tZGlySW5mby5lbnRyaWVz
ID09IDAgJiYgZGlySW5mby5oYXNNb3JlID09IGZhbHNlKQotICAgICAgICAgICAgICAgICAgICB0
aGlzLnJlbW92ZURpcmVjdG9yeShkaXJlY3RvcnksIGRpckluZm8ucGFyZW50RGlyZWN0b3J5KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICB0aGlzLnJlbW92ZVJlY3Vyc2l2
ZWx5Q2FsbGJhY2sgPSBmdW5jdGlvbihlbnRyaWVzLCBkaXJlY3RvcnkpCisgICAgICAgIHRoaXMu
ZW50cmllc0NhbGxiYWNrID0gYmluZENhbGxiYWNrKHRoaXMsIGZ1bmN0aW9uKGVudHJpZXMpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxs
UGF0aF0uZW50cmllcysrOworICAgICAgICAgICAgICAgIHRoaXMuZW50cmllc0NvdW50Kys7CiAg
ICAgICAgICAgICAgICAgaWYgKGVudHJpZXNbaV0uaXNEaXJlY3RvcnkpCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXMucmVtb3ZlUmVjdXJzaXZlbHlJbnRlcm5hbChlbnRyaWVzW2ldLCBkaXJlY3Rv
cnkpOworICAgICAgICAgICAgICAgICAgICBlbnRyaWVzW2ldLnJlbW92ZVJlY3Vyc2l2ZWx5KHRo
aXMuZW50cnlSZW1vdmVkQ2FsbGJhY2ssIHRoaXMuZXJyb3JDYWxsYmFjayk7CiAgICAgICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaV07
Ci0gICAgICAgICAgICAgICAgICAgIGVudHJ5LnJlbW92ZShiaW5kQ2FsbGJhY2sodGhpcywgdGhp
cy5lbnRyeVJlbW92ZWRDYWxsYmFjaywgZGlyZWN0b3J5LCBlbnRyeSksIGJpbmRDYWxsYmFjayh0
aGlzLCB0aGlzLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAgICAgICAgICAgZW50cmllc1tp
XS5yZW1vdmUodGhpcy5lbnRyeVJlbW92ZWRDYWxsYmFjaywgdGhpcy5lcnJvckNhbGxiYWNrKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZW50cmll
cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURpck1hcFtkaXJlY3Rvcnku
ZnVsbFBhdGhdLnJlYWRlci5yZWFkRW50cmllcyhiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy5yZW1v
dmVSZWN1cnNpdmVseUNhbGxiYWNrLCBkaXJlY3RvcnkpLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhp
cy5lcnJvckNhbGxiYWNrKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IHZhciBkaXJJbmZvID0gdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQYXRoXTsKLSAg
ICAgICAgICAgICAgICBkaXJJbmZvLmhhc01vcmUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBp
ZiAoZGlySW5mby5lbnRyaWVzID09IDApCi0gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3Zl
RGlyZWN0b3J5KGRpcmVjdG9yeSwgZGlySW5mby5wYXJlbnREaXJlY3RvcnkpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9OworICAgICAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoKQorICAgICAg
ICAgICAgICAgIHRoaXMucmVhZGVyLnJlYWRFbnRyaWVzKHRoaXMuZW50cmllc0NhbGxiYWNrLCB0
aGlzLmVycm9yQ2FsbGJhY2spOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5lbnRyaWVzQ291
bnQgPT0gMCAmJiB0aGlzLnN1Y2Nlc3NDYWxsYmFjaykKKyAgICAgICAgICAgICAgICB0aGlzLnN1
Y2Nlc3NDYWxsYmFjaygpOworICAgICAgICB9KTsKIAotICAgICAgICB0aGlzLnJlbW92ZVJlY3Vy
c2l2ZWx5SW50ZXJuYWwgPSBmdW5jdGlvbihkaXJlY3RvcnksIHBhcmVudERpcmVjdG9yeSkKKyAg
ICAgICAgdGhpcy5yZW1vdmVBbGxJbkRpcmVjdG9yeSA9IGZ1bmN0aW9uKGRpcmVjdG9yeSkKICAg
ICAgICAgewotICAgICAgICAgICAgZGlyZWN0b3J5UmVhZGVyID0gZGlyZWN0b3J5LmNyZWF0ZVJl
YWRlcigpOwotICAgICAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQYXRo
XSA9IHsKLSAgICAgICAgICAgICAgICBoYXNNb3JlOiB0cnVlLAotICAgICAgICAgICAgICAgIHBh
cmVudERpcmVjdG9yeTogcGFyZW50RGlyZWN0b3J5LAotICAgICAgICAgICAgICAgIGVudHJpZXM6
IDAsCi0gICAgICAgICAgICAgICAgcmVhZGVyOiBkaXJlY3RvcnlSZWFkZXIsCi0gICAgICAgICAg
ICB9OwotICAgICAgICAgICAgZGlyZWN0b3J5UmVhZGVyLnJlYWRFbnRyaWVzKGJpbmRDYWxsYmFj
ayh0aGlzLCB0aGlzLnJlbW92ZVJlY3Vyc2l2ZWx5Q2FsbGJhY2ssIGRpcmVjdG9yeSksIGJpbmRD
YWxsYmFjayh0aGlzLCB0aGlzLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAgIHRoaXMucmVh
ZGVyID0gZGlyZWN0b3J5LmNyZWF0ZVJlYWRlcigpOworICAgICAgICAgICAgdGhpcy5yZWFkZXIu
cmVhZEVudHJpZXModGhpcy5lbnRyaWVzQ2FsbGJhY2ssIHRoaXMuZXJyb3JDYWxsYmFjayk7CiAg
ICAgICAgIH07CiAgICAgfTsKIAotICAgIHZhciBoZWxwZXIgPSBuZXcgUmVtb3ZlUmVjdXJzaXZl
SGVscGVyKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7Ci0gICAgaGVscGVyLnJlbW92
ZVJlY3Vyc2l2ZWx5KGRpcmVjdG9yeSk7CisgICAgdmFyIGhlbHBlciA9IG5ldyBSZW1vdmVBbGxJ
bkRpcmVjdG9yeUhlbHBlcihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIGhl
bHBlci5yZW1vdmVBbGxJbkRpcmVjdG9yeShkaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy13b3JrZXItY29tbW9uLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy13b3JrZXItY29tbW9uLmpz
CmluZGV4IGVhOWExOTRjYjljNTEzOTJlODA2Y2RmOTUyZWJhZThmZDllYjE5NTIuLmFhY2RkYTI3
NWFlZjU5OGM3MmZhYWM5NDBlYjZlNzZhZTkxYWVlYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtd29ya2VyLWNvbW1vbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXdvcmtlci1jb21tb24uanMKQEAg
LTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iKQogCiBmdW5jdGlvbiBzaG91
bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KIAotZnVuY3Rpb24gcmVtb3Zl
UmVjdXJzaXZlbHlTeW5jKGRpcmVjdG9yeSkgeworZnVuY3Rpb24gcmVtb3ZlQWxsSW5EaXJlY3Rv
cnlTeW5jKGRpcmVjdG9yeSkgewogICAgIGlmICghZGlyZWN0b3J5KQogICAgICAgICByZXR1cm47
CiAgICAgdmFyIHJlYWRlciA9IGRpcmVjdG9yeS5jcmVhdGVSZWFkZXIoKTsKQEAgLTM1LDEzICsz
NSwxMSBAQCBmdW5jdGlvbiByZW1vdmVSZWN1cnNpdmVseVN5bmMoZGlyZWN0b3J5KSB7CiAgICAg
ICAgIHZhciBlbnRyaWVzID0gcmVhZGVyLnJlYWRFbnRyaWVzKCk7CiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgaWYgKGVudHJp
ZXNbaV0uaXNEaXJlY3RvcnkpCi0gICAgICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHlTeW5j
KGVudHJpZXNbaV0pOworICAgICAgICAgICAgICAgIGVudHJpZXNbaV0ucmVtb3ZlUmVjdXJzaXZl
bHkoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBlbnRyaWVzW2ldLnJlbW92
ZSgpOwogICAgICAgICB9CiAgICAgfSB3aGlsZSAoZW50cmllcy5sZW5ndGgpOwotICAgIGlmIChk
aXJlY3RvcnkuZnVsbFBhdGggIT0gJy8nKQotICAgICAgICBkaXJlY3RvcnkucmVtb3ZlKCk7CiB9
CiAKIGlmICh0aGlzLmltcG9ydFNjcmlwdHMgJiYgIXRoaXMucmVxdWVzdEZpbGVTeXN0ZW0pIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtcmVt
b3ZlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1yZW1vdmUu
anMKaW5kZXggMTE5YWM4MjAzMzM4MjMwNGJmOTc3YzdiNzBkOTAzOTllYzU3ZjQyYS4uNDQ4ZjI2
NDBjODdiZmFjNzZjMDNiOWNmOGJkYWYwZWQzZDMwMDRkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1yZW1vdmUuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1yZW1vdmUuanMKQEAgLTMwLDUgKzMwLDMx
IEBAIHZhciB0ZXN0Q2FzZXMgPSBbCiAgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2MnLH0KICAg
ICAgICAgXSwKICAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ1JlbW92ZVJlY3Vyc2l2ZVdp
dGhvdXRDaGlsZHJlbicsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1
bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICBdLAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5yZW1vdmVSZWN1cnNp
dmVseSgnL2EnKTsgfQorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAg
ICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgbm9uZXhpc3RlbnQ6dHJ1ZX0sCisgICAgICAgIF0sCisg
ICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdSZW1vdmVSZWN1cnNpdmVXaXRoQ2hpbGRyZW4n
LAorICAgICAgICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBp
c0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYicsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9jJyx9CisgICAgICAgIF0sCisg
ICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLnJl
bW92ZVJlY3Vyc2l2ZWx5KCcvYScpOyB9CisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRp
b246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBub25leGlzdGVudDp0cnVlfSwKKyAg
ICAgICAgXSwKKyAgICB9LAogXTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3Jlc291cmNlcy9vcC10ZXN0cy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcwppbmRleCBiZmIwNzI5N2Q2ZGFm
ZDBiMWVlYTNjOTQ0NGIxOTIyNjU3ZDcyYjM4Li41MDUwMWVlNGJiNDYwZjZhMjczYmFiZTkzMTcz
Y2U1ZTZhOGJiZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVz
b3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vcmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcwpAQCAtMjYzLDYgKzI2MywxMyBAQCBmdW5j
dGlvbiBydW5PcGVyYXRpb25UZXN0KGZpbGVTeXN0ZW0sIHRlc3RDYXNlLCBzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spCiAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50W2VudHJ5XS5y
ZW1vdmUoYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdFN1Y2Nlc3NDYWxsYmFjayksIGJpbmRD
YWxsYmFjayh0aGlzLCB0aGlzLnRlc3RFcnJvckNhbGxiYWNrKSk7CiAgICAgICAgIH07CiAKKyAg
ICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGVudHJ5LCBleHBlY3RlZEVy
cm9yQ29kZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29kZSA9
IGV4cGVjdGVkRXJyb3JDb2RlOworICAgICAgICAgICAgdGhpcy5zdGFnZSA9ICciJyArIGVudHJ5
ICsgJyIucmVtb3ZlUmVjdXJzaXZlbHkoKSc7CisgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50
W2VudHJ5XS5yZW1vdmVSZWN1cnNpdmVseShiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy50ZXN0U3Vj
Y2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2FsbGJhY2sp
KTsKKyAgICAgICAgfTsKKwogICAgICAgICB0aGlzLnJlYWREaXJlY3RvcnkgPSBmdW5jdGlvbihl
bnRyeSwgZXhwZWN0ZWRFcnJvckNvZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgPSBleHBlY3RlZEVycm9yQ29kZTsKQEAgLTI5MSw3ICsyOTgsNyBAQCBm
dW5jdGlvbiBydW5PcGVyYXRpb25UZXN0KGZpbGVTeXN0ZW0sIHRlc3RDYXNlLCBzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2spCiAgICAgICAgIHsKICAgICAgICAgICAgIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgPSAnJzsKICAgICAgICAgICAgIHRoaXMuc3RhZ2UgPSAncmVzZXR0aW5nIGZp
bGVzeXN0ZW0nOwotICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHkodGhpcy5maWxlU3lzdGVt
LnJvb3QsIGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnNldFVwKSwgYmluZENhbGxiYWNrKHRoaXMs
IHRoaXMudGVzdEVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAgIHJlbW92ZUFsbEluRGlyZWN0
b3J5KHRoaXMuZmlsZVN5c3RlbS5yb290LCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy5zZXRVcCks
IGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnRlc3RFcnJvckNhbGxiYWNrKSk7CiAgICAgICAgIH07
CiAKICAgICAgICAgdGhpcy5zZXRVcCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvc3luYy1vcGVyYXRpb25zLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9zeW5jLW9wZXJhdGlvbnMuanMKaW5kZXgg
ZTU5NjNkNmY3MmU0MjYyYzRhZGU0NTBjOWQzZjU0MmQwOWMwNDY3Zi4uNTdhZTY0NjE5ODUxOTA4
YzBkZThkMWUxNzIyMjIxMjdjZTZlYWU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9zeW5jLW9wZXJhdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9zeW5jLW9wZXJhdGlvbnMuanMKQEAgLTYsNyArNiw3
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIGRlc2NyaXB0aW9uKCJUZXN0IG1ha2luZyBt
dWx0aXBsZSBzeW5jaHJvbm91cyBGaWxlU3lzdGVtIG9wZXJhdGlvbnMuIik7CiAKIHZhciBmaWxl
U3lzdGVtID0gcmVxdWVzdEZpbGVTeXN0ZW1TeW5jKHRoaXMuVEVNUE9SQVJZLCAxMDApOwotcmVt
b3ZlUmVjdXJzaXZlbHlTeW5jKGZpbGVTeXN0ZW0ucm9vdCk7CityZW1vdmVBbGxJbkRpcmVjdG9y
eVN5bmMoZmlsZVN5c3RlbS5yb290KTsKIAogLy8gU3RhZ2UgMSAocHJlcGFyZSkKIHZhciBhID0g
ZmlsZVN5c3RlbS5yb290LmdldEZpbGUoJ2EnLCB7Y3JlYXRlOnRydWV9KTsKQEAgLTM4LDcgKzM4
LDcgQEAgZG8gewogcGF0aHMuc29ydCgpOwogc2hvdWxkQmUoJyInICsgcGF0aHMuam9pbignLCcp
ICsgJyInLCAnIi9hLC9iLC9jLC9kMiwvZSwvZiInKTsKIHNob3VsZEJlKCJkaXJzQ291bnQiLCAi
MyIpOwotcmVtb3ZlUmVjdXJzaXZlbHlTeW5jKGZpbGVTeXN0ZW0ucm9vdCk7CityZW1vdmVBbGxJ
bkRpcmVjdG9yeVN5bmMoZmlsZVN5c3RlbS5yb290KTsKIGZpbmlzaEpTVGVzdCgpOwogCiB2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZS1mcm9tLWZpbGUtZW50cnkuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZpbGUtZnJvbS1maWxlLWVudHJ5Lmpz
CmluZGV4IDc1NTI3NzhjMjY5ZDQwYTYzNjg1YzEwNTZiZTllNWYyOGIxNGU4YTkuLmQ3Zjg2ZTY3
YjA2MjAwOGNmM2NjMzAwYTE2MWU3ZmQ3ZDllYTA5NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZS1mcm9tLWZpbGUtZW50cnkuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9maWxlLWZyb20tZmls
ZS1lbnRyeS5qcwpAQCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0RmlsZSgpIHsK
IAogZnVuY3Rpb24gZmlsZVN5c3RlbUNhbGxiYWNrKGZzKSB7CiAgICAgZmlsZVN5c3RlbSA9IGZz
OwotICAgIHJlbW92ZVJlY3Vyc2l2ZWx5KGZpbGVTeXN0ZW0ucm9vdCwgY3JlYXRlVGVzdEZpbGUs
IGVycm9yQ2FsbGJhY2spOworICAgIHJlbW92ZUFsbEluRGlyZWN0b3J5KGZpbGVTeXN0ZW0ucm9v
dCwgY3JlYXRlVGVzdEZpbGUsIGVycm9yQ2FsbGJhY2spOwogfQogCiBpZiAod2luZG93LnJlcXVl
c3RGaWxlU3lzdGVtKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
c2NyaXB0LXRlc3RzL3JlYWQtZGlyZWN0b3J5LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3NjcmlwdC10ZXN0cy9yZWFkLWRpcmVjdG9yeS5qcwppbmRleCAzYjQ4NTdmNGI1MTA0MTJi
YWM4ZjhiN2RlZTkyMzhmZWRlM2Y0Zjg1Li4yZmZiMjY0NjY0MzQ4MTZiOTA0MjE0ZDc1NjgzOTZh
OGUxYmYzYTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0
LXRlc3RzL3JlYWQtZGlyZWN0b3J5LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zY3JpcHQtdGVzdHMvcmVhZC1kaXJlY3RvcnkuanMKQEAgLTE5LDcgKzE5LDcgQEAgdmFyIHRl
c3RFbnRyaWVzQ291bnQgPSAwOwogCiBmdW5jdGlvbiBlbmRUZXN0KCkKIHsKLSAgICByZW1vdmVS
ZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIHJlbW92ZUFsbEluRGlyZWN0b3J5KGZp
bGVTeXN0ZW0ucm9vdCk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKQEAgLTg1LDcgKzg1LDcg
QEAgZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKGZzKQogewogICAgIGZpbGVTeXN0ZW0gPSBmczsK
ICAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQgRmlsZVN5c3RlbToi
ICsgZmlsZVN5c3RlbS5uYW1lKTsKLSAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJv
b3QsIHByZXBhcmVGb3JUZXN0LCBlcnJvckNhbGxiYWNrKTsKKyAgICByZW1vdmVBbGxJbkRpcmVj
dG9yeShmaWxlU3lzdGVtLnJvb3QsIHByZXBhcmVGb3JUZXN0LCBlcnJvckNhbGxiYWNrKTsKIH0K
IAogaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZTNjZmUyMmNiZmNmMTFmMTFiNTBh
MDIzMDBjNzg2ZDdlYmViNGJmLi5lYjViNTQ1MzgwYWQ1NDkyMDIxZGIwNTQ5NWQxYjNhMjgyNTk1
NzM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDEwLTEwLTA4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IERpcmVjdG9yeUVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5IGZvciBGaWxlU3lz
dGVtIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDc0MDAKKworICAgICAgICBBbHNvIGRpc2FsbG93cyByZW1vdmUvcmVtb3ZlUmVjdXJzaXZlbHkg
b24gdGhlIHJvb3QgZGlyZWN0b3J5LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZmlsZXN5c3RlbS9v
cC1yZW1vdmUuaHRtbAorCisgICAgICAgICogZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtQmFzZTo6cmVtb3ZlUmVjdXJzaXZlbHkp
OiBBZGRlZC4KKyAgICAgICAgKiBmaWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmg6CisgICAgICAg
ICogZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3Rv
cnlFbnRyeTo6cmVtb3ZlUmVjdXJzaXZlbHkpOiBBZGRlZC4KKyAgICAgICAgKiBmaWxlYXBpL0Rp
cmVjdG9yeUVudHJ5Lmg6CisgICAgICAgICogZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5pZGw6Cisg
ICAgICAgICogZmlsZWFwaS9EaXJlY3RvcnlFbnRyeVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGlyZWN0b3J5RW50cnlTeW5jOjpyZW1vdmVSZWN1cnNpdmVseSk6IEFkZGVkLgorICAgICAg
ICAqIGZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmg6CisgICAgICAgICogZmlsZWFwaS9EaXJl
Y3RvcnlFbnRyeVN5bmMuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5o
OgorCiAyMDEwLTEwLTA3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0RP
TUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5j
cHAKaW5kZXggNjNjNmU1YjFjODllNTE1M2M5ODAzZGE2NjVmNTgwNjY4NmFiNWIzMy4uNGExYmM1
ZDViMjA1ZjJmMjQ5MzczYzE2ZTlkMTE2NTBjNGI3MGRmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9m
aWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRE9NRmls
ZVN5c3RlbUJhc2UuY3BwCkBAIC0xMjMsMTEgKzEyMywyNSBAQCBib29sIERPTUZpbGVTeXN0ZW1C
YXNlOjpjb3B5KGNvbnN0IEVudHJ5QmFzZSogc291cmNlLCBFbnRyeUJhc2UqIHBhcmVudCwgY29u
c3QgUwogYm9vbCBET01GaWxlU3lzdGVtQmFzZTo6cmVtb3ZlKGNvbnN0IEVudHJ5QmFzZSogZW50
cnksIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKIHsKICAgICBBU1NFUlQoZW50cnkpOworICAg
IC8vIFdlIGRvbid0IGFsbG93IGNhbGxpbmcgcmVtb3ZlKCkgb24gdGhlIHJvb3QgZGlyZWN0b3J5
LgorICAgIGlmIChlbnRyeS0+ZnVsbFBhdGgoKSA9PSBTdHJpbmcoRE9NRmlsZVBhdGg6OnJvb3Qp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgU3RyaW5nIHBsYXRmb3JtUGF0aCA9IG1fYXN5
bmNGaWxlU3lzdGVtLT52aXJ0dWFsVG9QbGF0Zm9ybVBhdGgoZW50cnktPmZ1bGxQYXRoKCkpOwog
ICAgIG1fYXN5bmNGaWxlU3lzdGVtLT5yZW1vdmUocGxhdGZvcm1QYXRoLCBWb2lkQ2FsbGJhY2tz
OjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK2Jvb2wgRE9NRmlsZVN5c3RlbUJhc2U6OnJlbW92ZVJlY3Vyc2l2ZWx5KGNvbnN0
IEVudHJ5QmFzZSogZW50cnksIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJh
Y2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBBU1NF
UlQoZW50cnkgJiYgZW50cnktPmlzRGlyZWN0b3J5KCkpOworICAgIC8vIFdlIGRvbid0IGFsbG93
IGNhbGxpbmcgcmVtb3ZlKCkgb24gdGhlIHJvb3QgZGlyZWN0b3J5LgorICAgIGlmIChlbnRyeS0+
ZnVsbFBhdGgoKSA9PSBTdHJpbmcoRE9NRmlsZVBhdGg6OnJvb3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgU3RyaW5nIHBsYXRmb3JtUGF0aCA9IG1fYXN5bmNGaWxlU3lzdGVtLT52aXJ0
dWFsVG9QbGF0Zm9ybVBhdGgoZW50cnktPmZ1bGxQYXRoKCkpOworICAgIG1fYXN5bmNGaWxlU3lz
dGVtLT5yZW1vdmVSZWN1cnNpdmVseShwbGF0Zm9ybVBhdGgsIFZvaWRDYWxsYmFja3M6OmNyZWF0
ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogYm9vbCBET01GaWxlU3lzdGVtQmFzZTo6Z2V0UGFyZW50KGNvbnN0IEVudHJ5QmFzZSogZW50
cnksIFBhc3NSZWZQdHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRy
PEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKGVudHJ5KTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5oIGIvV2ViQ29yZS9m
aWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmgKaW5kZXggZWU4ZjhlNTQ5YTExM2Q2NjM3NmQ4ODMz
OTVkMDQxZWEyZDFjNjQ3Ni4uMzZlMzViNDE2MDQzZWE1YjU3OWJjNTVhNjlkYjJmOTg5NmIyZjk4
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmgKKysrIGIv
V2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmgKQEAgLTY4LDYgKzY4LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgbW92ZShjb25zdCBFbnRyeUJhc2UqIHNvdXJjZSwgRW50cnlCYXNlKiBw
YXJlbnQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFz
c1JlZlB0cjxFcnJvckNhbGxiYWNrPik7CiAgICAgYm9vbCBjb3B5KGNvbnN0IEVudHJ5QmFzZSog
c291cmNlLCBFbnRyeUJhc2UqIHBhcmVudCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRy
PEVudHJ5Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKICAgICBib29sIHJl
bW92ZShjb25zdCBFbnRyeUJhc2UqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8RXJyb3JDYWxsYmFjaz4pOworICAgIGJvb2wgcmVtb3ZlUmVjdXJzaXZlbHkoY29uc3QgRW50
cnlCYXNlKiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJh
Y2s+KTsKICAgICBib29sIGdldFBhcmVudChjb25zdCBFbnRyeUJhc2UqLCBQYXNzUmVmUHRyPEVu
dHJ5Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKICAgICBib29sIGdldEZp
bGUoY29uc3QgRW50cnlCYXNlKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUHRyPEZsYWdz
PiwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPik7
CiAgICAgYm9vbCBnZXREaXJlY3RvcnkoY29uc3QgRW50cnlCYXNlKiwgY29uc3QgU3RyaW5nJiBw
YXRoLCBQYXNzUmVmUHRyPEZsYWdzPiwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxFcnJvckNhbGxiYWNrPik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0
b3J5RW50cnkuY3BwIGIvV2ViQ29yZS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5LmNwcAppbmRleCBl
YmViOTVhNzVhMWY1ODBkOTU4ZjU2ODY4NjM4Njc3NzZkZTZhYWRjLi43NjVmY2Q1Zjk2OTVhNGIx
ZmNhMzA2MTRiMjM2MTRhNTU3M2FkNGI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRGly
ZWN0b3J5RW50cnkuY3BwCisrKyBiL1dlYkNvcmUvZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFbnRyeUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
RXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIlZvaWRD
YWxsYmFjay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY0LDYgKzY1LDEzIEBAIHZv
aWQgRGlyZWN0b3J5RW50cnk6OmdldERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NS
ZWZQdHI8RmxhZ3M+IGZsYWdzLCBQCiAgICAgICAgIGZpbGVzeXN0ZW0oKS0+c2NoZWR1bGVDYWxs
YmFjayhlcnJvckNhbGxiYWNrLnJlbGVhc2UoKSwgRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJRF9N
T0RJRklDQVRJT05fRVJSKSk7CiB9CiAKK3ZvaWQgRGlyZWN0b3J5RW50cnk6OnJlbW92ZVJlY3Vy
c2l2ZWx5KFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQ
dHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFja1JlZikgY29uc3QKK3sKKyAgICBSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrUmVmKTsKKyAgICBpZiAo
IW1fZmlsZVN5c3RlbS0+cmVtb3ZlUmVjdXJzaXZlbHkodGhpcywgc3VjY2Vzc0NhbGxiYWNrLCBl
cnJvckNhbGxiYWNrKSkKKyAgICAgICAgZmlsZXN5c3RlbSgpLT5zY2hlZHVsZUNhbGxiYWNrKGVy
cm9yQ2FsbGJhY2sucmVsZWFzZSgpLCBGaWxlRXJyb3I6OmNyZWF0ZShJTlZBTElEX01PRElGSUNB
VElPTl9FUlIpKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5LmggYi9XZWJDb3JlL2ZpbGVh
cGkvRGlyZWN0b3J5RW50cnkuaAppbmRleCA2OWE1MmFiZTJjM2Y2NzIzNTNhMTY2NmQ0YzUyZjEz
NmJiMWE1YWNmLi5jZWQxNGY1YzE2MmM0MDhlMTlkZTBlNTVmMzVhNjI2MGI4NDk5ODUxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnkuaAorKysgYi9XZWJDb3JlL2Zp
bGVhcGkvRGlyZWN0b3J5RW50cnkuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBET01GaWxlU3lz
dGVtQmFzZTsKIGNsYXNzIERpcmVjdG9yeVJlYWRlcjsKIGNsYXNzIEVudHJ5Q2FsbGJhY2s7CiBj
bGFzcyBFcnJvckNhbGxiYWNrOworY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBEaXJlY3Rv
cnlFbnRyeSA6IHB1YmxpYyBFbnRyeSB7CiBwdWJsaWM6CkBAIC01Nyw2ICs1OCw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPERpcmVjdG9yeVJlYWRlcj4gY3JlYXRlUmVhZGVyKCk7CiAgICAg
dm9pZCBnZXRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxGbGFncz4gPSAwLCBQ
YXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+ID0gMCwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiA9
IDApOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc1JlZlB0
cjxGbGFncz4gPSAwLCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+ID0gMCwgUGFzc1JlZlB0cjxF
cnJvckNhbGxiYWNrPiA9IDApOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZWN1cnNpdmVseShQ
YXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gMCwgUGFzc1JlZlB0cjxF
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
RGlyZWN0b3J5RW50cnkoRE9NRmlsZVN5c3RlbUJhc2UqLCBjb25zdCBTdHJpbmcmIGZ1bGxQYXRo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5pZGwgYi9XZWJD
b3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnkuaWRsCmluZGV4IDI4ODBlZDA1ZmY4Nzg1Yjc4NzFj
MjJmNDVkY2I3NjJiMWJjNmNlMDcuLjBlMzgxNTMzYWQxMWI2MjhmYzFjNmEyNWVlODY5MzNkZTNk
MzM3MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9EaXJlY3RvcnlFbnRyeS5pZGwKKysr
IGIvV2ViQ29yZS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5LmlkbApAQCAtMzgsNSArMzgsNiBAQCBt
b2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIERpcmVjdG9yeVJlYWRlciBjcmVhdGVSZWFkZXIoKTsK
ICAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRGaWxlKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcGF0aCwgaW4gW09wdGlvbmFsXSBGbGFncyBmbGFncywg
aW4gW09wdGlvbmFsLCBDYWxsYmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGlu
IFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CiAgICAg
ICAgIFtDdXN0b21dIHZvaWQgZ2V0RGlyZWN0b3J5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcGF0aCwgaW4gW09wdGlvbmFsXSBGbGFncyBmbGFncywg
aW4gW09wdGlvbmFsLCBDYWxsYmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGlu
IFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAg
ICAgIHZvaWQgcmVtb3ZlUmVjdXJzaXZlbHkoaW4gW09wdGlvbmFsLCBDYWxsYmFja10gVm9pZENh
bGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxl
YXBpL0RpcmVjdG9yeUVudHJ5U3luYy5jcHAgYi9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50
cnlTeW5jLmNwcAppbmRleCBiMjI4ZGI1NGU3MjU0YzYzY2E0ODhmZTExZjliNTBjODhhNTRiODZi
Li40NWIyODIyY2E5ZThkZGZlOTMzMDg0MDU2Yjc2M2IxYWJjMGE5ZWY5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmNwcAorKysgYi9XZWJDb3JlL2ZpbGVh
cGkvRGlyZWN0b3J5RW50cnlTeW5jLmNwcApAQCAtNzIsNiArNzIsMTUgQEAgUGFzc1JlZlB0cjxE
aXJlY3RvcnlFbnRyeVN5bmM+IERpcmVjdG9yeUVudHJ5U3luYzo6Z2V0RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGEKICAgICByZXR1cm4gc3RhdGljX3BvaW50ZXJfY2FzdDxEaXJlY3RvcnlFbnRy
eVN5bmM+KGhlbHBlci5nZXRSZXN1bHQoZWMpKTsKIH0KIAordm9pZCBEaXJlY3RvcnlFbnRyeVN5
bmM6OnJlbW92ZVJlY3Vyc2l2ZWx5KEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVjID0gMDsK
KyAgICBWb2lkU3luY0NhbGxiYWNrSGVscGVyIGhlbHBlcihtX2ZpbGVTeXN0ZW0tPmFzeW5jRmls
ZVN5c3RlbSgpKTsKKyAgICBpZiAoIW1fZmlsZVN5c3RlbS0+cmVtb3ZlUmVjdXJzaXZlbHkodGhp
cywgaGVscGVyLnN1Y2Nlc3NDYWxsYmFjaygpLCBoZWxwZXIuZXJyb3JDYWxsYmFjaygpKSkKKyAg
ICAgICAgZWMgPSBJTlZBTElEX01PRElGSUNBVElPTl9FUlI7CisgICAgaGVscGVyLmdldFJlc3Vs
dChlYyk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZmlsZWFwaS9EaXJlY3RvcnlFbnRyeVN5bmMuaCBiL1dlYkNvcmUvZmlsZWFw
aS9EaXJlY3RvcnlFbnRyeVN5bmMuaAppbmRleCAxZDdmYjlmMTAxYTM0ZGJkOTI1YTM2NjdjYjEw
MTFmOTM4NWQxY2YyLi45YTNlMGRmY2RmZGMzNzQ1ZjIzYTFmMjI3YmVlZDU3ZjkzNjg1M2NhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmgKKysrIGIvV2Vi
Q29yZS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5U3luYy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPERpcmVjdG9yeVJlYWRlclN5bmM+IGNyZWF0ZVJlYWRlcihFeGNl
cHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxGaWxlRW50cnlTeW5jPiBnZXRGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxGbGFncz4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPERpcmVjdG9yeUVudHJ5U3luYz4gZ2V0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYg
cGF0aCwgUGFzc1JlZlB0cjxGbGFncz4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92
ZVJlY3Vyc2l2ZWx5KEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgRW50cnlTeW5jOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5
U3luYy5pZGwgYi9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmlkbAppbmRleCBj
Yzc5NmJmYzczZDNlOGVhOTdjMzI3NWQzODYwMTA3NDMwYjJiNGRiLi4yNjhiMmE5MzBlOWMwMThj
YWY0Mjk4ODZlNWYwMmYxNTI5ZDg1MTYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRGly
ZWN0b3J5RW50cnlTeW5jLmlkbAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlT
eW5jLmlkbApAQCAtMzgsNSArMzgsNiBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIERpcmVj
dG9yeVJlYWRlclN5bmMgY3JlYXRlUmVhZGVyKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAg
ICAgICAgW0N1c3RvbV0gRmlsZUVudHJ5U3luYyBnZXRGaWxlKGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcGF0aCwgaW4gRmxhZ3MgZmxhZ3MpIHJhaXNl
cyAoRmlsZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0b21dIERpcmVjdG9yeUVudHJ5U3luYyBn
ZXREaXJlY3RvcnkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBwYXRoLCBpbiBGbGFncyBmbGFncykgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKKyAgICAg
ICAgdm9pZCByZW1vdmVSZWN1cnNpdmVseSgpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CiAgICAg
fTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oCmluZGV4IDI3YzYyNDBlYjNlMjk4MDNl
NDdlZjgxOWQ1ZTRlYzMzMWU5MDI5YmQuLjMxMDRlYmNlODljYzQzMjhkM2QzZDNlYjU0ZGViYWI5
ZDA1ZTA3YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaApAQCAtODAsMTAgKzgwLDE2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNyY1BhdGgs
IGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzPikgPSAwOwogCiAgICAgLy8gRGVsZXRlcyBhIGZpbGUgb3IgZGlyZWN0b3J5IGF0IGEgZ2l2
ZW4gcGF0aC4KKyAgICAvLyBJdCBpcyBhbiBlcnJvciB0byB0cnkgdG8gcmVtb3ZlIGEgZGlyZWN0
b3J5IHRoYXQgaXMgbm90IGVtcHR5LgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6
ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1
Y2Nlc3NmdWxseS4KICAgICAvLyBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBp
cyBjYWxsZWQgb3RoZXJ3aXNlLgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5n
JiBwYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pID0gMDsKIAorICAg
IC8vIFJlY3Vyc2l2ZWx5IGRlbGV0ZXMgYSBkaXJlY3RvcnkgYXQgYSBnaXZlbiBwYXRoLgorICAg
IC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNhbGxlZCB3aGVu
IHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAvLyBBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3M6OmRpZEZhaWwoKSBpcyBjYWxsZWQgb3RoZXJ3aXNlLgorICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVSZWN1cnNpdmVseShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPikgPSAwOworCiAgICAgLy8gUmV0cmlldmVzIHRo
ZSBtZXRhZGF0YSBpbmZvcm1hdGlvbiBvZiB0aGUgZmlsZSBvciBkaXJlY3RvcnkgYXQgYSBnaXZl
biBwYXRoLgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkUmVhZE1ldGFkYXRh
KCkgaXMgY2FsbGVkIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5
LgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkRmFpbCgpIGlzIGNhbGxlZCBv
dGhlcndpc2UuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZmE3YzBiMDdmODA5MjgyMjU5ZjhjY2I2MjA1NzYw
ZjJhNTE1ZDAzLi40NjEzMTk1MjM3OTAxMDkxNGQ0NDRkMzIzODhlYjk5NzdiMDg0ZTUzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMC0wOCAgS2ludWtvIFlhc3VkYSAgPGtp
bnVrb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN1cHBvcnQgRGlyZWN0b3J5RW50cnkucmVtb3ZlUmVjdXJzaXZlbHkgZm9yIEZp
bGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NzQwMAorCisgICAgICAgICogc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpyZW1vdmVSZWN1cnNp
dmVseSk6IEFkZGVkLgorICAgICAgICAqIHNyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oOgor
ICAgICAgICAqIHNyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6cmVtb3ZlUmVjdXJzaXZl
bHkpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0u
aDoKKyAgICAgICAgKiBzcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2U6OnBvc3RSZW1v
dmVSZWN1cnNpdmVseVRvTWFpblRocmVhZCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXb3Jr
ZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlOjpyZW1vdmVSZWN1cnNpdmVseU9uTWFpblRocmVh
ZCk6IEFkZGVkLgorICAgICAgICAqIHNyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdl
Lmg6CisKIDIwMTAtMTAtMDcgIERhdmUgTW9vcmUgIDxkYXZlbW9vcmVAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcAppbmRleCA1OWU2NDg0NjVmZjQ5NjRkYWMw
ZGM5OGI5YjViODdhYzFkZmNhOWUzLi41OTc1ZTcyNDNkMzQ1ODIyZWZhYTE4NzlkNGMyOGZmNGFk
NTM2NGE3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNo
cm9taXVtLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9t
aXVtLmNwcApAQCAtNzYsNiArNzYsMTEgQEAgdm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6
cmVtb3ZlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXMKICAgICBt
X3dlYkZpbGVTeXN0ZW0tPnJlbW92ZShwYXRoLCBuZXcgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MpKTsKIH0KIAordm9pZCBBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1
bTo6cmVtb3ZlUmVjdXJzaXZlbHkoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAgIG1fd2ViRmlsZVN5c3RlbS0+
cmVtb3ZlUmVjdXJzaXZlbHkocGF0aCwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSk7Cit9CisKIHZvaWQgQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OnJl
YWRNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgbV93ZWJGaWxlU3lzdGVtLT5yZWFkTWV0YWRh
dGEocGF0aCwgbmV3IFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tz
KSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9t
aXVtLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKaW5k
ZXggOTFiMWQ5YzIxZjdmY2M1NjMxMmQyNGFlOWIzYWZiNGVhNGE5OGZjMy4uNjIwNTYwOWI5ODZj
YTA0OGZkOTkwZGY5NGM0NTU3YzJjMjBmOWRkYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG1vdmUoY29uc3QgU3RyaW5nJiBzb3VyY2VQYXRoLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uUGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBTdHJpbmcmIHNvdXJjZVBhdGgsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25QYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNr
cz4pOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzT3du
UHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVS
ZWN1cnNpdmVseShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB2b2lkIHJlYWRNZXRhZGF0YShjb25zdCBTdHJpbmcm
IHBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCmluZGV4IDZjMmQ0YWU3MzRi
MTM4ODMxNTVlODc1NjFmYWMzZTdmOTRkMjZkY2QuLjFlNzA2MTllYTRkODI5YWRiNGM2MTNmMDU1
ZTM4YjcyN2MzYjNhZGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyQXN5
bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2Vy
QXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCkBAIC05OSw2ICs5OSwxMSBAQCB2b2lkIFdvcmtl
ckFzeW5jRmlsZVN5c3RlbUNocm9taXVtOjpyZW1vdmUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNz
T3duUHRyPEFzeW5jRgogICAgIGNyZWF0ZVdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2Uo
Y2FsbGJhY2tzKS0+cG9zdFJlbW92ZVRvTWFpblRocmVhZChtX3dlYkZpbGVTeXN0ZW0sIHBhdGgs
IG1fbW9kZUZvckN1cnJlbnRPcGVyYXRpb24pOwogfQogCit2b2lkIFdvcmtlckFzeW5jRmlsZVN5
c3RlbUNocm9taXVtOjpyZW1vdmVSZWN1cnNpdmVseShjb25zdCBTdHJpbmcmIHBhdGgsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgY3JlYXRl
V29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZShjYWxsYmFja3MpLT5wb3N0UmVtb3ZlUmVj
dXJzaXZlbHlUb01haW5UaHJlYWQobV93ZWJGaWxlU3lzdGVtLCBwYXRoLCBtX21vZGVGb3JDdXJy
ZW50T3BlcmF0aW9uKTsKK30KKwogdm9pZCBXb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bTo6
cmVhZE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBjcmVhdGVXb3JrZXJGaWxlU3lzdGVtQ2Fs
bGJhY2tzQnJpZGdlKGNhbGxiYWNrcyktPnBvc3RSZWFkTWV0YWRhdGFUb01haW5UaHJlYWQobV93
ZWJGaWxlU3lzdGVtLCBwYXRoLCBtX21vZGVGb3JDdXJyZW50T3BlcmF0aW9uKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uaAppbmRl
eCA1ZmM3NjQ2YWQ5YjYxNWVhMWZjM2NhNDhiNzI4MzViYjQ4NGM3ZjE3Li4wYjRiNzA4NTQyYTkw
NDM1ZTllOWViMGU4MjdkNjM5ZTVjMDdhYjRiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dvcmtlckFzeW5jRmlsZVN5c3RlbUNocm9taXVtLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9Xb3JrZXJBc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5oCkBAIC02NSw2ICs2NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW92ZShjb25zdCBTdHJpbmcmIHNvdXJjZVBhdGgsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4pOwogICAgIHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IFN0cmluZyYgc291cmNlUGF0
aCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblBhdGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmIHBh
dGgsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgdmlydHVhbCB2
b2lkIHJlbW92ZVJlY3Vyc2l2ZWx5KGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZE1ldGFkYXRhKGNv
bnN0IFN0cmluZyYgcGF0aCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhj
bHVzaXZlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4pOwogICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2
ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZS5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UuY3BwCmlu
ZGV4IDkwMWYxMzc3MWUyMmM3MmEyYmZiNDZmMzI0ZWI3YzJmMzFjNGE4MTIuLjZjMzEyMjE3YjY1
N2YzZDU4NjU5NjY5NmZkNGM5MmY3OWJiMDc4ZGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmNwcApAQCAtMTcxLDYg
KzE3MSwxMiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2U6OnBvc3RSZW1v
dmVUb01haW5UaHJlYWQoV2ViRmlsZVN5c3RlbSogZmlsZQogICAgIGRpc3BhdGNoVGFza1RvTWFp
blRocmVhZChjcmVhdGVDYWxsYmFja1Rhc2soJnJlbW92ZU9uTWFpblRocmVhZCwgZmlsZVN5c3Rl
bSwgcGF0aCwgdGhpcywgbW9kZSkpOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFj
a3NCcmlkZ2U6OnBvc3RSZW1vdmVSZWN1cnNpdmVseVRvTWFpblRocmVhZChXZWJGaWxlU3lzdGVt
KiBmaWxlU3lzdGVtLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sK
KyAgICBBU1NFUlQoZmlsZVN5c3RlbSk7CisgICAgZGlzcGF0Y2hUYXNrVG9NYWluVGhyZWFkKGNy
ZWF0ZUNhbGxiYWNrVGFzaygmcmVtb3ZlUmVjdXJzaXZlbHlPbk1haW5UaHJlYWQsIGZpbGVTeXN0
ZW0sIHBhdGgsIHRoaXMsIG1vZGUpKTsKK30KKwogdm9pZCBXb3JrZXJGaWxlU3lzdGVtQ2FsbGJh
Y2tzQnJpZGdlOjpwb3N0UmVhZE1ldGFkYXRhVG9NYWluVGhyZWFkKFdlYkZpbGVTeXN0ZW0qIGZp
bGVTeXN0ZW0sIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBtb2RlKQogewogICAg
IEFTU0VSVChmaWxlU3lzdGVtKTsKQEAgLTIzMCw2ICsyMzYsMTEgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtQ2FsbGJhY2tzQnJpZGdlOjpyZW1vdmVPbk1haW5UaHJlYWQoV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW8KICAgICBmaWxlU3lzdGVtLT5yZW1vdmUocGF0aCwgTWFpblRocmVhZEZpbGVTeXN0
ZW1DYWxsYmFja3M6OmNyZWF0ZUxlYWtlZFB0cihicmlkZ2UsIG1vZGUpKTsKIH0KIAordm9pZCBX
b3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlOjpyZW1vdmVSZWN1cnNpdmVseU9uTWFpblRo
cmVhZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSogZmls
ZVN5c3RlbSwgY29uc3QgU3RyaW5nJiBwYXRoLCBXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJp
ZGdlKiBicmlkZ2UsIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBmaWxlU3lzdGVtLT5yZW1v
dmVSZWN1cnNpdmVseShwYXRoLCBNYWluVGhyZWFkRmlsZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRl
TGVha2VkUHRyKGJyaWRnZSwgbW9kZSkpOworfQorCiB2b2lkIFdvcmtlckZpbGVTeXN0ZW1DYWxs
YmFja3NCcmlkZ2U6OnJlYWRNZXRhZGF0YU9uTWFpblRocmVhZChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSogZmlsZVN5c3RlbSwgY29uc3QgU3RyaW5nJiBw
YXRoLCBXb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlKiBicmlkZ2UsIGNvbnN0IFN0cmlu
ZyYgbW9kZSkKIHsKICAgICBmaWxlU3lzdGVtLT5yZWFkTWV0YWRhdGEocGF0aCwgTWFpblRocmVh
ZEZpbGVTeXN0ZW1DYWxsYmFja3M6OmNyZWF0ZUxlYWtlZFB0cihicmlkZ2UsIG1vZGUpKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0Jy
aWRnZS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJp
ZGdlLmgKaW5kZXggZjY5MjU1OWVhZmIzNWIwZGViNTI5N2I4MTI5M2U3ZTM1ZDJiYWJiMC4uZmE1
N2YzODI5OGY3MzEwM2QzOGRiYWYxZTM4NzE1NzVmNTUwMTRjOCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Xb3JrZXJGaWxlU3lzdGVtQ2FsbGJhY2tzQnJpZGdlLmgKQEAgLTg4
LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE1vdmVUb01haW5UaHJlYWQoV2ViRmls
ZVN5c3RlbSosIGNvbnN0IFN0cmluZyYgc3JjUGF0aCwgY29uc3QgU3RyaW5nJiBkZXN0UGF0aCwg
Y29uc3QgU3RyaW5nJiBtb2RlKTsKICAgICB2b2lkIHBvc3RDb3B5VG9NYWluVGhyZWFkKFdlYkZp
bGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYgZGVzdFBhdGgs
IGNvbnN0IFN0cmluZyYgbW9kZSk7CiAgICAgdm9pZCBwb3N0UmVtb3ZlVG9NYWluVGhyZWFkKFdl
YkZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbW9kZSk7Cisg
ICAgdm9pZCBwb3N0UmVtb3ZlUmVjdXJzaXZlbHlUb01haW5UaHJlYWQoV2ViRmlsZVN5c3RlbSos
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBtb2RlKTsKICAgICB2b2lkIHBvc3RS
ZWFkTWV0YWRhdGFUb01haW5UaHJlYWQoV2ViRmlsZVN5c3RlbSosIGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBtb2RlKTsKICAgICB2b2lkIHBvc3RDcmVhdGVGaWxlVG9NYWluVGhy
ZWFkKFdlYkZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgZXhjbHVzaXZlLCBj
b25zdCBTdHJpbmcmIG1vZGUpOwogICAgIHZvaWQgcG9zdENyZWF0ZURpcmVjdG9yeVRvTWFpblRo
cmVhZChXZWJGaWxlU3lzdGVtKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIGV4Y2x1c2l2ZSwg
Y29uc3QgU3RyaW5nJiBtb2RlKTsKQEAgLTExMCw2ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIG1vdmVPbk1haW5UaHJlYWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFdlYkZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIHNyY1BhdGgsIGNvbnN0IFN0cmluZyYg
ZGVzdFBhdGgsIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UqLCBjb25zdCBTdHJpbmcm
IG1vZGUpOwogICAgIHN0YXRpYyB2b2lkIGNvcHlPbk1haW5UaHJlYWQoV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFdlYkZpbGVTeXN0ZW0qLCBjb25zdCBTdHJpbmcmIHNyY1BhdGgs
IGNvbnN0IFN0cmluZyYgZGVzdFBhdGgsIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2Uq
LCBjb25zdCBTdHJpbmcmIG1vZGUpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZU9uTWFpblRocmVh
ZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSosIGNvbnN0
IFN0cmluZyYgcGF0aCwgV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZSosIGNvbnN0IFN0
cmluZyYgbW9kZSk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVjdXJzaXZlbHlPbk1haW5UaHJl
YWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdlYkZpbGVTeXN0ZW0qLCBjb25z
dCBTdHJpbmcmIHBhdGgsIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UqLCBjb25zdCBT
dHJpbmcmIG1vZGUpOwogICAgIHN0YXRpYyB2b2lkIHJlYWRNZXRhZGF0YU9uTWFpblRocmVhZChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSosIGNvbnN0IFN0
cmluZyYgcGF0aCwgV29ya2VyRmlsZVN5c3RlbUNhbGxiYWNrc0JyaWRnZSosIGNvbnN0IFN0cmlu
ZyYgbW9kZSk7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlRmlsZU9uTWFpblRocmVhZChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSosIGNvbnN0IFN0cmluZyYg
cGF0aCwgYm9vbCBleGNsdXNpdmUsIFdvcmtlckZpbGVTeXN0ZW1DYWxsYmFja3NCcmlkZ2UqLCBj
b25zdCBTdHJpbmcmIG1vZGUpOwogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZURpcmVjdG9yeU9uTWFp
blRocmVhZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViRmlsZVN5c3RlbSos
IGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCBleGNsdXNpdmUsIFdvcmtlckZpbGVTeXN0ZW1DYWxs
YmFja3NCcmlkZ2UqLCBjb25zdCBTdHJpbmcmIG1vZGUpOwo=
</data>
<flag name="review"
          id="60027"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>