<?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>154988</bug_id>
          
          <creation_ts>2016-03-03 16:18:52 -0800</creation_ts>
          <short_desc>[ES6] Make Unicode RegExp pattern parsing conform to the spec</short_desc>
          <delta_ts>2016-03-03 17:24:18 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170368</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-03 16:18:52 -0800</bug_when>
    <thetext>The parsing of a RegExp pattern with the unicode flag is more restrictive than without.  This is a follow up to change set r197426 to add those restrictions and corresponding tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170406</commentid>
    <comment_count>1</comment_count>
      <attachid>272800</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-03 16:57:30 -0800</bug_when>
    <thetext>Created attachment 272800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170409</commentid>
    <comment_count>2</comment_count>
      <attachid>272800</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-03 17:04:03 -0800</bug_when>
    <thetext>Comment on attachment 272800
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrSyntaxChecker.cpp:56
&gt; +    return parse(syntaxChecker, pattern, flags.find(&apos;u&apos;) != notFound);

flags.contains(&apos;u&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170410</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-03 17:04:34 -0800</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170420</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-03 17:24:18 -0800</bug_when>
    <thetext>Committed r197534: &lt;http://trac.webkit.org/changeset/197534&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272800</attachid>
            <date>2016-03-03 16:57:30 -0800</date>
            <delta_ts>2016-03-03 17:04:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>154988.patch</filename>
            <type>text/plain</type>
            <size>28762</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE2LTAzLTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFtFUzZdIE1ha2UgVW5pY29kZSBSZWdFeHAgcGF0dGVybiBwYXJzaW5nIGNvbmZvcm0gdG8g
dGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1NDk4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZWQgUmVnRXhwIHBhdHRlcm4gcHJvY2Vzc2luZyB3aXRoICd1JyAoVW5pY29kZSkgZmxh
ZyB0byBjb25mb3JtIHRvIHRoZQorICAgICAgICBzcGVjIChodHRwczovL3RjMzkuZ2l0aHViLmlv
L2VjbWEyNjIvMjAxNi8jc2VjLXBhdHRlcm5zKS4gIEluIHRoZSBzcGVjLCB0aGUKKyAgICAgICAg
Z3JhbW1hciBpcyBhbm5vdGF0ZWQgd2l0aCBbVV0gYW5ub3RhdGlvbnMuICBQcm9kdWN0aW9ucyB0
aGF0IGFyZSBwcmVmaXhlZCB3aXRoCisgICAgICAgIFsrVV0gYXJlIG9ubHkgYXZhaWxhYmxlIHdp
dGggdGhlIFVuaWNvZGUgZmxhZ3Mgd2hpbGUgcHJvZHVjdGlvbnMgcHJlZml4ZWQgd2l0aAorICAg
ICAgICBbflVdIGFyZSBvbmx5IGF2YWlsYWJsZSB3aXRob3V0IHRoZSBVbmljb2RlIGZsYWcuCisg
ICAgICAgIAorICAgICAgICBBZGRlZCBmbGFncyBhcmd1bWVudCB0byBZYXJyOjpjaGVja1N5bnRh
eCgpIHNvIHdlIGNhbiBjYXRjaCBVbmljb2RlIGZsYWcgcmVsYXRlZAorICAgICAgICBwYXJzaW5n
IGVycm9ycyBhdCBzeW50YXggY2hlY2tpbmcgdGltZS4gIFJlc3RyaWN0ZWQgd2hhdCBlc2NhcGVz
IGFyZSBhdmFpbGFibGUgZm9yCisgICAgICAgIG5vbiBVbmljb2RlIHBhdHRlcm5zLiAgTW9zdCBv
ZiB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIElkZW50aXR5RXNjYXBlIHJ1bGUgaW4gdGhlCisgICAg
ICAgIHBhdHRlcm4gZ3JhbW1hci4KKworICAgICAgICBBZGRlZCBcLSBhcyBhIENoYXJhY3RlckNs
YXNzIG9ubHkgZXNjYXBlIGluIFVuaWNvZGUgcGF0dGVybnMuCisKKyAgICAgICAgVXBkYXRlZCB0
aGUgdGVzdHMgZm9yIHRoZXNlIGNoYW5nZXMuCisKKyAgICAgICAgTWFkZSBjaGFuZ2VzIHN1Z2dl
c3RlZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODQyI2My
MiBhZnRlcgorICAgICAgICBjaGFuZ2Ugc2V0IHIxOTc0MjYgd2FzIGxhbmRlZC4KKworICAgICAg
ICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0
ZVJlZ0V4cCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJz
ZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVS
ZWdFeHApOgorICAgICAgICAqIHlhcnIvWWFyckludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6WWFycjo6SW50ZXJwcmV0ZXI6OklucHV0U3RyZWFtOjpyZWFkQ2hlY2tlZCk6CisgICAgICAg
IChKU0M6OllhcnI6OkludGVycHJldGVyOjpJbnB1dFN0cmVhbTo6cmVhZFN1cnJvZ2F0ZVBhaXJD
aGVja2VkKToKKyAgICAgICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6OklucHV0U3RyZWFtOjpy
ZXJlYWQpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6SW5wdXRTdHJlYW06OnVu
Y2hlY2tJbnB1dCk6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjpJbnB1dFN0cmVh
bTo6YXRTdGFydCk6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjpJbnB1dFN0cmVh
bTo6YXRFbmQpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6dGVzdENoYXJhY3Rl
ckNsYXNzKToKKyAgICAgICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6OmJhY2t0cmFja1BhdHRl
cm5DaGFyYWN0ZXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6bWF0Y2hEaXNq
dW5jdGlvbik6CisgICAgICAgIChKU0M6OllhcnI6OkJ5dGVDb21waWxlcjo6YXRvbVBhdHRlcm5D
aGFyYWN0ZXIpOgorICAgICAgICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAoSlNDOjpZ
YXJyOjpQYXJzZXI6OlBhcnNlcik6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6aXNJZGVu
dGl0eUVzY2FwZUFuRXJyb3IpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnBhcnNlRXNj
YXBlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgICogeWFy
ci9ZYXJyUGF0dGVybi5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkNoYXJhY3RlckNsYXNzQ29u
c3RydWN0b3I6OnB1dENoYXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpDaGFyYWN0ZXJDbGFzc0Nv
bnN0cnVjdG9yOjpwdXRSYW5nZSk6CisgICAgICAgIChKU0M6OllhcnI6OkNoYXJhY3RlckNsYXNz
Q29uc3RydWN0b3I6OmFkZFNvcnRlZCk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJu
Q29uc3RydWN0b3I6OnNldHVwQWx0ZXJuYXRpdmVPZmZzZXRzKToKKyAgICAgICAgKiB5YXJyL1lh
cnJTeW50YXhDaGVja2VyLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6U3ludGF4Q2hlY2tlcjo6
ZGlzanVuY3Rpb24pOgorICAgICAgICAoSlNDOjpZYXJyOjpjaGVja1N5bnRheCk6CisgICAgICAg
ICogeWFyci9ZYXJyU3ludGF4Q2hlY2tlci5oOgorCiAyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBiZSBhYmxlIHRvIGNvbXBp
bGUgU3RyaW5nUmVwbGFjZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RC
dWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RC
dWlsZGVyLmgJKHJldmlzaW9uIDE5NzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvQVNUQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNyArMzExLDcgQEAgcHVibGlj
OgogCiAgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVJlZ0V4cChjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVy
JiBmbGFncywgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KQogICAgIHsKLSAgICAgICAgaWYg
KFlhcnI6OmNoZWNrU3ludGF4KHBhdHRlcm4uc3RyaW5nKCkpKQorICAgICAgICBpZiAoWWFycjo6
Y2hlY2tTeW50YXgocGF0dGVybi5zdHJpbmcoKSwgZmxhZ3Muc3RyaW5nKCkpKQogICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgIFJlZ0V4cE5vZGUqIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJl
bmEpIFJlZ0V4cE5vZGUobG9jYXRpb24sIHBhdHRlcm4sIGZsYWdzKTsKICAgICAgICAgaW50IHNp
emUgPSBwYXR0ZXJuLmxlbmd0aCgpICsgMjsgLy8gKyAyIGZvciB0aGUgdHdvIC8ncwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNpb24gMTk3NDYxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNjg0LDcgKzM2ODQsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVF
eHByZXNzCiAgICAgICAgIG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gcmUgPSBjb250
ZXh0LmNyZWF0ZVJlZ0V4cChsb2NhdGlvbiwgKnBhdHRlcm4sICpmbGFncywgc3RhcnQpOwogICAg
ICAgICBpZiAoIXJlKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiB5YXJyRXJyb3JNc2cgPSBZ
YXJyOjpjaGVja1N5bnRheChwYXR0ZXJuLT5zdHJpbmcoKSk7CisgICAgICAgICAgICBjb25zdCBj
aGFyKiB5YXJyRXJyb3JNc2cgPSBZYXJyOjpjaGVja1N5bnRheChwYXR0ZXJuLT5zdHJpbmcoKSwg
ZmxhZ3MtPnN0cmluZygpKTsKICAgICAgICAgICAgIHJlZ2V4RmFpbCh5YXJyRXJyb3JNc2cpOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiByZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCShyZXZpc2lvbiAxOTc0NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVOdWxsKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIE51bGxFeHByOyB9CiAgICAgRXhwcmVzc2lv
blR5cGUgY3JlYXRlQnJhY2tldEFjY2Vzcyhjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIGJvb2wsIGludCwgaW50LCBpbnQpIHsgcmV0dXJuIEJy
YWNrZXRFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlRG90QWNjZXNzKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25UeXBlLCBjb25zdCBJZGVudGlmaWVyKiwgaW50LCBp
bnQsIGludCkgeyByZXR1cm4gRG90RXhwcjsgfQotICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVJl
Z0V4cChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBj
b25zdCBJZGVudGlmaWVyJiwgaW50KSB7IHJldHVybiBZYXJyOjpjaGVja1N5bnRheChwYXR0ZXJu
LnN0cmluZygpKSA/IDAgOiBSZWdFeHBFeHByOyB9CisgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRl
UmVnRXhwKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4s
IGNvbnN0IElkZW50aWZpZXImIGZsYWdzLCBpbnQpIHsgcmV0dXJuIFlhcnI6OmNoZWNrU3ludGF4
KHBhdHRlcm4uc3RyaW5nKCksIGZsYWdzLnN0cmluZygpKSA/IDAgOiBSZWdFeHBFeHByOyB9CiAg
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlTmV3RXhwcihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBF
eHByZXNzaW9uVHlwZSwgaW50LCBpbnQsIGludCwgaW50KSB7IHJldHVybiBOZXdFeHByOyB9CiAg
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlTmV3RXhwcihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBF
eHByZXNzaW9uVHlwZSwgaW50LCBpbnQpIHsgcmV0dXJuIE5ld0V4cHI7IH0KICAgICBFeHByZXNz
aW9uVHlwZSBjcmVhdGVDb25kaXRpb25hbEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhw
cmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSkgeyByZXR1cm4gQ29u
ZGl0aW9uYWxFeHByOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50
ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJJbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDE5NzQ2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw4ICsy
MDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB1bnNpZ25lZCBwID0gcG9zIC0gbmVnYXRpdmVQ
b3NpdGlvbk9mZmVzdDsKICAgICAgICAgICAgIEFTU0VSVChwIDwgbGVuZ3RoKTsKICAgICAgICAg
ICAgIGludCByZXN1bHQgPSBpbnB1dFtwXTsKLSAgICAgICAgICAgIGlmIChVMTZfSVNfTEVBRChy
ZXN1bHQpICYmIGRlY29kZVN1cnJvZ2F0ZVBhaXJzICYmIHAgKyAxIDwgbGVuZ3RoCi0gICAgICAg
ICAgICAgICAgJiYgVTE2X0lTX1RSQUlMKGlucHV0W3AgKyAxXSkpIHsKKyAgICAgICAgICAgIGlm
IChVMTZfSVNfTEVBRChyZXN1bHQpICYmIGRlY29kZVN1cnJvZ2F0ZVBhaXJzICYmIHAgKyAxIDwg
bGVuZ3RoICYmIFUxNl9JU19UUkFJTChpbnB1dFtwICsgMV0pKSB7CiAgICAgICAgICAgICAgICAg
aWYgKGF0RW5kKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAg
ICAgICAKQEAgLTIxOSwxNyArMjE4LDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGludCByZWFkU3Vycm9nYXRlUGFp
ckNoZWNrZWQodW5zaWduZWQgbmVnYXRpdmVQb3NpdGlvbk9mZmVzdCkKKyAgICAgICAgaW50IHJl
YWRTdXJyb2dhdGVQYWlyQ2hlY2tlZCh1bnNpZ25lZCBuZWdhdGl2ZVBvc2l0aW9uT2Zmc2V0KQog
ICAgICAgICB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChwb3MgPj0gbmVnYXRpdmVQb3Np
dGlvbk9mZmVzdCk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBwID0gcG9zIC0gbmVnYXRpdmVQb3Np
dGlvbk9mZmVzdDsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHBvcyA+PSBuZWdhdGl2ZVBv
c2l0aW9uT2Zmc2V0KTsKKyAgICAgICAgICAgIHVuc2lnbmVkIHAgPSBwb3MgLSBuZWdhdGl2ZVBv
c2l0aW9uT2Zmc2V0OwogICAgICAgICAgICAgQVNTRVJUKHAgPCBsZW5ndGgpOwogICAgICAgICAg
ICAgaWYgKHAgKyAxID49IGxlbmd0aCkKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAKICAg
ICAgICAgICAgIGludCBmaXJzdCA9IGlucHV0W3BdOwotICAgICAgICAgICAgaWYgKFUxNl9JU19M
RUFEKGZpcnN0KSAmJiBVMTZfSVNfVFJBSUwoaW5wdXRbcCArIDFdKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGZpcnN0LCBpbnB1dFtwICsgMV0pOworICAg
ICAgICAgICAgaW50IHNlY29uZCA9IGlucHV0W3AgKyAxXTsKKyAgICAgICAgICAgIGlmIChVMTZf
SVNfTEVBRChmaXJzdCkgJiYgVTE2X0lTX1RSQUlMKHNlY29uZCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFUxNl9HRVRfU1VQUExFTUVOVEFSWShmaXJzdCwgc2Vjb25kKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC0yMzgsMTEgKzIzOCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGZyb20gPCBsZW5ndGgpOwogICAgICAgICAgICAg
aW50IHJlc3VsdCA9IGlucHV0W2Zyb21dOwotICAgICAgICAgICAgaWYgKFUxNl9JU19MRUFEKHJl
c3VsdCkgJiYgZGVjb2RlU3Vycm9nYXRlUGFpcnMgJiYgZnJvbSArIDEgPCBsZW5ndGgKLSAgICAg
ICAgICAgICAgICAmJiBVMTZfSVNfVFJBSUwoaW5wdXRbZnJvbSArIDFdKSkgewotICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgaWYgKFUxNl9JU19MRUFEKHJlc3VsdCkgJiYgZGVjb2RlU3Vy
cm9nYXRlUGFpcnMgJiYgZnJvbSArIDEgPCBsZW5ndGggJiYgVTE2X0lTX1RSQUlMKGlucHV0W2Zy
b20gKyAxXSkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVTE2X0dFVF9TVVBQTEVNRU5UQVJZ
KHJlc3VsdCwgaW5wdXRbZnJvbSArIDFdKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApAQCAtMjk0LDkgKzI5MSw5IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHBvcyAtPSBjb3VudDsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgYXRTdGFy
dCh1bnNpZ25lZCBuZWdhdGl2ZVBvc2l0aW9uT2ZmZXN0KQorICAgICAgICBib29sIGF0U3RhcnQo
dW5zaWduZWQgbmVnYXRpdmVQb3NpdGlvbk9mZnNldCkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHBvcyA9PSBuZWdhdGl2ZVBvc2l0aW9uT2ZmZXN0OworICAgICAgICAgICAgcmV0dXJu
IHBvcyA9PSBuZWdhdGl2ZVBvc2l0aW9uT2Zmc2V0OwogICAgICAgICB9CiAKICAgICAgICAgYm9v
bCBhdEVuZCh1bnNpZ25lZCBuZWdhdGl2ZVBvc2l0aW9uT2ZmZXN0KQpAQCAtMzE5LDcgKzMxNiw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdGVzdENoYXJhY3RlckNsYXNzKENoYXJhY3RlckNsYXNz
KiBjaGFyYWN0ZXJDbGFzcywgaW50IGNoKQogICAgIHsKLSAgICAgICAgaWYgKGNoICYgMHgxRkZG
ODApIHsKKyAgICAgICAgaWYgKCFpc0FTQ0lJKGNoKSkgewogICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGNoYXJhY3RlckNsYXNzLT5tX21hdGNoZXNVbmljb2RlLnNpemUoKTsg
KytpKQogICAgICAgICAgICAgICAgIGlmIChjaCA9PSBjaGFyYWN0ZXJDbGFzcy0+bV9tYXRjaGVz
VW5pY29kZVtpXSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00MzMsMTAg
KzQzMCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBRdWFudGlmaWVyR3JlZWR5OgogICAgICAg
ICAgICAgaWYgKGJhY2tUcmFjay0+bWF0Y2hBbW91bnQpIHsKICAgICAgICAgICAgICAgICAtLWJh
Y2tUcmFjay0+bWF0Y2hBbW91bnQ7Ci0gICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUgJiYgIVVf
SVNfQk1QKHRlcm0uYXRvbS5wYXR0ZXJuQ2hhcmFjdGVyKSkKLSAgICAgICAgICAgICAgICAgICAg
aW5wdXQudW5jaGVja0lucHV0KDIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgaW5wdXQudW5jaGVja0lucHV0KDEpOworICAgICAgICAgICAgICAgIGlucHV0LnVu
Y2hlY2tJbnB1dChVMTZfTEVOR1RIKHRlcm0uYXRvbS5wYXR0ZXJuQ2hhcmFjdGVyKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKQEAgLTEyNjcsNyArMTI2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBCeXRlVGVybTo6
VHlwZVBhdHRlcm5DYXNlZENoYXJhY3Rlck9uY2U6CiAgICAgICAgIGNhc2UgQnl0ZVRlcm06OlR5
cGVQYXR0ZXJuQ2FzZWRDaGFyYWN0ZXJGaXhlZDogewogICAgICAgICAgICAgaWYgKHVuaWNvZGUp
IHsKLSAgICAgICAgICAgICAgICAvLyBDYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIHVuaWNv
ZGUgY2hhcmF0ZXJzIGFyZSBoYW5kbGVkIGFzIFR5cGVDaGFyYWN0ZXJDbGFzcworICAgICAgICAg
ICAgICAgIC8vIENhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2YgdW5pY29kZSBjaGFyYWN0ZXJz
IGlzIGhhbmRsZWQgYXMgVHlwZUNoYXJhY3RlckNsYXNzLgogICAgICAgICAgICAgICAgIEFTU0VS
VChVX0lTX0JNUChjdXJyZW50VGVybSgpLmF0b20ucGF0dGVybkNoYXJhY3RlcikpOwogCiAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgcG9zaXRpb24gPSBpbnB1dC5nZXRQb3MoKTsgLy8gTWF5IG5l
ZWQgdG8gYmFjayBvdXQgcmVhZGluZyBhIHN1cnJvZ2F0ZSBwYWlyLgpAQCAtMTI5MCw3ICsxMjg0
LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEJ5dGVUZXJtOjpUeXBlUGF0dGVybkNhc2VkQ2hh
cmFjdGVyR3JlZWR5OiB7CiAgICAgICAgICAgICBCYWNrVHJhY2tJbmZvUGF0dGVybkNoYXJhY3Rl
ciogYmFja1RyYWNrID0gcmVpbnRlcnByZXRfY2FzdDxCYWNrVHJhY2tJbmZvUGF0dGVybkNoYXJh
Y3Rlcio+KGNvbnRleHQtPmZyYW1lICsgY3VycmVudFRlcm0oKS5mcmFtZUxvY2F0aW9uKTsKIAot
ICAgICAgICAgICAgLy8gQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiB1bmljb2RlIGNoYXJh
dGVycyBhcmUgaGFuZGxlZCBhcyBUeXBlQ2hhcmFjdGVyQ2xhc3MKKyAgICAgICAgICAgIC8vIENh
c2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2YgdW5pY29kZSBjaGFyYWN0ZXJzIGlzIGhhbmRsZWQg
YXMgVHlwZUNoYXJhY3RlckNsYXNzLgogICAgICAgICAgICAgQVNTRVJUKCF1bmljb2RlIHx8IFVf
SVNfQk1QKGN1cnJlbnRUZXJtKCkuYXRvbS5wYXR0ZXJuQ2hhcmFjdGVyKSk7CiAKICAgICAgICAg
ICAgIHVuc2lnbmVkIG1hdGNoQW1vdW50ID0gMDsKQEAgLTEzMDgsNyArMTMwMiw3IEBAIHB1Ymxp
YzoKICAgICAgICAgY2FzZSBCeXRlVGVybTo6VHlwZVBhdHRlcm5DYXNlZENoYXJhY3Rlck5vbkdy
ZWVkeTogewogICAgICAgICAgICAgQmFja1RyYWNrSW5mb1BhdHRlcm5DaGFyYWN0ZXIqIGJhY2tU
cmFjayA9IHJlaW50ZXJwcmV0X2Nhc3Q8QmFja1RyYWNrSW5mb1BhdHRlcm5DaGFyYWN0ZXIqPihj
b250ZXh0LT5mcmFtZSArIGN1cnJlbnRUZXJtKCkuZnJhbWVMb2NhdGlvbik7CiAKLSAgICAgICAg
ICAgIC8vIENhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2YgdW5pY29kZSBjaGFyYXRlcnMgYXJl
IGhhbmRsZWQgYXMgVHlwZUNoYXJhY3RlckNsYXNzCisgICAgICAgICAgICAvLyBDYXNlIGluc2Vu
c2l0aXZlIG1hdGNoaW5nIG9mIHVuaWNvZGUgY2hhcmFjdGVycyBpcyBoYW5kbGVkIGFzIFR5cGVD
aGFyYWN0ZXJDbGFzcy4KICAgICAgICAgICAgIEFTU0VSVCghdW5pY29kZSB8fCBVX0lTX0JNUChj
dXJyZW50VGVybSgpLmF0b20ucGF0dGVybkNoYXJhY3RlcikpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBiYWNrVHJhY2stPm1hdGNoQW1vdW50ID0gMDsKQEAgLTE2MTgsOSArMTYxMiw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGF0b21QYXR0ZXJuQ2hhcmFjdGVyKFVDaGFyMzIgY2gsIHVuc2ln
bmVkIGlucHV0UG9zaXRpb24sIHVuc2lnbmVkIGZyYW1lTG9jYXRpb24sIENoZWNrZWQ8dW5zaWdu
ZWQ+IHF1YW50aXR5Q291bnQsIFF1YW50aWZpZXJUeXBlIHF1YW50aXR5VHlwZSkKICAgICB7CiAg
ICAgICAgIGlmIChtX3BhdHRlcm4ubV9pZ25vcmVDYXNlKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
dV90b2xvd2VyKGNoKSA8PSBVQ0hBUl9NQVhfVkFMVUUpOwotICAgICAgICAgICAgQVNTRVJUKHVf
dG91cHBlcihjaCkgPD0gVUNIQVJfTUFYX1ZBTFVFKTsKLQogICAgICAgICAgICAgVUNoYXIzMiBs
byA9IHVfdG9sb3dlcihjaCk7CiAgICAgICAgICAgICBVQ2hhcjMyIGhpID0gdV90b3VwcGVyKGNo
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAkocmV2aXNp
b24gMTk3NDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIENoYXJhY3Rl
ckNsYXNzT3V0T2ZPcmRlciwKICAgICAgICAgRXNjYXBlVW50ZXJtaW5hdGVkLAogICAgICAgICBJ
bnZhbGlkVW5pY29kZUVzY2FwZSwKKyAgICAgICAgSW52YWxpZElkZW50aXR5RXNjYXBlLAogICAg
ICAgICBOdW1iZXJPZkVycm9yQ29kZXMKICAgICB9OwogCkBAIC0yNDEsNiArMjQyLDE5IEBAIHBy
aXZhdGU6CiAgICAgewogICAgIH0KIAorICAgIC8vIFRoZSBoYW5kbGluZyBvZiBJZGVudGl0eUVz
Y2FwZXMgaXMgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB0aGUgdW5pY29kZSBmbGFnLgorICAgIC8v
IEZvciBVbmljb2RlIHBhdHRlcm5zLCBJZGVudGl0eUVzY2FwZXMgb25seSBpbmNsdWRlIFN5bnRh
eENoYXJhY3RlcnMgb3IgJy8nLgorICAgIC8vIEZvciBub24tdW5pY29kZSBwYXR0ZXJucywgbW9z
dCBhbnkgY2hhcmFjdGVyIGNhbiBiZSBlc2NhcGVkLgorICAgIGJvb2wgaXNJZGVudGl0eUVzY2Fw
ZUFuRXJyb3IoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXNVbmljb2RlICYmICFzdHJj
aHIoIl4kXFwuKis/KClbXXt9fC8iLCBjaCkpIHsKKyAgICAgICAgICAgIG1fZXJyID0gSW52YWxp
ZElkZW50aXR5RXNjYXBlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgLyoKICAgICAgKiBwYXJzZUVzY2Fw
ZSgpOgogICAgICAqCkBAIC0yNzcsMTggKzI5MSwyNCBAQCBwcml2YXRlOgogICAgICAgICAvLyBB
c3NlcnRpb25zCiAgICAgICAgIGNhc2UgJ2InOgogICAgICAgICAgICAgY29uc3VtZSgpOwotICAg
ICAgICAgICAgaWYgKGluQ2hhcmFjdGVyQ2xhc3MpCisgICAgICAgICAgICBpZiAoaW5DaGFyYWN0
ZXJDbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChpc0lkZW50aXR5RXNjYXBlQW5FcnJvcign
YicpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKwogICAgICAgICAgICAgICAgIGRlbGVn
YXRlLmF0b21QYXR0ZXJuQ2hhcmFjdGVyKCdcYicpOwotICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGRlbGVnYXRlLmFzc2VydGlvbldvcmRC
b3VuZGFyeShmYWxzZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ0InOgogICAgICAgICAgICAg
Y29uc3VtZSgpOwotICAgICAgICAgICAgaWYgKGluQ2hhcmFjdGVyQ2xhc3MpCisgICAgICAgICAg
ICBpZiAoaW5DaGFyYWN0ZXJDbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChpc0lkZW50aXR5
RXNjYXBlQW5FcnJvcignQicpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKwogICAgICAg
ICAgICAgICAgIGRlbGVnYXRlLmF0b21QYXR0ZXJuQ2hhcmFjdGVyKCdCJyk7Ci0gICAgICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZGVsZWdhdGUu
YXNzZXJ0aW9uV29yZEJvdW5kYXJ5KHRydWUpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIH0KQEAgLTQwMyw5ICs0MjMsMTIgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSAneCc6IHsKICAgICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAgIGludCB4ID0g
dHJ5Q29uc3VtZUhleCgyKTsKLSAgICAgICAgICAgIGlmICh4ID09IC0xKQorICAgICAgICAgICAg
aWYgKHggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNJZGVudGl0eUVzY2FwZUFuRXJy
b3IoJ3gnKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgICAgICAgICBk
ZWxlZ2F0ZS5hdG9tUGF0dGVybkNoYXJhY3RlcigneCcpOwotICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbVBhdHRlcm5DaGFy
YWN0ZXIoeCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDE0LDIwICs0Mzcs
MjMgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSAndSc6IHsKICAgICAgICAgICAgIGNvbnN1bWUo
KTsKICAgICAgICAgICAgIGlmIChhdEVuZE9mUGF0dGVybigpKSB7CisgICAgICAgICAgICAgICAg
aWYgKGlzSWRlbnRpdHlFc2NhcGVBbkVycm9yKCd1JykpCisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworCiAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoJ3Un
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
aWYgKHBlZWsoKSA9PSAneycpIHsKKyAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSAmJiBwZWVr
KCkgPT0gJ3snKSB7CiAgICAgICAgICAgICAgICAgY29uc3VtZSgpOwogICAgICAgICAgICAgICAg
IFVDaGFyMzIgY29kZVBvaW50ID0gMDsKICAgICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChhdEVuZE9mUGF0dGVybigpKQogICAgICAgICAgICAgICAgICAgICAgICAg
bV9lcnIgPSBJbnZhbGlkVW5pY29kZUVzY2FwZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFX
VEY6OmlzQVNDSUlIZXhEaWdpdChwZWVrKCkpKQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
QVNDSUlIZXhEaWdpdChwZWVrKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnIgPSBJ
bnZhbGlkVW5pY29kZUVzY2FwZTsKIAotICAgICAgICAgICAgICAgICAgICBjb2RlUG9pbnQgPSAo
Y29kZVBvaW50IDw8IDQpIHwgV1RGOjp0b0FTQ0lJSGV4VmFsdWUoY29uc3VtZSgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29kZVBvaW50ID0gKGNvZGVQb2ludCA8PCA0KSB8IHRvQVNDSUlIZXhW
YWx1ZShjb25zdW1lKCkpOwogCiAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPiBV
Q0hBUl9NQVhfVkFMVUUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2VyciA9IEludmFsaWRV
bmljb2RlRXNjYXBlOwpAQCAtNDQxLDkgKzQ2NywxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaW50IHUgPSB0cnlDb25zdW1l
SGV4KDQpOwotICAgICAgICAgICAgaWYgKHUgPT0gLTEpCisgICAgICAgICAgICBpZiAodSA9PSAt
MSkgeworICAgICAgICAgICAgICAgIGlmIChpc0lkZW50aXR5RXNjYXBlQW5FcnJvcigndScpKQor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKwogICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0
b21QYXR0ZXJuQ2hhcmFjdGVyKCd1Jyk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSB0aGUgZmlyc3Qgb2YgYSBz
dXJyb2dhdGUgcGFpciwgbG9vayBmb3IgdGhlIHNlY29uZC4KICAgICAgICAgICAgICAgICBpZiAo
VTE2X0lTX0xFQUQodSkgJiYgbV9pc1VuaWNvZGUgJiYgKHBhdHRlcm5SZW1haW5pbmcoKSA+PSA2
KSAmJiBwZWVrKCkgPT0gJ1xcJykgewogICAgICAgICAgICAgICAgICAgICBQYXJzZVN0YXRlIHN0
YXRlID0gc2F2ZVN0YXRlKCk7CkBAIC00NjcsNiArNDk2LDE3IEBAIHByaXZhdGU6CiAKICAgICAg
ICAgLy8gSWRlbnRpdHlFc2NhcGUKICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGludCBj
aCA9IHBlZWsoKTsKKworICAgICAgICAgICAgaWYgKGNoID09ICctJyAmJiBtX2lzVW5pY29kZSAm
JiBpbkNoYXJhY3RlckNsYXNzKSB7CisgICAgICAgICAgICAgICAgLy8gXC0gaXMgYWxsb3dlZCBm
b3IgQ2xhc3NFc2NhcGUgd2l0aCB1bmljb2RlIGZsYWcuCisgICAgICAgICAgICAgICAgZGVsZWdh
dGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoY29uc3VtZSgpKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzSWRlbnRpdHlFc2NhcGVBbkVy
cm9yKGNoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKwogICAgICAgICAgICAgZGVsZWdhdGUu
YXRvbVBhdHRlcm5DaGFyYWN0ZXIoY29uc3VtZSgpKTsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTc2Miw4ICs4MDIsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJ
WCAidW5yZWNvZ25pemVkIGNoYXJhY3RlciBhZnRlciAoPyIsCiAgICAgICAgICAgICBSRUdFWFBf
RVJST1JfUFJFRklYICJtaXNzaW5nIHRlcm1pbmF0aW5nIF0gZm9yIGNoYXJhY3RlciBjbGFzcyIs
CiAgICAgICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJyYW5nZSBvdXQgb2Ygb3JkZXIgaW4g
Y2hhcmFjdGVyIGNsYXNzIiwKLSAgICAgICAgICAgIFJFR0VYUF9FUlJPUl9QUkVGSVggIlxcIGF0
IGVuZCBvZiBwYXR0ZXJuIgotICAgICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxp
ZCB1bmljb2RlIHt9IGVzY2FwZSIKKyAgICAgICAgICAgIFJFR0VYUF9FUlJPUl9QUkVGSVggIlxc
IGF0IGVuZCBvZiBwYXR0ZXJuIiwKKyAgICAgICAgICAgIFJFR0VYUF9FUlJPUl9QUkVGSVggImlu
dmFsaWQgdW5pY29kZSB7fSBlc2NhcGUiLAorICAgICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJ
WCAiaW52YWxpZCBlc2NhcGVkIGNoYXJhY3RlciBmb3IgdW5pY29kZSBwYXR0ZXJuIgogICAgICAg
ICB9OwogCiAgICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2VzW21fZXJyXTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAJKHJldmlzaW9uIDE5NzQ2MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXRDaGFyKFVDaGFyMzIg
Y2gpCiAgICAgewogICAgICAgICAvLyBIYW5kbGUgYXNjaWkgY2FzZXMuCi0gICAgICAgIGlmIChj
aCA8PSAweDdmKSB7CisgICAgICAgIGlmIChpc0FTQ0lJKGNoKSkgewogICAgICAgICAgICAgaWYg
KG1faXNDYXNlSW5zZW5zaXRpdmUgJiYgaXNBU0NJSUFscGhhKGNoKSkgewogICAgICAgICAgICAg
ICAgIGFkZFNvcnRlZChtX21hdGNoZXMsIHRvQVNDSUlVcHBlcihjaCkpOwogICAgICAgICAgICAg
ICAgIGFkZFNvcnRlZChtX21hdGNoZXMsIHRvQVNDSUlMb3dlcihjaCkpOwpAQCAtMTA4LDcgKzEw
OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHV0UmFuZ2UoVUNoYXIzMiBsbywgVUNoYXIzMiBo
aSkKICAgICB7Ci0gICAgICAgIGlmIChsbyA8PSAweDdmKSB7CisgICAgICAgIGlmIChpc0FTQ0lJ
KGxvKSkgewogICAgICAgICAgICAgY2hhciBhc2NpaUxvID0gbG87CiAgICAgICAgICAgICBjaGFy
IGFzY2lpSGkgPSBzdGQ6Om1pbihoaSwgKFVDaGFyMzIpMHg3Zik7CiAgICAgICAgICAgICBhZGRT
b3J0ZWRSYW5nZShtX3JhbmdlcywgbG8sIGFzY2lpSGkpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgYWRkU29ydGVkUmFuZ2UobV9yYW5nZXMsIHN0ZDo6
bWF4KGFzY2lpTG8sICdhJykrKCdBJy0nYScpLCBzdGQ6Om1pbihhc2NpaUhpLCAneicpKygnQSct
J2EnKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGhpIDw9IDB4N2Yp
CisgICAgICAgIGlmIChpc0FTQ0lJKGhpKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBsbyA9IHN0ZDo6bWF4KGxvLCAoVUNoYXIzMikweDgwKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgYWRkU29ydGVkKFVDaGFyMzIgY2gpCiAgICAgewot
ICAgICAgICBhZGRTb3J0ZWQoY2ggPD0gMHg3ZiA/IG1fbWF0Y2hlcyA6IG1fbWF0Y2hlc1VuaWNv
ZGUsIGNoKTsKKyAgICAgICAgYWRkU29ydGVkKGlzQVNDSUkoY2gpID8gbV9tYXRjaGVzIDogbV9t
YXRjaGVzVW5pY29kZSwgY2gpOwogICAgIH0KIAogICAgIHZvaWQgYWRkU29ydGVkKFZlY3RvcjxV
Q2hhcjMyPiYgbWF0Y2hlcywgVUNoYXIzMiBjaCkKQEAgLTYwMyw3ICs2MDMsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDYWxsRnJhbWVTaXplICs9IFlhcnJTdGFja1Nw
YWNlRm9yQmFja1RyYWNrSW5mb1BhdHRlcm5DaGFyYWN0ZXI7CiAgICAgICAgICAgICAgICAgICAg
IGFsdGVybmF0aXZlLT5tX2hhc0ZpeGVkU2l6ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAobV9wYXR0ZXJuLm1fdW5pY29kZSkgewotICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50SW5wdXRQb3NpdGlvbiArPSAoIVVfSVNfQk1QKHRlcm0ucGF0dGVybkNoYXJhY3RlcikgPyAy
IDogMSkgKiB0ZXJtLnF1YW50aXR5Q291bnQ7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJ
bnB1dFBvc2l0aW9uICs9IFUxNl9MRU5HVEgodGVybS5wYXR0ZXJuQ2hhcmFjdGVyKSAqIHRlcm0u
cXVhbnRpdHlDb3VudDsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgY3VycmVudElucHV0UG9zaXRpb24gKz0gdGVybS5xdWFudGl0eUNvdW50OwogICAgICAgICAg
ICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclN5bnRh
eENoZWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJTeW50YXhDaGVja2VyLmNwcAkocmV2aXNpb24gMTk3NDYxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyclN5bnRheENoZWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwx
MCArNTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlzanVuY3Rpb24oKSB7fQogfTsKIAotY29u
c3QgY2hhciogY2hlY2tTeW50YXgoY29uc3QgU3RyaW5nJiBwYXR0ZXJuKQorY29uc3QgY2hhciog
Y2hlY2tTeW50YXgoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIGZsYWdzKQog
ewogICAgIFN5bnRheENoZWNrZXIgc3ludGF4Q2hlY2tlcjsKLSAgICByZXR1cm4gcGFyc2Uoc3lu
dGF4Q2hlY2tlciwgcGF0dGVybiwgZmFsc2UpOworICAgIHJldHVybiBwYXJzZShzeW50YXhDaGVj
a2VyLCBwYXR0ZXJuLCBmbGFncy5maW5kKCd1JykgIT0gbm90Rm91bmQpOwogfQogCiB9fSAvLyBK
U0M6OllBUlIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJTeW50YXhDaGVj
a2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclN5bnRh
eENoZWNrZXIuaAkocmV2aXNpb24gMTk3NDYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyclN5bnRheENoZWNrZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFlhcnIgewogCi1jb25zdCBjaGFyKiBjaGVja1N5
bnRheChjb25zdCBTdHJpbmcmIHBhdHRlcm4pOworY29uc3QgY2hhciogY2hlY2tTeW50YXgoY29u
c3QgU3RyaW5nJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIGZsYWdzKTsKIAogfX0gLy8gSlNDOjpZ
QVJSCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzQ2MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAzLTAzICBNaWNoYWVsIFNh
Ym9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFtFUzZdIE1ha2UgVW5pY29kZSBS
ZWdFeHAgcGF0dGVybiBwYXJzaW5nIGNvbmZvcm0gdG8gdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk4OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGNhc2VzLgorCisg
ICAgICAgICoganMvcmVnZXhwLXVuaWNvZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9yZWdleHAtdW5pY29kZS5qczoKKyAgICAgICAgKHNob3VsZFRocm93SW52YWxp
ZEVzY2FwZSk6CisKIDIwMTYtMDMtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBbGlnbiBIVE1MSW5wdXRFbGVtZW50Lm1heExlbmd0aCB3aXRoIHRoZSBzcGVj
aWZpY2F0aW9uCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdleHAtdW5pY29kZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVnZXhwLXVuaWNvZGUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxOTc0NjEpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdleHAtdW5pY29kZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsMTkgKzMsMTkgQEAgVGVzdCBmb3IgdW5p
Y29kZSByZWd1bGFyIGV4cHJlc3Npb24gcHJvYwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLVBBU1MgImEiLm1hdGNoKC9hLylbMF0ubGVuZ3RoIGlzIDEKLVBBU1MgImEiLm1hdGNoKC9B
L2kpWzBdLmxlbmd0aCBpcyAxCitQQVNTICJhIi5tYXRjaCgvYS91KVswXS5sZW5ndGggaXMgMQor
UEFTUyAiYSIubWF0Y2goL0EvdWkpWzBdLmxlbmd0aCBpcyAxCiBQQVNTICJhIi5tYXRjaCgvYS91
KVswXS5sZW5ndGggaXMgMQogUEFTUyAiYSIubWF0Y2goL0EvaXUpWzBdLmxlbmd0aCBpcyAxCi1Q
QVNTICLIkiIubWF0Y2goL8iSLylbMF0ubGVuZ3RoIGlzIDEKIFBBU1MgIsiSIi5tYXRjaCgvyJIv
dSlbMF0ubGVuZ3RoIGlzIDEKLVBBU1MgIuGItCIubWF0Y2goL+GItC8pWzBdLmxlbmd0aCBpcyAx
CitQQVNTICLIkiIubWF0Y2goL8iSL3UpWzBdLmxlbmd0aCBpcyAxCiBQQVNTICLhiLQiLm1hdGNo
KC/hiLQvdSlbMF0ubGVuZ3RoIGlzIDEKLVBBU1MgIuKqvCIubWF0Y2goL+KqvC8pWzBdLmxlbmd0
aCBpcyAxCitQQVNTICLhiLQiLm1hdGNoKC/hiLQvdSlbMF0ubGVuZ3RoIGlzIDEKK1BBU1MgIuKq
vCIubWF0Y2goL+KqvC91KVswXS5sZW5ndGggaXMgMQogUEFTUyAi47+tIi5tYXRjaCgv47+tL3Up
WzBdLmxlbmd0aCBpcyAxCiBQQVNTICLwko2FIi5tYXRjaCgv8JKNhS91KVswXS5sZW5ndGggaXMg
MgogUEFTUyAi8JKNhSIubWF0Y2goL/CSjYUvdSlbMF0ubGVuZ3RoIGlzIDIKLVBBU1MgIvCdjIYi
Lm1hdGNoKC/wnYyGLylbMF0ubGVuZ3RoIGlzIDIKK1BBU1MgIvCdjIYiLm1hdGNoKC/wnYyGL3Up
WzBdLmxlbmd0aCBpcyAyCiBQQVNTIC/wkJGPL3UudGVzdCgi8JCRjyIpIGlzIHRydWUKIFBBU1Mg
L/CQkY8vdS50ZXN0KCLwkJGPIikgaXMgdHJ1ZQogUEFTUyAi8J2MhiIubWF0Y2goL/CdjIYvdSlb
MF0ubGVuZ3RoIGlzIDIKQEAgLTQxLDYgKzQxLDggQEAgUEFTUyAiYfCQhKNYIi5tYXRjaCgvYfCQ
hKNifGHwkISjeC9pdSlbMAogUEFTUyAixaR4Ii5tYXRjaCgvxaV4L2l1KVswXS5sZW5ndGggaXMg
MgogUEFTUyAi8J2MhiIubWF0Y2goL14uJC91KVswXS5sZW5ndGggaXMgMgogUEFTUyAiSXQgaXMg
NzjCsCIubWF0Y2goLy4qL3UpWzBdLmxlbmd0aCBpcyA5CitQQVNTIHN0cmluZ1dpdGhEYW5nbGlu
Z0ZpcnN0U3Vycm9nYXRlLm1hdGNoKC8uKi91KVswXS5sZW5ndGggaXMgMworUEFTUyBzdHJpbmdX
aXRoRGFuZ2xpbmdTZWNvbmRTdXJyb2dhdGUubWF0Y2goLy4qL3UpWzBdLmxlbmd0aCBpcyAzCiBQ
QVNTICLwnYyGIi5tYXRjaCgvW/CdjIZhXS8pWzBdLmxlbmd0aCBpcyAxCiBQQVNTICLwnYyGIi5t
YXRjaCgvW2HwnYyGXS91KVswXS5sZW5ndGggaXMgMgogUEFTUyAi8J2MhiIubWF0Y2goL1vwnYyG
YV0vdSlbMF0ubGVuZ3RoIGlzIDIKQEAgLTkxLDYgKzkzLDIyIEBAIFBBU1MgL+G6mmJjL3VpLnRl
c3QoImFiYyIpIGlzIHRydWUKIFBBU1MgL2FiYy91aS50ZXN0KCLhuppiYyIpIGlzIHRydWUKIFBB
U1MgL3RleOG6ly91aS50ZXN0KCJ0ZXh0IikgaXMgdHJ1ZQogUEFTUyAvdGV4dC91aS50ZXN0KCLh
updleHQiKSBpcyB0cnVlCitQQVNTIC9cdXsxfS8udGVzdCgidSIpIGlzIHRydWUKK1BBU1MgL1x1
ezR9Ly50ZXN0KCJ1IikgaXMgZmFsc2UKK1BBU1MgL1x1ezR9Ly50ZXN0KCJ1dXV1IikgaXMgdHJ1
ZQorUEFTUyAiODAwLTU1NS0xMjEyIi5tYXRjaCgvWzAtOVwtXSovdSlbMF0ubGVuZ3RoIGlzIDEy
CitQQVNTICJ0aGlzIGlzIGIIYSB0ZXN0Ii5tYXRjaCgvaXMgYlxjaGEgdGVzdC91KVswXS5sZW5n
dGggaXMgMTEKK1BBU1MgbmV3IFJlZ0V4cCgiXFwvIiwgInUiKS5zb3VyY2UgaXMgIlxcLyIKK1BB
U1MgciA9IG5ldyBSZWdFeHAoIlxcdXsxMTAwMDB9IiwgInUiKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBpbnZhbGlkIHVuaWNvZGUge30g
ZXNjYXBlLgorUEFTUyByID0gbmV3IFJlZ0V4cCgiXFwtIiwgInUiKSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBpbnZhbGlkIGVzY2FwZWQg
Y2hhcmFjdGVyIGZvciB1bmljb2RlIHBhdHRlcm4uCitQQVNTIHIgPSBuZXcgUmVnRXhwKCJcXGEi
LCAidSIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246IGludmFsaWQgZXNjYXBlZCBjaGFyYWN0ZXIgZm9yIHVuaWNvZGUgcGF0dGVybi4KK1BB
U1MgciA9IG5ldyBSZWdFeHAoIltcXGFdIiwgInUiKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBpbnZhbGlkIGVzY2FwZWQgY2hhcmFjdGVy
IGZvciB1bmljb2RlIHBhdHRlcm4uCitQQVNTIHIgPSBuZXcgUmVnRXhwKCJbXFxiXSIsICJ1Iikg
dGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjog
aW52YWxpZCBlc2NhcGVkIGNoYXJhY3RlciBmb3IgdW5pY29kZSBwYXR0ZXJuLgorUEFTUyByID0g
bmV3IFJlZ0V4cCgiW1xcQl0iLCAidSIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52
YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgZXNjYXBlZCBjaGFyYWN0ZXIgZm9yIHVu
aWNvZGUgcGF0dGVybi4KK1BBU1MgciA9IG5ldyBSZWdFeHAoIlxceCIsICJ1IikgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxpZCBl
c2NhcGVkIGNoYXJhY3RlciBmb3IgdW5pY29kZSBwYXR0ZXJuLgorUEFTUyByID0gbmV3IFJlZ0V4
cCgiW1xceF0iLCAidSIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1
bGFyIGV4cHJlc3Npb246IGludmFsaWQgZXNjYXBlZCBjaGFyYWN0ZXIgZm9yIHVuaWNvZGUgcGF0
dGVybi4KK1BBU1MgciA9IG5ldyBSZWdFeHAoIlxcdSIsICJ1IikgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxpZCBlc2NhcGVkIGNo
YXJhY3RlciBmb3IgdW5pY29kZSBwYXR0ZXJuLgorUEFTUyByID0gbmV3IFJlZ0V4cCgiW1xcdV0i
LCAidSIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246IGludmFsaWQgZXNjYXBlZCBjaGFyYWN0ZXIgZm9yIHVuaWNvZGUgcGF0dGVybi4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC11bmljb2RlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtdW5pY29kZS5qcwkocmV2aXNpb24g
MTk3NDYxKQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC11bmljb2RlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0zLDE5ICszLDE5IEBAIGRlc2NyaXB0aW9uKAogKTsKIAogLy8g
VGVzdCBcdXt9IGVzY2FwZXMgaW4gYSByZWd1bGFyIGV4cHJlc3Npb24KLXNob3VsZEJlKCciYSIu
bWF0Y2goL1x1ezYxfS8pWzBdLmxlbmd0aCcsICcxJyk7Ci1zaG91bGRCZSgnImEiLm1hdGNoKC9c
dXs0MX0vaSlbMF0ubGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlKCciYSIubWF0Y2goL1x1ezYxfS91
KVswXS5sZW5ndGgnLCAnMScpOworc2hvdWxkQmUoJyJhIi5tYXRjaCgvXHV7NDF9L3VpKVswXS5s
ZW5ndGgnLCAnMScpOwogc2hvdWxkQmUoJyJhIi5tYXRjaCgvXHV7MDYxfS91KVswXS5sZW5ndGgn
LCAnMScpOwogc2hvdWxkQmUoJyJhIi5tYXRjaCgvXHV7MDQxfS9pdSlbMF0ubGVuZ3RoJywgJzEn
KTsKLXNob3VsZEJlKCciXHV7MjEyfSIubWF0Y2goL1x1ezIxMn0vKVswXS5sZW5ndGgnLCAnMScp
Oworc2hvdWxkQmUoJyJcdXsyMTJ9Ii5tYXRjaCgvXHV7MjEyfS91KVswXS5sZW5ndGgnLCAnMScp
Owogc2hvdWxkQmUoJyJcdXsyMTJ9Ii5tYXRjaCgvXHV7MDIxMn0vdSlbMF0ubGVuZ3RoJywgJzEn
KTsKLXNob3VsZEJlKCciXHV7MTIzNH0iLm1hdGNoKC9cdXsxMjM0fS8pWzBdLmxlbmd0aCcsICcx
Jyk7CitzaG91bGRCZSgnIlx1ezEyMzR9Ii5tYXRjaCgvXHV7MTIzNH0vdSlbMF0ubGVuZ3RoJywg
JzEnKTsKIHNob3VsZEJlKCciXHV7MTIzNH0iLm1hdGNoKC9cdXswMTIzNH0vdSlbMF0ubGVuZ3Ro
JywgJzEnKTsKLXNob3VsZEJlKCciXHV7MmFiY30iLm1hdGNoKC9cdXsyYWJjfS8pWzBdLmxlbmd0
aCcsICcxJyk7CitzaG91bGRCZSgnIlx1ezJhYmN9Ii5tYXRjaCgvXHV7MmFiY30vdSlbMF0ubGVu
Z3RoJywgJzEnKTsKIHNob3VsZEJlKCciXHV7MDNmZWR9Ii5tYXRjaCgvXHV7MDNmZWR9L3UpWzBd
Lmxlbmd0aCcsICcxJyk7CiBzaG91bGRCZSgnIlx1ezEyMzQ1fSIubWF0Y2goL1x1ezEyMzQ1fS91
KVswXS5sZW5ndGgnLCAnMicpOwogc2hvdWxkQmUoJyJcdXsxMjM0NX0iLm1hdGNoKC9cdXswMTIz
NDV9L3UpWzBdLmxlbmd0aCcsICcyJyk7Ci1zaG91bGRCZSgnIlx1ezFkMzA2fSIubWF0Y2goL1x1
ezFkMzA2fS8pWzBdLmxlbmd0aCcsICcyJyk7CitzaG91bGRCZSgnIlx1ezFkMzA2fSIubWF0Y2go
L1x1ezFkMzA2fS91KVswXS5sZW5ndGgnLCAnMicpOwogc2hvdWxkQmVUcnVlKCcvXHV7MTA0NGZ9
L3UudGVzdCgiXHVkODAxXHVkYzRmIiknKTsKIHNob3VsZEJlVHJ1ZSgnL1x1ZDgwMVx1ZGM0Zi91
LnRlc3QoIlx1ezEwNDRmfSIpJyk7CiAKQEAgLTQ3LDE1ICs0NywxNiBAQCBzaG91bGRCZSgnIlx1
MDE2NHgiLm1hdGNoKC9cdTAxNjV4L2l1KVswCiAvLyBUZXN0IC4gbWF0Y2hlcyB3aXRoIFVuaWNv
ZGUgZmxhZwogc2hvdWxkQmUoJyJcdXsxRDMwNn0iLm1hdGNoKC9eLiQvdSlbMF0ubGVuZ3RoJywg
JzInKTsKIHNob3VsZEJlKCciSXQgaXMgNzhcdTAwQjAiLm1hdGNoKC8uKi91KVswXS5sZW5ndGgn
LCAnOScpOwotLy8gRklYTUU6IFRoZXNlIHRlc3RzIGFyZSBkaXNhYmxlZCB1bnRpbCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0ODYzIGlzIGZpeGVkCi0vLyBzaG91
bGRCZSgnIlx1ZDgwMVhYWCIubWF0Y2goLy4qL3UpWzBdLmxlbmd0aCcsICc0Jyk7IC8vIFdlIHNo
b3VsZCBtYXRjaCBhIGRhbmdsaW5nIGZpcnN0IHN1cnJvZ2F0ZSBhcyAxIGNoYXJhY3RlcgotLy8g
c2hvdWxkQmUoJyJYXHVkZmZmWFgiLm1hdGNoKC8uKi91KVswXS5sZW5ndGgnLCAnNCcpOyAvLyBX
ZSBzaG91bGQgbWF0Y2ggYSBkYW5nbGluZyBzZWNvbmQgc3Vycm9nYXRlIGFzIDEgY2hhcmFjdGVy
Cit2YXIgc3RyaW5nV2l0aERhbmdsaW5nRmlyc3RTdXJyb2dhdGUgPSAiWFx1RDgwMVgiOworc2hv
dWxkQmUoJ3N0cmluZ1dpdGhEYW5nbGluZ0ZpcnN0U3Vycm9nYXRlLm1hdGNoKC8uKi91KVswXS5s
ZW5ndGgnLCAnMycpOyAvLyBXZSBzaG91bGQgbWF0Y2ggYSBkYW5nbGluZyBmaXJzdCBzdXJyb2dh
dGUgYXMgMSBjaGFyYWN0ZXIKK3ZhciBzdHJpbmdXaXRoRGFuZ2xpbmdTZWNvbmRTdXJyb2dhdGUg
PSAiWFx1REYwMVgiOworc2hvdWxkQmUoJ3N0cmluZ1dpdGhEYW5nbGluZ1NlY29uZFN1cnJvZ2F0
ZS5tYXRjaCgvLiovdSlbMF0ubGVuZ3RoJywgJzMnKTsgLy8gV2Ugc2hvdWxkIG1hdGNoIGEgZGFu
Z2xpbmcgc2Vjb25kIHN1cnJvZ2F0ZSBhcyAxIGNoYXJhY3RlcgogCiAvLyBUZXN0IGNoYXJhY3Rl
ciBjbGFzc2VzIHdpdGggdW5pY29kZSBjaGFyYWN0ZXJzIHdpdGggYW5kIHdpdGhvdXQgdW5pY29k
ZSBmbGFnCi1zaG91bGRCZSgnIlx1ezFkMzA2fSIubWF0Y2goL1tcdXsxZDMwNn1hXS8pWzBdLmxl
bmd0aCcsICcxJyk7CitzaG91bGRCZSgnIlx1ezFkMzA2fSIubWF0Y2goL1tcdUQ4MzRcdURGMDZh
XS8pWzBdLmxlbmd0aCcsICcxJyk7CiBzaG91bGRCZSgnIlx1ezFkMzA2fSIubWF0Y2goL1thXHV7
MWQzMDZ9XS91KVswXS5sZW5ndGgnLCAnMicpOwogc2hvdWxkQmUoJyJcdXsxZDMwNn0iLm1hdGNo
KC9bXHV7MWQzMDZ9YV0vdSlbMF0ubGVuZ3RoJywgJzInKTsKLXNob3VsZEJlKCciXHV7MWQzMDZ9
Ii5tYXRjaCgvW2EtXHV7MWQzMDZ9XS8pWzBdLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZSgnIlx1
ezFkMzA2fSIubWF0Y2goL1thLVx1RDgzNFx1REYwNl0vKVswXS5sZW5ndGgnLCAnMScpOwogc2hv
dWxkQmUoJyJcdXsxZDMwNn0iLm1hdGNoKC9bYS1cdXsxZDMwNn1dL3UpWzBdLmxlbmd0aCcsICcy
Jyk7CiAKIC8vIFRlc3QgYSBjaGFyYWN0ZXIgY2xhc3MgdGhhdCBpcyBhIHJhbmdlIGZyb20gb25l
IFVURjE2IHRvIGEgVW5pY29kZSBjaGFyYWN0ZXIKQEAgLTYzLDcgKzY0LDcgQEAgc2hvdWxkQmUo
JyJYIi5tYXRjaCgvW1x1MDAyMC1cdWQ4MDFcdWRjNAogc2hvdWxkQmUoJyJcdTEwMDAiLm1hdGNo
KC9bXHUwMDIwLVx1ZDgwMVx1ZGM0Zl0vdSlbMF0ubGVuZ3RoJywgJzEnKTsKIHNob3VsZEJlKCci
XHVkODAxXHVkYzI3Ii5tYXRjaCgvW1x1MDAyMC1cdWQ4MDFcdWRjNGZdL3UpWzBdLmxlbmd0aCcs
ICcyJyk7CiAKLXZhciByZTEgPSBuZXcgUmVnRXhwKCJbXlx1MDAyMC1cdWQ4MDFcdWRjNGZdIiwg
InUiKTsKK3ZhciByZTEgPSBuZXcgUmVnRXhwKCJbXlx1MDAyMC1cdUQ4MDFcdURDNEZdIiwgInUi
KTsKIHNob3VsZEJlRmFsc2UoJ3JlMS50ZXN0KCJaIiknKTsKIHNob3VsZEJlRmFsc2UoJ3JlMS50
ZXN0KCJcdXsxMDAwfSIpJyk7CiBzaG91bGRCZUZhbHNlKCdyZTEudGVzdCgiXHV7MTA0MDB9Iikn
KTsKQEAgLTEzNSw4ICsxMzYsNDQgQEAgc2hvdWxkQmUoJ21hdGNoNlswXScsICciYVx1ezEwNDEy
fVx1ezEwNAogc2hvdWxkQmVVbmRlZmluZWQoJ21hdGNoNlsxXScpOwogc2hvdWxkQmUoJ21hdGNo
NlsyXScsICciXHV7MTA0MTJ9XHV7MTA0MTJ9IicpOwogCi0vLyBNaXNjZWxsYW5lb3VzIHRlc3Rz
CisvLyBDaGVjayB1bmljb2RlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hlcwogc2hvdWxkQmVUcnVl
KCcvXHUxZTlBYmMvdWkudGVzdCgiYWJjIiknKTsKIHNob3VsZEJlVHJ1ZSgnL2FiYy91aS50ZXN0
KCJcdTFlOUFiYyIpJyk7CiBzaG91bGRCZVRydWUoJy90ZXhcdTFlOTcvdWkudGVzdCgidGV4dCIp
Jyk7CiBzaG91bGRCZVRydWUoJy90ZXh0L3VpLnRlc3QoIlx1MWU5N2V4dCIpJyk7CisKKy8vIFZl
cmlmeSB0aGF0IHdpdGhvdXQgdGhlIHVuaWNvZGUgZmxhZywgXHV7fSBkb2Vzbid0IHBhcnNlIHRv
IGEgdW5pY29kZSBlc2NhcGVzLCBidXQgdG8gYSBjb3VudGVkIG1hdGNoIG9mIHRoZSBjaGFyYWN0
ZXIgJ3UnLgorc2hvdWxkQmVUcnVlKCcvXFx1ezF9Ly50ZXN0KCJ1IiknKTsKK3Nob3VsZEJlRmFs
c2UoJy9cXHV7NH0vLnRlc3QoInUiKScpOworc2hvdWxkQmVUcnVlKCcvXFx1ezR9Ly50ZXN0KCJ1
dXV1IiknKTsKKworLy8gQ2hlY2sgdGhhdCBcLSBlc2NhcGUgd29ya3MgaW4gYSBjaGFyYWN0ZXIg
Y2xhc3MgZm9yIGEgdW5pY29kZSBwYXR0ZXJuCitzaG91bGRCZSgnIjgwMC01NTUtMTIxMiIubWF0
Y2goL1swLTlcXC1dKi91KVswXS5sZW5ndGgnLCAnMTInKTsKKworLy8gQ2hlY2sgdGhhdCBjb250
cm9sIGxldHRlciBlc2NhcGVzIHdvcmsgd2l0aCB1bmljb2RlIGZsYWcKK3Nob3VsZEJlKCcidGhp
cyBpcyBiXGJhIHRlc3QiLm1hdGNoKC9pcyBiXFxjaGEgdGVzdC91KVswXS5sZW5ndGgnLCAnMTEn
KTsKKworLy8gQ2hlY2sgdGhhdCBpbnZhbGlkIHVuaWNvZGUgcGF0dGVybnMgdGhyb3cgZXhjZXB0
aW9ucworc2hvdWxkQmUoJ25ldyBSZWdFeHAoIlxcXFwvIiwgInUiKS5zb3VyY2UnLCAnIlxcXFwv
IicpOworc2hvdWxkVGhyb3coJ3IgPSBuZXcgUmVnRXhwKCJcXFxcdXsxMTAwMDB9IiwgInUiKScs
ICciU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBpbnZhbGlkIHVuaWNv
ZGUge30gZXNjYXBlIicpOworCit2YXIgaW52YWxpZEVzY2FwZUV4Y2VwdGlvbiA9ICJTeW50YXhF
cnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgZXNjYXBlZCBjaGFyYWN0
ZXIgZm9yIHVuaWNvZGUgcGF0dGVybiI7Cit2YXIgbmV3UmVnRXhwOworCitmdW5jdGlvbiBzaG91
bGRUaHJvd0ludmFsaWRFc2NhcGUocGF0dGVybikKK3sKKyAgICBuZXdSZWdFeHAgPSAnciA9IG5l
dyBSZWdFeHAoIicgKyBwYXR0ZXJuICsgJyIsICJ1IiknOworCisgICAgc2hvdWxkVGhyb3cobmV3
UmVnRXhwLCAnaW52YWxpZEVzY2FwZUV4Y2VwdGlvbicpOworfQorCitzaG91bGRUaHJvd0ludmFs
aWRFc2NhcGUoIlxcXFwtIik7CitzaG91bGRUaHJvd0ludmFsaWRFc2NhcGUoIlxcXFxhIik7Citz
aG91bGRUaHJvd0ludmFsaWRFc2NhcGUoIltcXFxcYV0iKTsKK3Nob3VsZFRocm93SW52YWxpZEVz
Y2FwZSgiW1xcXFxiXSIpOworc2hvdWxkVGhyb3dJbnZhbGlkRXNjYXBlKCJbXFxcXEJdIik7Citz
aG91bGRUaHJvd0ludmFsaWRFc2NhcGUoIlxcXFx4Iik7CitzaG91bGRUaHJvd0ludmFsaWRFc2Nh
cGUoIltcXFxceF0iKTsKK3Nob3VsZFRocm93SW52YWxpZEVzY2FwZSgiXFxcXHUiKTsKK3Nob3Vs
ZFRocm93SW52YWxpZEVzY2FwZSgiW1xcXFx1XSIpOworCg==
</data>
<flag name="review"
          id="297571"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>