<?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>147307</bug_id>
          
          <creation_ts>2015-07-25 23:28:12 -0700</creation_ts>
          <short_desc>[ES6] Implement Reflect.ownKeys</short_desc>
          <delta_ts>2015-07-26 14:12:54 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112295</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-25 23:28:12 -0700</bug_when>
    <thetext>[ES6] Implement Reflect.ownKeys</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112296</commentid>
    <comment_count>1</comment_count>
      <attachid>257533</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-25 23:31:26 -0700</bug_when>
    <thetext>Created attachment 257533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112299</commentid>
    <comment_count>2</comment_count>
      <attachid>257534</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-25 23:35:33 -0700</bug_when>
    <thetext>Created attachment 257534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112315</commentid>
    <comment_count>3</comment_count>
      <attachid>257534</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-07-26 12:26:28 -0700</bug_when>
    <thetext>Comment on attachment 257534
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:280
&gt; +    return JSValue::encode(ownPropertyKeys(exec, object, PropertyNameMode::Both, DontEnumPropertiesMode::Exclude));

It&apos;s not new in this patch, but I find the name PropertyNameMode::Both confusing since when I am reading it, I don&apos;t know what Both applies to.  Perhaps an explicit StringsAndSymbols would be better.  But again, has nothing to do with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112321</commentid>
    <comment_count>4</comment_count>
      <attachid>257534</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-26 13:56:00 -0700</bug_when>
    <thetext>Comment on attachment 257534
Patch

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

Thanks for your review!

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:280
&gt;&gt; +    return JSValue::encode(ownPropertyKeys(exec, object, PropertyNameMode::Both, DontEnumPropertiesMode::Exclude));
&gt; 
&gt; It&apos;s not new in this patch, but I find the name PropertyNameMode::Both confusing since when I am reading it, I don&apos;t know what Both applies to.  Perhaps an explicit StringsAndSymbols would be better.  But again, has nothing to do with this patch.

Make sense. I&apos;ll open the issue to rename PropertyNameMode::Both to PropertyNameMode::StringsAndSymbols!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112323</commentid>
    <comment_count>5</comment_count>
      <attachid>257534</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-26 14:00:56 -0700</bug_when>
    <thetext>Comment on attachment 257534
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:280
&gt;&gt;&gt; +    return JSValue::encode(ownPropertyKeys(exec, object, PropertyNameMode::Both, DontEnumPropertiesMode::Exclude));
&gt;&gt; 
&gt;&gt; It&apos;s not new in this patch, but I find the name PropertyNameMode::Both confusing since when I am reading it, I don&apos;t know what Both applies to.  Perhaps an explicit StringsAndSymbols would be better.  But again, has nothing to do with this patch.
&gt; 
&gt; Make sense. I&apos;ll open the issue to rename PropertyNameMode::Both to PropertyNameMode::StringsAndSymbols!

Opened the issue to fix it.
https://bugs.webkit.org/show_bug.cgi?id=147311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112324</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-26 14:03:47 -0700</bug_when>
    <thetext>Committed r187408: &lt;http://trac.webkit.org/changeset/187408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112325</commentid>
    <comment_count>7</comment_count>
      <attachid>257534</attachid>
    <who name="">mitz</who>
    <bug_when>2015-07-26 14:07:35 -0700</bug_when>
    <thetext>Comment on attachment 257534
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:629
&gt; +            ASSERT(!identifier.isSymbol());

This statement here broke the Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112326</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-26 14:12:13 -0700</bug_when>
    <thetext>Committed r187409: &lt;http://trac.webkit.org/changeset/187409&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112327</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-26 14:12:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 257534 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257534&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:629
&gt; &gt; +            ASSERT(!identifier.isSymbol());
&gt; 
&gt; This statement here broke the Debug build.

Thanks, I&apos;ve fixed it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257533</attachid>
            <date>2015-07-25 23:31:26 -0700</date>
            <delta_ts>2015-07-25 23:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147307-20150725233007.patch</filename>
            <type>text/plain</type>
            <size>12241</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MzRkZmU3MTY4YWQ1Njg5OTZkNzk2ZDAxY2MwYWQxNDdiYjRhNmVjLi40YTI5ZWNlOTk4OGIwMTA2
