<?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>142382</bug_id>
          
          <creation_ts>2015-03-05 20:29:14 -0800</creation_ts>
          <short_desc>__proto__ shorthand property should not modify prototype in Object Literal construction</short_desc>
          <delta_ts>2020-08-25 11:24:40 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>215769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074819</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-05 20:29:14 -0800</bug_when>
    <thetext>* SUMMARY
__proto__ shorthand property should not modify prototype in Object Literal construction.

&lt;https://kangax.github.io/compat-table/es6/&gt; has a section that __proto__ should not be supported as a shorthand, citing:
&quot;Annex b § __proto__ in object literals&quot;.

{__proto__} should not be equivalent to {__proto__:...}.

Seems to be because:

  PropertyDefinition : IdentifierReference
  ...
  7. Return CreateDataPropertyOrThrow(object, propName, propValue).

And that does not fall under the Annex&apos;s special case handling of __proto__ in literals for grammar rule:

  PropertyDefinition : PropertyName : AssignmentExpression

So we shouldn&apos;t get the special handling.

--

Seems the expected behavior of __proto__ as a shorthand would be the equivalent of a Object.defineProperty(obj, &quot;__proto__&quot;, { value: ... }) which sets the property but doesn&apos;t change the prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074855</commentid>
    <comment_count>1</comment_count>
      <attachid>248045</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-05 23:41:41 -0800</bug_when>
    <thetext>Created attachment 248045
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075051</commentid>
    <comment_count>2</comment_count>
      <attachid>248045</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 12:11:26 -0800</bug_when>
    <thetext>Comment on attachment 248045
[PATCH] Proposed Fix

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

r=me

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:379
&gt; +        generator.emitDirectPutById(newObj, *node.name(), generator.emitNode(node.m_assign), node.putType() == PropertyNode::KnownDirect);

I think it would be slightly clearer to pass through the put type instead of a bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095734</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-05-18 16:31:56 -0700</bug_when>
    <thetext>This landed a while ago: r181179
&lt;http://trac.webkit.org/changeset/181179&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248045</attachid>
            <date>2015-03-05 23:41:41 -0800</date>
            <delta_ts>2015-03-06 12:11:26 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>proo.patch</filename>
            <type>text/plain</type>
            <size>18945</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YTdjYTk5Li5kMWNmYjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTUtMDMt
MDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBfX3By
b3RvX18gc2hvcnRoYW5kIHByb3BlcnR5IHNob3VsZCBub3QgbW9kaWZ5IHByb3RvdHlwZSBpbiBP
YmplY3QgTGl0ZXJhbCBjb25zdHJ1Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICoganMvb2JqZWN0LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVj
dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRl
cmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24uanM6CisgICAgICAgIFVwZGF0ZSB0ZXN0IHRvIGNv
dmVyIHRoZSBfX3Byb3RvX18gc2hvcnRoYW5kIGNhc2Ugd2hpY2ggaXMKKyAgICAgICAgZGlmZmVy
ZW50IGZyb20gbG9uZ2hhbmQgY2FzZS4KKworMjAxNS0wMy0wNSAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQgVGVzdCBGaXg6IFJlbW92
ZSB1bm5lY2Vzc2FyeSByZWZlcmVuY2UgdG8gIndpbmRvdyIgY2F1c2luZyB0ZXN0IGZhaWx1cmUu
CiAKICAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1zaG9ydGhhbmQtY29uc3RydWN0aW9uLWV4
cGVjdGVkLnR4dDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNo
b3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0
LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMmFkNDc1
Yi4uYzQzMjQ4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtc2hv
cnRoYW5kLWNvbnN0cnVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvb2Jq
ZWN0LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTYxLDYg
KzYxLDkgQEAgUEFTUyAoe2dldCA0MigpeyByZXR1cm4gdHJ1ZTsgfX0pWyc0MiddIGlzIHRydWUK
IFBBU1MgISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtzZXQgeCh2YWx1ZSl7fX0s
ICd4Jykuc2V0IGlzIHRydWUKIFBBU1MgISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHtzZXQgJ3gnKHZhbHVlKXt9fSwgJ3gnKS5zZXQgaXMgdHJ1ZQogUEFTUyAhIU9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCA0Mih2YWx1ZSl7fX0sICc0MicpLnNldCBpcyB0cnVl
CitQQVNTIF9fcHJvdG9fXyA9IFtdOyAoe19fcHJvdG9fXzogX19wcm90b19ffSkgaW5zdGFuY2Vv
ZiBBcnJheSBpcyB0cnVlCitQQVNTIF9fcHJvdG9fXyA9IFtdOyAoe19fcHJvdG9fX30pIGluc3Rh
bmNlb2YgQXJyYXkgaXMgZmFsc2UKK1BBU1MgX19wcm90b19fID0gW107ICh7X19wcm90b19ffSku
X19wcm90b19fIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtc2hvcnRoYW5kLWNvbnN0cnVjdGlvbi5qcyBiL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1zaG9ydGhhbmQtY29uc3Ry
dWN0aW9uLmpzCmluZGV4IGNlYTQ4OTYuLmI3ZmI2NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1zaG9ydGhhbmQtY29uc3RydWN0aW9uLmpz
CisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1zaG9ydGhh
bmQtY29uc3RydWN0aW9uLmpzCkBAIC0xMDgsMyArMTA4LDggQEAgc2hvdWxkQmVUcnVlKCIoe2dl
dCA0MigpeyByZXR1cm4gdHJ1ZTsgfX0pWyc0MiddIik7CiBzaG91bGRCZVRydWUoIiEhT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IHgodmFsdWUpe319LCAneCcpLnNldCIpOwog
c2hvdWxkQmVUcnVlKCIhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCAneCco
dmFsdWUpe319LCAneCcpLnNldCIpOwogc2hvdWxkQmVUcnVlKCIhIU9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Ioe3NldCA0Mih2YWx1ZSl7fX0sICc0MicpLnNldCIpOworCisvLyBfX3By
b3RvX18gc2hvcnRoYW5kIHNob3VsZCBiZSBub3QgbW9kaWZ5IHRoZSBwcm90b3R5cGUuCitzaG91
bGRCZVRydWUoIl9fcHJvdG9fXyA9IFtdOyAoe19fcHJvdG9fXzogX19wcm90b19ffSkgaW5zdGFu
Y2VvZiBBcnJheSIpOworc2hvdWxkQmVGYWxzZSgiX19wcm90b19fID0gW107ICh7X19wcm90b19f
fSkgaW5zdGFuY2VvZiBBcnJheSIpOworc2hvdWxkQmVUcnVlKCJfX3Byb3RvX18gPSBbXTsgKHtf
X3Byb3RvX199KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBBcnJheSIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTZkMGUzOC4uNmE1YjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMzQgQEAKIDIwMTUtMDMtMDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAorICAgICAgICBfX3Byb3RvX18gc2hvcnRoYW5kIHByb3BlcnR5IHNob3VsZCBu
b3QgbW9kaWZ5IHByb3RvdHlwZSBpbiBPYmplY3QgTGl0ZXJhbCBjb25zdHJ1Y3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjM4MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcGFyc2luZyBz
aG9ydGhhbmQgcHJvcGVydHkgc3ludGF4IHdlIGtub3cgd2Ugd2lsbCBkbyBhCisgICAgICAgIHB1
dCBkaXJlY3QsIGV2ZW4gaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgX19wcm90b19fLiBQYXNzIHRo
YXQKKyAgICAgICAgaW5mb3JtYXRpb24gdGhyb3VnaCB0byBieXRlY29kZSBnZW5lcmF0aW9uLgor
CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlY3RQdXRCeUlkKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlMaXN0Tm9kZTo6ZW1pdFB1
dENvbnN0YW50UHJvcGVydHkpOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAg
ICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0
eU5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eU5vZGU6OnB1dFR5cGUpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyk6CisgICAgICAgIChKU0M6OlBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hl
Y2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVQcm9wZXJ0eSk6CisK
KzIwMTUtMDMtMDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAg
ICAgICBFUzY6IE9iamVjdCBMaXRlcmFsIEV4dGVuc2lvbnMgLSBTaG9ydGhhbmQgUHJvcGVydGll
cyAoSWRlbnRpZmllcnMpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDIzNTMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA1YjdmOTJhLi4yODkzMTQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcApAQCAtMTQwMiw3ICsxNDAyLDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRQdXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZp
ZXImIHAKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0RGlyZWN0UHV0QnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdERpcmVjdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlLCBib29sIGtub3duRGlyZWN0KQogewogICAg
IHVuc2lnbmVkIHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7CiAKQEAgLTE0
MTgsOSArMTQxOCw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGlyZWN0
UHV0QnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmCiAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoMCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKAotICAgICAgICBw
cm9wZXJ0eSAhPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8KLSAgICAgICAg
JiYgUHJvcGVydHlOYW1lKHByb3BlcnR5KS5hc0luZGV4KCkgPT0gUHJvcGVydHlOYW1lOjpOb3RB
bkluZGV4KTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoa25vd25EaXJlY3QgfHwgKHByb3Bl
cnR5ICE9IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90byAmJiBQcm9wZXJ0eU5h
bWUocHJvcGVydHkpLmFzSW5kZXgoKSA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpKTsKICAg
ICByZXR1cm4gdmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCBmYjA4MzYzLi5hOTM0NDgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oCkBAIC00NzcsNyArNDc3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRHZXRCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFz
ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
R2V0QXJndW1lbnRzTGVuZ3RoKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSk7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXREaXJlY3RQdXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRE
aXJlY3RQdXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
LCBSZWdpc3RlcklEKiB2YWx1ZSwgYm9vbCBrbm93bkRpcmVjdCk7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXREZWxldGVCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29u
c3QgSWRlbnRpZmllciYpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QnlWYWwoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRBcmd1bWVudEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVn
aXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDUwZTY4Zjgu
LjgzMTY3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKQEAgLTM3Niw3ICszNzYsNyBAQCBSZWdpc3RlcklEKiBQcm9wZXJ0
eUxpc3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZQogdm9pZCBQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29uc3RhbnRQcm9wZXJ0eShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBuZXdPYmosIFByb3BlcnR5Tm9k
ZSYgbm9kZSkKIHsKICAgICBpZiAobm9kZS5uYW1lKCkpIHsKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXREaXJlY3RQdXRCeUlkKG5ld09iaiwgKm5vZGUubmFtZSgpLCBnZW5lcmF0b3IuZW1pdE5vZGUo
bm9kZS5tX2Fzc2lnbikpOworICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5SWQobmV3
T2JqLCAqbm9kZS5uYW1lKCksIGdlbmVyYXRvci5lbWl0Tm9kZShub2RlLm1fYXNzaWduKSwgbm9k
ZS5wdXRUeXBlKCkgPT0gUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZSA9IGdlbmVyYXRv
ci5lbWl0Tm9kZShub2RlLm1fZXhwcmVzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvQVNUQnVpbGRlci5oCmluZGV4IGZhNjQ5NTEuLjFiMGRjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0zMTYsNyArMzE2LDcgQEAgcHVibGljOgog
ICAgICAgICBpbmZvLmJvZHktPnNldEluZmVycmVkTmFtZSgqbmFtZSk7CiAgICAgICAgIGluZm8u
Ym9keS0+c2V0RnVuY3Rpb25LZXl3b3JkU3RhcnQoZ2V0T3JTZXRTdGFydE9mZnNldCk7CiAgICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZSgqbmFtZSwgbmV3ICht
X3BhcnNlckFyZW5hKSBGdW5jRXhwck5vZGUobG9jYXRpb24sIG1fdm0tPnByb3BlcnR5TmFtZXMt
Pm51bGxJZGVudGlmaWVyLAotICAgICAgICAgICAgaW5mby5ib2R5LCBtX3NvdXJjZUNvZGUtPnN1
YkV4cHJlc3Npb24oaW5mby5vcGVuQnJhY2VPZmZzZXQsIGluZm8uY2xvc2VCcmFjZU9mZnNldCwg
aW5mby5ib2R5U3RhcnRMaW5lLCBpbmZvLmJvZHlTdGFydENvbHVtbiksIGluZm8ucGFyYW1ldGVy
cyksIHR5cGUpOworICAgICAgICAgICAgaW5mby5ib2R5LCBtX3NvdXJjZUNvZGUtPnN1YkV4cHJl
c3Npb24oaW5mby5vcGVuQnJhY2VPZmZzZXQsIGluZm8uY2xvc2VCcmFjZU9mZnNldCwgaW5mby5i
b2R5U3RhcnRMaW5lLCBpbmZvLmJvZHlTdGFydENvbHVtbiksIGluZm8ucGFyYW1ldGVycyksIHR5
cGUsIFByb3BlcnR5Tm9kZTo6VW5rbm93bik7CiAgICAgfQogICAgIAogICAgIE5FVkVSX0lOTElO
RSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoVk0qIHZtLCBQYXJz
ZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFBy
b3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sLCBkb3VibGUgbmFtZSwgY29uc3QgUGFyc2VyRnVu
Y3Rpb25JbmZvPEFTVEJ1aWxkZXI+JiBpbmZvLCB1bnNpZ25lZCBnZXRPclNldFN0YXJ0T2Zmc2V0
KQpAQCAtMzI1LDcgKzMyNSw3IEBAIHB1YmxpYzoKICAgICAgICAgaW5mby5ib2R5LT5zZXRGdW5j
dGlvbktleXdvcmRTdGFydChnZXRPclNldFN0YXJ0T2Zmc2V0KTsKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQgPSBwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJp
Y0lkZW50aWZpZXIodm0sIG5hbWUpOwogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5h
KSBQcm9wZXJ0eU5vZGUoaWRlbnQsIG5ldyAobV9wYXJzZXJBcmVuYSkgRnVuY0V4cHJOb2RlKGxv
Y2F0aW9uLCB2bS0+cHJvcGVydHlOYW1lcy0+bnVsbElkZW50aWZpZXIsCi0gICAgICAgICAgICBp
bmZvLmJvZHksIG1fc291cmNlQ29kZS0+c3ViRXhwcmVzc2lvbihpbmZvLm9wZW5CcmFjZU9mZnNl
dCwgaW5mby5jbG9zZUJyYWNlT2Zmc2V0LCBpbmZvLmJvZHlTdGFydExpbmUsIGluZm8uYm9keVN0
YXJ0Q29sdW1uKSwgaW5mby5wYXJhbWV0ZXJzKSwgdHlwZSk7CisgICAgICAgICAgICBpbmZvLmJv
ZHksIG1fc291cmNlQ29kZS0+c3ViRXhwcmVzc2lvbihpbmZvLm9wZW5CcmFjZU9mZnNldCwgaW5m
by5jbG9zZUJyYWNlT2Zmc2V0LCBpbmZvLmJvZHlTdGFydExpbmUsIGluZm8uYm9keVN0YXJ0Q29s
dW1uKSwgaW5mby5wYXJhbWV0ZXJzKSwgdHlwZSwgUHJvcGVydHlOb2RlOjpVbmtub3duKTsKICAg
ICB9CiAKICAgICBBcmd1bWVudHNOb2RlKiBjcmVhdGVBcmd1bWVudHMoKSB7IHJldHVybiBuZXcg
KG1fcGFyc2VyQXJlbmEpIEFyZ3VtZW50c05vZGUoKTsgfQpAQCAtMzMzLDE3ICszMzMsMTcgQEAg
cHVibGljOgogICAgIEFyZ3VtZW50TGlzdE5vZGUqIGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGFyZykgeyByZXR1cm4g
bmV3IChtX3BhcnNlckFyZW5hKSBBcmd1bWVudExpc3ROb2RlKGxvY2F0aW9uLCBhcmcpOyB9CiAg
ICAgQXJndW1lbnRMaXN0Tm9kZSogY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBBcmd1bWVudExpc3ROb2RlKiBhcmdzLCBFeHByZXNzaW9uTm9kZSog
YXJnKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFyZ3VtZW50TGlzdE5vZGUobG9jYXRp
b24sIGFyZ3MsIGFyZyk7IH0KIAotICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoY29u
c3QgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVy
dHlOb2RlOjpUeXBlIHR5cGUsIGJvb2wpCisgICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0
eShjb25zdCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQ
cm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJv
b2wpCiAgICAgewogICAgICAgICBpZiAobm9kZS0+aXNGdW5jRXhwck5vZGUoKSkKICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PEZ1bmNFeHByTm9kZSo+KG5vZGUpLT5ib2R5KCktPnNldEluZmVycmVk
TmFtZSgqcHJvcGVydHlOYW1lKTsKLSAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkg
UHJvcGVydHlOb2RlKCpwcm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUpOworICAgICAgICByZXR1cm4g
bmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUoKnByb3BlcnR5TmFtZSwgbm9kZSwgdHlw
ZSwgcHV0VHlwZSk7CiAgICAgfQotICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoVk0q
IHZtLCBQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGRvdWJsZSBwcm9wZXJ0eU5hbWUsIEV4cHJl
c3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCkKKyAgICBQcm9w
ZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5h
LCBkb3VibGUgcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVydHlOb2Rl
OjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBwdXRUeXBlLCBib29sKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHBhcnNlckFy
ZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2bSwgcHJvcGVydHlO
YW1lKSwgbm9kZSwgdHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFBy
b3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50
aWZpZXIodm0sIHByb3BlcnR5TmFtZSksIG5vZGUsIHR5cGUsIHB1dFR5cGUpOwogICAgIH0KLSAg
ICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5h
bWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCkg
eyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVydHlOYW1lLCBu
b2RlLCB0eXBlKTsgfQorICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoRXhwcmVzc2lv
bk5vZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6
VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSwgYm9vbCkgeyByZXR1cm4g
bmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVydHlOYW1lLCBub2RlLCB0eXBl
LCBwdXRUeXBlKTsgfQogICAgIFByb3BlcnR5TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5KSB7
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHBy
b3BlcnR5KTsgfQogICAgIFByb3BlcnR5TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25z
dCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5LCBQcm9w
ZXJ0eUxpc3ROb2RlKiB0YWlsKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5
TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5LCB0YWlsKTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4IDEyZTNkNGQuLmI0ZDli
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9y
cy5oCkBAIC0xNTksMTggKzE1OSwyMCBAQCBpbmxpbmUgUmVzb2x2ZU5vZGU6OlJlc29sdmVOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZQogICAgIHsK
ICAgICB9CiAKLSAgICBpbmxpbmUgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUoY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgRXhwcmVzc2lvbk5vZGUqIGFzc2lnbiwgVHlwZSB0eXBlKQorICAgIGlu
bGluZSBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBF
eHByZXNzaW9uTm9kZSogYXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSkKICAgICAg
ICAgOiBtX25hbWUoJm5hbWUpCiAgICAgICAgICwgbV9hc3NpZ24oYXNzaWduKQogICAgICAgICAs
IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBlKQogICAgIHsKICAgICB9
CiAKLSAgICBpbmxpbmUgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUq
IG5hbWUsIEV4cHJlc3Npb25Ob2RlKiBhc3NpZ24sIFR5cGUgdHlwZSkKKyAgICBpbmxpbmUgUHJv
cGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIG5hbWUsIEV4cHJlc3Npb25O
b2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlKQogICAgICAgICA6IG1fbmFt
ZSgwKQogICAgICAgICAsIG1fZXhwcmVzc2lvbihuYW1lKQogICAgICAgICAsIG1fYXNzaWduKGFz
c2lnbikKICAgICAgICAgLCBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX3B1dFR5cGUocHV0VHlw
ZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXgg
MzBlZGIwYS4uOTgzMTljNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
NDk5LDE0ICs0OTksMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgUHJvcGVydHlOb2Rl
IDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewogICAgIHB1YmxpYzoKICAgICAgICAgZW51
bSBUeXBlIHsgQ29uc3RhbnQgPSAxLCBHZXR0ZXIgPSAyLCBTZXR0ZXIgPSA0IH07CisgICAgICAg
IGVudW0gUHV0VHlwZSB7IFVua25vd24sIEtub3duRGlyZWN0IH07CiAKLSAgICAgICAgUHJvcGVy
dHlOb2RlKGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSosIFR5cGUpOwotICAgICAg
ICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5v
ZGUqLCBUeXBlKTsKKyAgICAgICAgUHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImLCBFeHBy
ZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUpOworICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVz
c2lvbk5vZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlKTsK
ICAgICAgICAgCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQogICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAKICAgICAgICAgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlOyB9CisgICAgICAgIFB1dFR5cGUgcHV0VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHV0VHlwZTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFBy
b3BlcnR5TGlzdE5vZGU7CkBAIC01MTQsNiArNTE2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHJlc3Npb247CiAgICAgICAgIEV4cHJlc3Npb25Ob2Rl
KiBtX2Fzc2lnbjsKICAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIFB1dFR5cGUgbV9wdXRU
eXBlOwogICAgIH07CiAKICAgICBjbGFzcyBQcm9wZXJ0eUxpc3ROb2RlIDogcHVibGljIEV4cHJl
c3Npb25Ob2RlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCBm
NDkxZWE2Li5mZmUyMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CkBAIC0xNTIyLDcgKzE1MjIsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVD
bGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MoVAogICAgICAgICAg
ICAgLy8gRklYTUU6IFN5bnRheCBlcnJvciB3aGVuIHN1cGVyKCkgaXMgY2FsbGVkCiAgICAgICAg
ICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoaXNTdGF0aWNNZXRob2QgJiYgKm1ldGhvZEluZm8ubmFt
ZSA9PSBwcm9wZXJ0eU5hbWVzLnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAiQ2Fubm90IGRl
Y2xhcmUgYSBzdGF0aWMgbWV0aG9kIG5hbWVkICdwcm90b3R5cGUnIik7Ci0gICAgICAgICAgICBw
cm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHkobWV0aG9kSW5mby5uYW1lLCBtZXRob2Qs
IFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzKTsKKyAgICAg
ICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShtZXRob2RJbmZvLm5hbWUs
IG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBh
bHdheXNTdHJpY3RJbnNpZGVDbGFzcyk7CiAgICAgICAgIH0KIAogICAgICAgICBUcmVlUHJvcGVy
dHlMaXN0JiB0YWlsID0gaXNTdGF0aWNNZXRob2QgPyBzdGF0aWNNZXRob2RzVGFpbCA6IGluc3Rh
bmNlTWV0aG9kc1RhaWw7CkBAIC0xOTMzLDcgKzE5MzMsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eShU
cmVlQgogICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IHBhcnNlQXNzaWdubWVudEV4
cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fubm90
IHBhcnNlIGV4cHJlc3Npb24gZm9yIHByb3BlcnR5IGRlY2xhcmF0aW9uIik7CiAgICAgICAgICAg
ICBjb250ZXh0LnNldEVuZE9mZnNldChub2RlLCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoaWRlbnQsIG5vZGUsIFBy
b3BlcnR5Tm9kZTo6Q29uc3RhbnQsIGNvbXBsZXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQ
cm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKICAgICAgICAgfQogCiAgICAgICAgIGZh
aWxJZkZhbHNlKHdhc0lkZW50LCAiRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBhcyBwcm9wZXJ0eSBu
YW1lIik7CkBAIC0xOTQzLDcgKzE5NDMsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVQcm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eShUcmVlQgogICAg
ICAgICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAg
ICAgICAgICBjdXJyZW50U2NvcGUoKS0+dXNlVmFyaWFibGUoaWRlbnQsIG1fdm0tPnByb3BlcnR5
TmFtZXMtPmV2YWwgPT0gKmlkZW50KTsKICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5vZGUg
PSBjb250ZXh0LmNyZWF0ZVJlc29sdmUobG9jYXRpb24sIGlkZW50LCBzdGFydCk7Ci0gICAgICAg
ICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShpZGVudCwgbm9kZSwgUHJvcGVydHlO
b2RlOjpDb25zdGFudCwgY29tcGxldGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlUHJvcGVydHkoaWRlbnQsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5
Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRlKTsKICAgICAgICAgfQogCiAgICAgICAgIFByb3Bl
cnR5Tm9kZTo6VHlwZSB0eXBlOwpAQCAtMTk2Myw3ICsxOTYzLDcgQEAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVy
dHkoVHJlZUIKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IHBhcnNlQXNzaWdubWVudEV4
cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKG5vZGUsICJDYW5ub3QgcGFy
c2UgZXhwcmVzc2lvbiBmb3IgcHJvcGVydHkgZGVjbGFyYXRpb24iKTsKICAgICAgICAgY29udGV4
dC5zZXRFbmRPZmZzZXQobm9kZSwgbV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKLSAgICAgICAg
cmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX3Bh
cnNlckFyZW5hLCBwcm9wZXJ0eU5hbWUsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIGNv
bXBsZXRlKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29uc3RfY2Fz
dDxWTSo+KG1fdm0pLCBtX3BhcnNlckFyZW5hLCBwcm9wZXJ0eU5hbWUsIG5vZGUsIFByb3BlcnR5
Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgY29tcGxldGUpOwogICAgIH0K
ICAgICBjYXNlIE9QRU5CUkFDS0VUOiB7CiAgICAgICAgIG5leHQoKTsKQEAgLTE5NzUsNyArMTk3
NSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5v
ZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwogICAgICAgICBmYWlsSWZG
YWxzZShub2RlLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gZm9yIHByb3BlcnR5IGRlY2xhcmF0
aW9uIik7CiAgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KG5vZGUsIG1fbGV4ZXItPmN1cnJl
bnRPZmZzZXQoKSk7Ci0gICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KHByb3Bl
cnR5TmFtZSwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgY29tcGxldGUpOworICAgICAg
ICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIG5vZGUsIFByb3Bl
cnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgY29tcGxldGUpOwogICAg
IH0KICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsSWZGYWxzZShtX3Rva2VuLm1fdHlwZSAmIEtl
eXdvcmRUb2tlbkZsYWcsICJFeHBlY3RlZCBhIHByb3BlcnR5IG5hbWUiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggNTg4NGZiMjguLjQ0MWQz
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCkBA
IC0xNzUsMjAgKzE3NSwyMCBAQCBwdWJsaWM6CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlU3By
ZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uVHlwZSwgaW50
LCBpbnQsIGludCkgeyByZXR1cm4gU3ByZWFkRXhwcjsgfQogICAgIGludCBjcmVhdGVBcmd1bWVu
dHNMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1cm4gQXJndW1lbnRzTGlz
dFJlc3VsdDsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGludCwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9Ci0gICAgUHJv
cGVydHkgY3JlYXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciogbmFtZSwgaW50LCBQcm9wZXJ0
eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCBjb21wbGV0ZSkKKyAgICBQcm9wZXJ0eSBjcmVhdGVQcm9w
ZXJ0eShjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBl
LCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUpCiAgICAgewogICAgICAgICBp
ZiAoIWNvbXBsZXRlKQogICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5KHR5cGUpOwogICAgICAg
ICBBU1NFUlQobmFtZSk7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0eShuYW1lLCB0eXBlKTsKICAg
ICB9Ci0gICAgUHJvcGVydHkgY3JlYXRlUHJvcGVydHkoVk0qIHZtLCBQYXJzZXJBcmVuYSYgcGFy
c2VyQXJlbmEsIGRvdWJsZSBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29s
IGNvbXBsZXRlKQorICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJl
bmEmIHBhcnNlckFyZW5hLCBkb3VibGUgbmFtZSwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlw
ZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sIGNvbXBsZXRlKQogICAgIHsKICAgICAgICAg
aWYgKCFjb21wbGV0ZSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eSh0eXBlKTsKICAgICAg
ICAgcmV0dXJuIFByb3BlcnR5KCZwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVt
ZXJpY0lkZW50aWZpZXIodm0sIG5hbWUpLCB0eXBlKTsKICAgICB9Ci0gICAgUHJvcGVydHkgY3Jl
YXRlUHJvcGVydHkoaW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sKQorICAg
IFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGludCwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlw
ZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sKQogICAgIHsKICAgICAgICAgcmV0dXJuIFBy
b3BlcnR5KHR5cGUpOwogICAgIH0K
</data>
<flag name="review"
          id="272963"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="272964"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>