ZTU4NDM0MWFmY2FiNTI2MzUyOWViMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMSBAQAorMjAxNS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgUmVmbGVjdC5vd25LZXlzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDczMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgUmVmbGVjdC5vd25LZXlzLgorICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSByZWZhY3Rv
ciB0aGUgZXhpc3RpbmcgY29kZSB0byBsaXN0IHVwIG93biBrZXlzIGluIHRoZSBvYmplY3QuCisg
ICAgICAgIFN1Y2ggY29kZSBpcyB1c2VkIGJ5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLCBP
YmplY3QuZ2V0T3duUHJvcGVydHlLZXlzLCBPYmplY3Qua2V5cyBhbmQgQG93bkVudW1lcmFibGVL
ZXlzLgorICAgICAgICBXZSBmYWN0b3Igb3V0IHRoZSBsaXN0aW5nIHVwIG93biBrZXlzIGFzIG93
blByb3BlcnR5S2V5cyBmdW5jdGlvbiBhbmQgYWxzbyB1c2UgaXQgaW4gUmVmbGVjdC5vd25LZXlz
LgorCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6
Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKToKKyAgICAgICAgKEpTQzo6
b2JqZWN0Q29uc3RydWN0b3JLZXlzKToKKyAgICAgICAgKEpTQzo6b3duRW51bWVyYWJsZVByb3Bl
cnR5S2V5cyk6CisgICAgICAgIChKU0M6Om93blByb3BlcnR5S2V5cyk6CisgICAgICAgICogcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RPd25LZXlzKToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvcmVmbGVjdC1vd24ta2V5cy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChzaG91bGRCZUFycmF5KToKKwog
MjAxNS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbRVM2XSBBZGQgUmVmbGVjdCBuYW1lc3BhY2UgYW5kIGFkZCBSZWZsZWN0LmRlbGV0ZVBy
b3BlcnR5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDcyODcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IGQ1M2Y2NTI3MjBjNTU1OWIwM2IzNmVhZGJlYTVhMjIwZmUyZjcy
ZTAuLmQ5ZTg0ZmIwZTJlYTk3ZWZiZjMyYzM1OWNjMmY0MGI1MzFlMTU0ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTI1MSwxMyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGUKICAgICBKU09iamVjdCog
b2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9PYmplY3QoZXhlYyk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgp
KTsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MpOwotICAgIG9iamVjdC0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPmdldE93
blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUo
RG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwotICAgIEpTQXJyYXkqIG5hbWVzID0g
Y29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwKTsKLSAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9
IHByb3BlcnRpZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVy
dGllczsgaSsrKQotICAgICAgICBuYW1lcy0+cHVzaChleGVjLCBqc093bmVkU3RyaW5nKGV4ZWMs
IHByb3BlcnRpZXNbaV0uc3RyaW5nKCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG5h
bWVzKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBv
YmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6
OkluY2x1ZGUpKTsKIH0KIAogLy8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUuCkBA
IC0yNjYsMTYgKzI2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoRXhlY1N0YXRlKiBlCiAgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvT2JqZWN0KGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVN
b2RlOjpTeW1ib2xzKTsKLSAgICBvYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRP
d25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2Rl
KERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKLSAgICBKU0FycmF5KiBuYW1lcyA9
IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCk7Ci0gICAgc2l6ZV90IG51bVByb3BlcnRpZXMg
PSBwcm9wZXJ0aWVzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3Bl
cnRpZXM7IGkrKykgewotICAgICAgICBhdXRvIGltcGwgPSBwcm9wZXJ0aWVzW2ldLmltcGwoKTsK
LSAgICAgICAgaWYgKGltcGwtPmlzU3ltYm9sKCkgJiYgIWV4ZWMtPnByb3BlcnR5TmFtZXMoKS5p
c1ByaXZhdGVOYW1lKCppbXBsKSkKLSAgICAgICAgICAgIG5hbWVzLT5wdXNoKGV4ZWMsIFN5bWJv
bDo6Y3JlYXRlKGV4ZWMtPnZtKCksIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaW1wbCkpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShuYW1lcyk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZXhlYywgb2JqZWN0LCBQcm9wZXJ0eU5hbWVN
b2RlOjpTeW1ib2xzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CiB9CiAKIC8v
IEZJWE1FOiBVc2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgpAQCAtMjg0LDEzICsyNjksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yS2V5cyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvT2Jq
ZWN0KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVy
dGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKLSAgICBvYmplY3QtPm1ldGhv
ZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJv
cGVydGllcywgRW51bWVyYXRpb25Nb2RlKCkpOwotICAgIEpTQXJyYXkqIGtleXMgPSBjb25zdHJ1
Y3RFbXB0eUFycmF5KGV4ZWMsIDApOwotICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspCi0gICAgICAgIGtleXMtPnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0
aWVzW2ldLnN0cmluZygpKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShrZXlzKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBvYmplY3QsIFBy
b3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvd25FbnVtZXJhYmxlUHJvcGVy
dHlLZXlzKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI5OCwyNiArMjc3LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBKU09iamVjdCogb2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9PYmplY3QoZXhl
Yyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4
ZWMsIFByb3BlcnR5TmFtZU1vZGU6OkJvdGgpOwotICAgIG9iamVjdC0+bWV0aG9kVGFibGUoZXhl
Yy0+dm0oKSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBF
bnVtZXJhdGlvbk1vZGUoKSk7Ci0KLSAgICBKU0FycmF5KiBrZXlzID0gY29uc3RydWN0RW1wdHlB
cnJheShleGVjLCAwKTsKLSAgICBWZWN0b3I8SWRlbnRpZmllciwgMTY+IHByb3BlcnR5U3ltYm9s
czsKLSAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7Ci0gICAgICAgIGNvbnN0
IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOwotICAgICAgICBpZiAoaWRlbnRpZmll
ci5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWV4ZWMtPnByb3BlcnR5TmFtZXMoKS5p
c1ByaXZhdGVOYW1lKGlkZW50aWZpZXIpKQotICAgICAgICAgICAgICAgIHByb3BlcnR5U3ltYm9s
cy5hcHBlbmQoaWRlbnRpZmllcik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAga2V5cy0+
cHVzaChleGVjLCBqc093bmVkU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKLSAg
ICB9Ci0KLSAgICAvLyBUbyBlbnN1cmUgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIHNwZWMgKDku
MS4xMiksIHdlIGFwcGVuZCBzeW1ib2xzIGF0IHRoZSBsYXN0IGVsZW1lbnRzIG9mIGtleXMuCi0g
ICAgZm9yIChjb25zdCBhdXRvJiBpZGVudGlmaWVyIDogcHJvcGVydHlTeW1ib2xzKQotICAgICAg
ICBrZXlzLT5wdXNoKGV4ZWMsIFN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksIHN0YXRpY19jYXN0
PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGtleXMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUob3duUHJvcGVydHlL
ZXlzKGV4ZWMsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6Qm90aCwgRG9udEVudW1Qcm9wZXJ0
aWVzTW9kZTo6RXhjbHVkZSkpOwogfQogCiAvLyBFUzUgOC4xMC41IFRvUHJvcGVydHlEZXNjcmlw
dG9yCkBAIC02NTQsNCArNjE0LDU3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0Q29uc3RydWN0b3JJcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oc2FtZVZhbHVlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5h
cmd1bWVudCgxKSkpKTsKIH0KIAorLy8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUu
CitKU0FycmF5KiBvd25Qcm9wZXJ0eUtleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2Jq
ZWN0LCBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUsIERvbnRFbnVtUHJvcGVydGll
c01vZGUgZG9udEVudW1Qcm9wZXJ0aWVzTW9kZSkKK3sKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBw
cm9wZXJ0aWVzKGV4ZWMsIHByb3BlcnR5TmFtZU1vZGUpOworICAgIG9iamVjdC0+bWV0aG9kVGFi
bGUoZXhlYy0+dm0oKSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0
aWVzLCBFbnVtZXJhdGlvbk1vZGUoZG9udEVudW1Qcm9wZXJ0aWVzTW9kZSkpOworCisgICAgSlNB
cnJheSoga2V5cyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCk7CisKKyAgICBzd2l0Y2gg
KHByb3BlcnR5TmFtZU1vZGUpIHsKKyAgICBjYXNlIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3M6
IHsKKyAgICAgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNpemUoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKKyAgICAg
ICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1N5bWJvbCgpKTsKKyAgICAgICAgICAgIGtleXMt
PnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0aWVzW2ldLnN0cmluZygpKSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGtleXM7CisgICAgfQorCisgICAgY2FzZSBQcm9w
ZXJ0eU5hbWVNb2RlOjpTeW1ib2xzOiB7CisgICAgICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0g
cHJvcGVydGllcy5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJv
cGVydGllczsgaSsrKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJv
cGVydGllc1tpXTsKKyAgICAgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzU3ltYm9sKCkpOwor
ICAgICAgICAgICAgaWYgKCFleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNQcml2YXRlTmFtZShpZGVu
dGlmaWVyKSkKKyAgICAgICAgICAgICAgICBrZXlzLT5wdXNoKGV4ZWMsIFN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkp
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGtleXM7CisgICAgfQorCisgICAgY2FzZSBQ
cm9wZXJ0eU5hbWVNb2RlOjpCb3RoOiB7CisgICAgICAgIFZlY3RvcjxJZGVudGlmaWVyLCAxNj4g
cHJvcGVydHlTeW1ib2xzOworICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRp
ZXMuc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7
IGkrKykgeworICAgICAgICAgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNb
aV07CisgICAgICAgICAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNQcml2YXRlTmFtZShpZGVudGlmaWVy
KSkKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTeW1ib2xzLmFwcGVuZChpZGVudGlmaWVy
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGtleXMtPnB1c2goZXhlYywg
anNPd25lZFN0cmluZyhleGVjLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBUbyBlbnN1cmUgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIHNwZWMgKDkuMS4x
MiksIHdlIGFwcGVuZCBzeW1ib2xzIGF0IHRoZSBsYXN0IGVsZW1lbnRzIG9mIGtleXMuCisgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgaWRlbnRpZmllciA6IHByb3BlcnR5U3ltYm9scykKKyAgICAg
ICAgICAgIGtleXMtPnB1c2goZXhlYywgU3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgc3RhdGlj
X2Nhc3Q8U3ltYm9sSW1wbCY+KCppZGVudGlmaWVyLmltcGwoKSkpKTsKKworICAgICAgICByZXR1
cm4ga2V5czsKKyAgICB9CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMmFhMmM5ZWMw
MDRjMDE0OWEyMmY4ZWM1YWE4MzQyZmUzODc1ZGQ3OS4uNzllYzYxOTZhMmYxNTMyMzAzN2ZjNWYw
N2FmMTYyMDdmNGM1NDljMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC05MSw2ICs5MSw3IEBAIGlubGluZSBKU09iamVjdCog
Y29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogfQogCiBKU09iamVjdCogb2Jq
ZWN0Q29uc3RydWN0b3JGcmVlemUoRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKK0pTQXJyYXkqIG93
blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIFByb3BlcnR5TmFtZU1vZGUsIERv
bnRFbnVtUHJvcGVydGllc01vZGUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAppbmRleCA4ZTEzZDY3
MTAzNTA0YjM3ODg1NTkxZDkwM2NjYzg5YmQ5ZDAxMmQ1Li43Zjc3NGU4NDc3NmU0MmNkYmFiYWQ5
YmQ3OTU5Y2U3MTQxMGNjMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWZsZWN0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWZsZWN0T2JqZWN0LmNwcApAQCAtMjgsNiArMjgsMTMgQEAKIAogI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rv
ci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVmbGVjdE9iamVjdE93bktleXMoRXhlY1N0YXRlKik7CisKK30KIAogI2luY2x1ZGUg
IlJlZmxlY3RPYmplY3QubHV0LmgiCiAKQEAgLTM5LDcgKzQ2LDggQEAgY29uc3QgQ2xhc3NJbmZv
IFJlZmxlY3RPYmplY3Q6OnNfaW5mbyA9IHsgIlJlZmxlY3QiLCAmQmFzZTo6c19pbmZvLCAmcmVm
bGVjdE9iamUKIAogLyogU291cmNlIGZvciBSZWZsZWN0T2JqZWN0Lmx1dC5oCiBAYmVnaW4gcmVm
bGVjdE9iamVjdFRhYmxlCi0gICAgZGVsZXRlUHJvcGVydHkgIHJlZmxlY3RPYmplY3RHZXQgRG9u
dEVudW18RnVuY3Rpb24gMgorICAgIGRlbGV0ZVByb3BlcnR5ICByZWZsZWN0T2JqZWN0RGVsZXRl
UHJvcGVydHkgRG9udEVudW18RnVuY3Rpb24gMgorICAgIG93bktleXMgICAgICAgICByZWZsZWN0
T2JqZWN0T3duS2V5cyAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogQGVuZAogKi8KIApAQCAt
NjEsNCArNjksMTIgQEAgYm9vbCBSZWZsZWN0T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXIKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RPd25LZXlz
KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMtPmFyZ3VtZW50
KDApOworICAgIGlmICghdGFyZ2V0LmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZWZsZWN0Lm93bktl
eXMgcmVxdWlyZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGJlIGEgb2JqZWN0IikpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBqc0Nhc3Q8SlNPYmplY3Qq
Pih0YXJnZXQpLCBQcm9wZXJ0eU5hbWVNb2RlOjpCb3RoLCBEb250RW51bVByb3BlcnRpZXNNb2Rl
OjpJbmNsdWRlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWZsZWN0LW93bi1rZXlzLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWZsZWN0LW93bi1rZXlzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ4MDJjODhkNDU3MjhkMDdmMGFjZmYzMzk0MzJlZmE4ZTU4MjY2YWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlZmxlY3Qtb3duLWtl
eXMuanMKQEAgLTAsMCArMSw0NiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1
bmMsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAg
IGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9Cisg
ICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJub3QgdGhyb3duLiIpOwor
ICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworfQorCitmdW5jdGlvbiBzaG91bGRC
ZUFycmF5KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZShhY3R1YWwubGVuZ3RoLCBl
eHBlY3RlZC5sZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNob3VsZEJlKGFjdHVhbFtpXSwg
ZXhwZWN0ZWRbaV0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIHByaW50KEpT
T04uc3RyaW5naWZ5KGFjdHVhbCkpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworc2hvdWxkQmUoUmVmbGVjdC5vd25LZXlzLmxlbmd0aCwgMSk7CisKK3Nob3Vs
ZFRocm93KCgpID0+IHsKKyAgICBSZWZsZWN0Lm93bktleXMoImhlbGxvIik7Cit9LCBgVHlwZUVy
cm9yOiBSZWZsZWN0Lm93bktleXMgcmVxdWlyZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGJlIGEgb2Jq
ZWN0YCk7CisKK3ZhciBjb2NvYSA9IFN5bWJvbCgiQ29jb2EiKTsKK3ZhciBjYXBwdWNjaW5vID0g
U3ltYm9sKCJDYXBwdWNjaW5vIik7CisKK3Nob3VsZEJlQXJyYXkoUmVmbGVjdC5vd25LZXlzKHt9
KSwgW10pOworc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoezQyOjQyfSksIFsnNDInXSk7
CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7MDowLDE6MSwyOjJ9KSwgWycwJywnMScs
JzInXSk7CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7MDowLDE6MSwyOjIsaGVsbG86
NDJ9KSwgWycwJywnMScsJzInLCdoZWxsbyddKTsKK3Nob3VsZEJlQXJyYXkoUmVmbGVjdC5vd25L
ZXlzKHtoZWxsbzo0MiwwOjAsMToxLDI6Mix3b3JsZDo0Mn0pLCBbJzAnLCcxJywnMicsJ2hlbGxv
Jywnd29ybGQnXSk7CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7W2NvY29hXTo0Mixo
ZWxsbzo0MiwwOjAsMToxLDI6Mix3b3JsZDo0Mn0pLCBbJzAnLCcxJywnMicsJ2hlbGxvJywnd29y
bGQnLCBjb2NvYV0pOworc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoe1tjb2NvYV06NDIs
aGVsbG86NDIsMDowLDE6MSwyOjIsW2NhcHB1Y2Npbm9dOjQyLHdvcmxkOjQyfSksIFsnMCcsJzEn
LCcyJywnaGVsbG8nLCd3b3JsZCcsIGNvY29hLCBjYXBwdWNjaW5vXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257534</attachid>
            <date>2015-07-25 23:35:33 -0700</date>
            <delta_ts>2015-07-26 12:26:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147307-20150725233414.patch</filename>
            <type>text/plain</type>
            <size>12193</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MzRkZmU3MTY4YWQ1Njg5OTZkNzk2ZDAxY2MwYWQxNDdiYjRhNmVjLi40YTI5ZWNlOTk4OGIwMTA2
ZTU4NDM0MWFmY2FiNTI2MzUyOWViMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMSBAQAorMjAxNS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgUmVmbGVjdC5vd25LZXlzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDczMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgUmVmbGVjdC5vd25LZXlzLgorICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSByZWZhY3Rv
ciB0aGUgZXhpc3RpbmcgY29kZSB0byBsaXN0IHVwIG93biBrZXlzIGluIHRoZSBvYmplY3QuCisg
ICAgICAgIFN1Y2ggY29kZSBpcyB1c2VkIGJ5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLCBP
YmplY3QuZ2V0T3duUHJvcGVydHlLZXlzLCBPYmplY3Qua2V5cyBhbmQgQG93bkVudW1lcmFibGVL
ZXlzLgorICAgICAgICBXZSBmYWN0b3Igb3V0IHRoZSBsaXN0aW5nIHVwIG93biBrZXlzIGFzIG93
blByb3BlcnR5S2V5cyBmdW5jdGlvbiBhbmQgYWxzbyB1c2UgaXQgaW4gUmVmbGVjdC5vd25LZXlz
LgorCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6
Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKToKKyAgICAgICAgKEpTQzo6
b2JqZWN0Q29uc3RydWN0b3JLZXlzKToKKyAgICAgICAgKEpTQzo6b3duRW51bWVyYWJsZVByb3Bl
cnR5S2V5cyk6CisgICAgICAgIChKU0M6Om93blByb3BlcnR5S2V5cyk6CisgICAgICAgICogcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RPd25LZXlzKToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvcmVmbGVjdC1vd24ta2V5cy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChzaG91bGRCZUFycmF5KToKKwog
MjAxNS0wNy0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbRVM2XSBBZGQgUmVmbGVjdCBuYW1lc3BhY2UgYW5kIGFkZCBSZWZsZWN0LmRlbGV0ZVBy
b3BlcnR5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDcyODcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IGQ1M2Y2NTI3MjBjNTU1OWIwM2IzNmVhZGJlYTVhMjIwZmUyZjcy
ZTAuLjM3NzY0NWRmZWFiMDBmNmY3NzY4NDVhMzE1NTY3MzE3NzQxMTAyNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTI1MSwxMyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGUKICAgICBKU09iamVjdCog
b2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9PYmplY3QoZXhlYyk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgp
KTsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MpOwotICAgIG9iamVjdC0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPmdldE93
blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUo
RG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwotICAgIEpTQXJyYXkqIG5hbWVzID0g
Y29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwKTsKLSAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9
IHByb3BlcnRpZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVy
dGllczsgaSsrKQotICAgICAgICBuYW1lcy0+cHVzaChleGVjLCBqc093bmVkU3RyaW5nKGV4ZWMs
IHByb3BlcnRpZXNbaV0uc3RyaW5nKCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG5h
bWVzKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBv
YmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6
OkluY2x1ZGUpKTsKIH0KIAogLy8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUuCkBA
IC0yNjYsMTYgKzI2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoRXhlY1N0YXRlKiBlCiAgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvT2JqZWN0KGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVN
b2RlOjpTeW1ib2xzKTsKLSAgICBvYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRP
d25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2Rl
KERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKLSAgICBKU0FycmF5KiBuYW1lcyA9
IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCk7Ci0gICAgc2l6ZV90IG51bVByb3BlcnRpZXMg
PSBwcm9wZXJ0aWVzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3Bl
cnRpZXM7IGkrKykgewotICAgICAgICBhdXRvIGltcGwgPSBwcm9wZXJ0aWVzW2ldLmltcGwoKTsK
LSAgICAgICAgaWYgKGltcGwtPmlzU3ltYm9sKCkgJiYgIWV4ZWMtPnByb3BlcnR5TmFtZXMoKS5p
c1ByaXZhdGVOYW1lKCppbXBsKSkKLSAgICAgICAgICAgIG5hbWVzLT5wdXNoKGV4ZWMsIFN5bWJv
bDo6Y3JlYXRlKGV4ZWMtPnZtKCksIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaW1wbCkpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShuYW1lcyk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZXhlYywgb2JqZWN0LCBQcm9wZXJ0eU5hbWVN
b2RlOjpTeW1ib2xzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CiB9CiAKIC8v
IEZJWE1FOiBVc2UgdGhlIGVudW1lcmF0aW9uIGNhY2hlLgpAQCAtMjg0LDEzICsyNjksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yS2V5cyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvT2Jq
ZWN0KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVy
dGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKLSAgICBvYmplY3QtPm1ldGhv
ZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJv
cGVydGllcywgRW51bWVyYXRpb25Nb2RlKCkpOwotICAgIEpTQXJyYXkqIGtleXMgPSBjb25zdHJ1
Y3RFbXB0eUFycmF5KGV4ZWMsIDApOwotICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspCi0gICAgICAgIGtleXMtPnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0
aWVzW2ldLnN0cmluZygpKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShrZXlzKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBvYmplY3QsIFBy
b3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvd25FbnVtZXJhYmxlUHJvcGVy
dHlLZXlzKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI5OCwyNiArMjc3LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvd25FbnVtZXJhYmxlUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBKU09iamVjdCogb2JqZWN0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9PYmplY3QoZXhl
Yyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4
ZWMsIFByb3BlcnR5TmFtZU1vZGU6OkJvdGgpOwotICAgIG9iamVjdC0+bWV0aG9kVGFibGUoZXhl
Yy0+dm0oKSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBF
bnVtZXJhdGlvbk1vZGUoKSk7Ci0KLSAgICBKU0FycmF5KiBrZXlzID0gY29uc3RydWN0RW1wdHlB
cnJheShleGVjLCAwKTsKLSAgICBWZWN0b3I8SWRlbnRpZmllciwgMTY+IHByb3BlcnR5U3ltYm9s
czsKLSAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7Ci0gICAgICAgIGNvbnN0
IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOwotICAgICAgICBpZiAoaWRlbnRpZmll
ci5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICBpZiAoIWV4ZWMtPnByb3BlcnR5TmFtZXMoKS5p
c1ByaXZhdGVOYW1lKGlkZW50aWZpZXIpKQotICAgICAgICAgICAgICAgIHByb3BlcnR5U3ltYm9s
cy5hcHBlbmQoaWRlbnRpZmllcik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAga2V5cy0+
cHVzaChleGVjLCBqc093bmVkU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKLSAg
ICB9Ci0KLSAgICAvLyBUbyBlbnN1cmUgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIHNwZWMgKDku
MS4xMiksIHdlIGFwcGVuZCBzeW1ib2xzIGF0IHRoZSBsYXN0IGVsZW1lbnRzIG9mIGtleXMuCi0g
ICAgZm9yIChjb25zdCBhdXRvJiBpZGVudGlmaWVyIDogcHJvcGVydHlTeW1ib2xzKQotICAgICAg
ICBrZXlzLT5wdXNoKGV4ZWMsIFN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksIHN0YXRpY19jYXN0
PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGtleXMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUob3duUHJvcGVydHlL
ZXlzKGV4ZWMsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6Qm90aCwgRG9udEVudW1Qcm9wZXJ0
aWVzTW9kZTo6RXhjbHVkZSkpOwogfQogCiAvLyBFUzUgOC4xMC41IFRvUHJvcGVydHlEZXNjcmlw
dG9yCkBAIC02NTQsNCArNjE0LDU2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0Q29uc3RydWN0b3JJcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oc2FtZVZhbHVlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5h
cmd1bWVudCgxKSkpKTsKIH0KIAorLy8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUu
CitKU0FycmF5KiBvd25Qcm9wZXJ0eUtleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2Jq
ZWN0LCBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUsIERvbnRFbnVtUHJvcGVydGll
c01vZGUgZG9udEVudW1Qcm9wZXJ0aWVzTW9kZSkKK3sKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBw
cm9wZXJ0aWVzKGV4ZWMsIHByb3BlcnR5TmFtZU1vZGUpOworICAgIG9iamVjdC0+bWV0aG9kVGFi
bGUoZXhlYy0+dm0oKSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0
aWVzLCBFbnVtZXJhdGlvbk1vZGUoZG9udEVudW1Qcm9wZXJ0aWVzTW9kZSkpOworCisgICAgSlNB
cnJheSoga2V5cyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCk7CisKKyAgICBzd2l0Y2gg
KHByb3BlcnR5TmFtZU1vZGUpIHsKKyAgICBjYXNlIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3M6
IHsKKyAgICAgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNpemUoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKKyAgICAg
ICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1N5bWJvbCgpKTsKKyAgICAgICAgICAgIGtleXMt
PnB1c2goZXhlYywganNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0aWVzW2ldLnN0cmluZygpKSk7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQcm9wZXJ0eU5h
bWVNb2RlOjpTeW1ib2xzOiB7CisgICAgICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGll
czsgaSsrKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGll
c1tpXTsKKyAgICAgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzU3ltYm9sKCkpOworICAgICAg
ICAgICAgaWYgKCFleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNQcml2YXRlTmFtZShpZGVudGlmaWVy
KSkKKyAgICAgICAgICAgICAgICBrZXlzLT5wdXNoKGV4ZWMsIFN5bWJvbDo6Y3JlYXRlKGV4ZWMt
PnZtKCksIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQcm9wZXJ0eU5hbWVN
b2RlOjpCb3RoOiB7CisgICAgICAgIFZlY3RvcjxJZGVudGlmaWVyLCAxNj4gcHJvcGVydHlTeW1i
b2xzOworICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgeworICAg
ICAgICAgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNbaV07CisgICAgICAg
ICAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNQcml2YXRlTmFtZShpZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHlTeW1ib2xzLmFwcGVuZChpZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGtleXMtPnB1c2goZXhlYywganNPd25lZFN0cmlu
ZyhleGVjLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBU
byBlbnN1cmUgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIHNwZWMgKDkuMS4xMiksIHdlIGFwcGVu
ZCBzeW1ib2xzIGF0IHRoZSBsYXN0IGVsZW1lbnRzIG9mIGtleXMuCisgICAgICAgIGZvciAoY29u
c3QgYXV0byYgaWRlbnRpZmllciA6IHByb3BlcnR5U3ltYm9scykKKyAgICAgICAgICAgIGtleXMt
PnB1c2goZXhlYywgU3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgc3RhdGljX2Nhc3Q8U3ltYm9s
SW1wbCY+KCppZGVudGlmaWVyLmltcGwoKSkpKTsKKworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGtleXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXgg
MmFhMmM5ZWMwMDRjMDE0OWEyMmY4ZWM1YWE4MzQyZmUzODc1ZGQ3OS4uNzllYzYxOTZhMmYxNTMy
MzAzN2ZjNWYwN2FmMTYyMDdmNGM1NDljMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC05MSw2ICs5MSw3IEBAIGlubGluZSBK
U09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogfQogCiBKU09i
amVjdCogb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKK0pT
QXJyYXkqIG93blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqLCBKU09iamVjdCosIFByb3BlcnR5TmFt
ZU1vZGUsIERvbnRFbnVtUHJvcGVydGllc01vZGUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAppbmRl
eCA4ZTEzZDY3MTAzNTA0YjM3ODg1NTkxZDkwM2NjYzg5YmQ5ZDAxMmQ1Li43Zjc3NGU4NDc3NmU0
MmNkYmFiYWQ5YmQ3OTU5Y2U3MTQxMGNjMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcApAQCAtMjgsNiArMjgsMTMgQEAKIAogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRlICJPYmplY3RD
b25zdHJ1Y3Rvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdE93bktleXMoRXhlY1N0YXRlKik7CisKK30KIAog
I2luY2x1ZGUgIlJlZmxlY3RPYmplY3QubHV0LmgiCiAKQEAgLTM5LDcgKzQ2LDggQEAgY29uc3Qg
Q2xhc3NJbmZvIFJlZmxlY3RPYmplY3Q6OnNfaW5mbyA9IHsgIlJlZmxlY3QiLCAmQmFzZTo6c19p
bmZvLCAmcmVmbGVjdE9iamUKIAogLyogU291cmNlIGZvciBSZWZsZWN0T2JqZWN0Lmx1dC5oCiBA
YmVnaW4gcmVmbGVjdE9iamVjdFRhYmxlCi0gICAgZGVsZXRlUHJvcGVydHkgIHJlZmxlY3RPYmpl
Y3RHZXQgRG9udEVudW18RnVuY3Rpb24gMgorICAgIGRlbGV0ZVByb3BlcnR5ICByZWZsZWN0T2Jq
ZWN0RGVsZXRlUHJvcGVydHkgRG9udEVudW18RnVuY3Rpb24gMgorICAgIG93bktleXMgICAgICAg
ICByZWZsZWN0T2JqZWN0T3duS2V5cyAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogQGVuZAog
Ki8KIApAQCAtNjEsNCArNjksMTIgQEAgYm9vbCBSZWZsZWN0T2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXIKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmpl
Y3RPd25LZXlzKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMt
PmFyZ3VtZW50KDApOworICAgIGlmICghdGFyZ2V0LmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZWZs
ZWN0Lm93bktleXMgcmVxdWlyZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGJlIGEgb2JqZWN0IikpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhleGVjLCBqc0Nhc3Q8
SlNPYmplY3QqPih0YXJnZXQpLCBQcm9wZXJ0eU5hbWVNb2RlOjpCb3RoLCBEb250RW51bVByb3Bl
cnRpZXNNb2RlOjpJbmNsdWRlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWZsZWN0LW93bi1rZXlzLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWZsZWN0LW93bi1rZXlzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ4MDJjODhkNDU3MjhkMDdmMGFjZmYzMzk0MzJlZmE4ZTU4MjY2YWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlZmxl
Y3Qtb3duLWtleXMuanMKQEAgLTAsMCArMSw0NiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZFRocm93KGZ1bmMsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7
CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJub3QgdGhy
b3duLiIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworfQorCitmdW5jdGlv
biBzaG91bGRCZUFycmF5KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZShhY3R1YWwu
bGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0
ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNob3VsZEJlKGFj
dHVhbFtpXSwgZXhwZWN0ZWRbaV0pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAg
IHByaW50KEpTT04uc3RyaW5naWZ5KGFjdHVhbCkpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworc2hvdWxkQmUoUmVmbGVjdC5vd25LZXlzLmxlbmd0aCwgMSk7
CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBSZWZsZWN0Lm93bktleXMoImhlbGxvIik7Cit9
LCBgVHlwZUVycm9yOiBSZWZsZWN0Lm93bktleXMgcmVxdWlyZXMgdGhlIGZpcnN0IGFyZ3VtZW50
IGJlIGEgb2JqZWN0YCk7CisKK3ZhciBjb2NvYSA9IFN5bWJvbCgiQ29jb2EiKTsKK3ZhciBjYXBw
dWNjaW5vID0gU3ltYm9sKCJDYXBwdWNjaW5vIik7CisKK3Nob3VsZEJlQXJyYXkoUmVmbGVjdC5v
d25LZXlzKHt9KSwgW10pOworc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoezQyOjQyfSks
IFsnNDInXSk7CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7MDowLDE6MSwyOjJ9KSwg
WycwJywnMScsJzInXSk7CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7MDowLDE6MSwy
OjIsaGVsbG86NDJ9KSwgWycwJywnMScsJzInLCdoZWxsbyddKTsKK3Nob3VsZEJlQXJyYXkoUmVm
bGVjdC5vd25LZXlzKHtoZWxsbzo0MiwwOjAsMToxLDI6Mix3b3JsZDo0Mn0pLCBbJzAnLCcxJywn
MicsJ2hlbGxvJywnd29ybGQnXSk7CitzaG91bGRCZUFycmF5KFJlZmxlY3Qub3duS2V5cyh7W2Nv
Y29hXTo0MixoZWxsbzo0MiwwOjAsMToxLDI6Mix3b3JsZDo0Mn0pLCBbJzAnLCcxJywnMicsJ2hl
bGxvJywnd29ybGQnLCBjb2NvYV0pOworc2hvdWxkQmVBcnJheShSZWZsZWN0Lm93bktleXMoe1tj
b2NvYV06NDIsaGVsbG86NDIsMDowLDE6MSwyOjIsW2NhcHB1Y2Npbm9dOjQyLHdvcmxkOjQyfSks
IFsnMCcsJzEnLCcyJywnaGVsbG8nLCd3b3JsZCcsIGNvY29hLCBjYXBwdWNjaW5vXSk7Cg==
</data>
<flag name="review"
          id="282704"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>