<?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>165055</bug_id>
          
          <creation_ts>2016-11-23 22:27:02 -0800</creation_ts>
          <short_desc>Fix exception scope verification failures in miscellaneous files.</short_desc>
          <delta_ts>2016-11-28 14:22:26 -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 Local 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>162351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1253542</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-23 22:27:02 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253543</commentid>
    <comment_count>1</comment_count>
      <attachid>295393</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-23 22:30:59 -0800</bug_when>
    <thetext>Created attachment 295393
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253544</commentid>
    <comment_count>2</comment_count>
      <attachid>295394</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-23 22:33:10 -0800</bug_when>
    <thetext>Created attachment 295394
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253615</commentid>
    <comment_count>3</comment_count>
      <attachid>295394</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-24 13:37:45 -0800</bug_when>
    <thetext>Comment on attachment 295394
proposed patch.

It is invalid to replace returning encodedJSValue() with returning { }.  On 32-bit builds, the former is non-zero, while the latter is 0.  Will fix this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253665</commentid>
    <comment_count>4</comment_count>
      <attachid>295430</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-25 14:15:05 -0800</bug_when>
    <thetext>Created attachment 295430
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253976</commentid>
    <comment_count>5</comment_count>
      <attachid>295430</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-28 13:53:35 -0800</bug_when>
    <thetext>Comment on attachment 295430
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp:148
&gt; +    if (!moduleRecord) {
&gt; +        scope.release();

Why not just move the DECLARE_THROW_SCOPE lower?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254004</commentid>
    <comment_count>6</comment_count>
      <attachid>295430</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 14:19:00 -0800</bug_when>
    <thetext>Comment on attachment 295430
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/runtime/ModuleLoaderPrototype.cpp:148
&gt;&gt; +        scope.release();
&gt; 
&gt; Why not just move the DECLARE_THROW_SCOPE lower?

Because the rule of thumb is to DECLARE_THROW_SCOPE (or DECLARE_CATCH_SCOPE) as high up in the function as much as possible.  Keeping it consistent this way removes the chance of missing needed exception checks because someone declared it too late, and a function call that can throw is added subsequently before the declaration of the throw scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254010</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 14:22:26 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r209018: &lt;http://trac.webkit.org/r209018&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295393</attachid>
            <date>2016-11-23 22:30:59 -0800</date>
            <delta_ts>2016-11-23 22:31:37 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165055.patch</filename>
            <type>text/plain</type>
            <size>12218</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE2LTExLTIzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmYWlsdXJlcyBpbiBtaXNjZWxsYW5lb3Vz
IGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY1MDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6
MzIpOgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jSHlwb3QpOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jSU11bCk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVQYXJzZU1vZHVsZSk6
CisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZVJlcXVlc3RlZE1vZHVsZXMpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVNb2R1bGVEZWNsYXJhdGlvbkluc3Rh
bnRpYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVu
dGltZS9TZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFNldCk6Cisg
ICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
U2V0SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dCk6CisgICAgICAgICogcnVudGltZS9TcGFyc2VB
cnJheVZhbHVlTWFwLmNwcDoKKyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0
RW50cnkpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheUVudHJ5OjpwdXQpOgorICAgICAgICAq
IHJ1bnRpbWUvVGVtcGxhdGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OlRlbXBsYXRlUmVn
aXN0cnk6OmdldFRlbXBsYXRlT2JqZWN0KToKKwogMjAxNi0xMS0yMyAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9BU1NFTUJMRVJf
V1hfRVhDTFVTSVZFIGNvZGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDcgKzE2NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnUKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICB1aW50MzJfdCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKGNsejMyKHZhbHVlKSkpOwogfQogCkBAIC0xOTMsNyArMTkzLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdQogICAgIGFyZ3MucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShhcmdzQ291bnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmdz
Q291bnQ7ICsraSkgewogICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudChpKS50b051bWJlcihleGVjKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoc3RkOjppc2luZihhcmdzW2ldKSkKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoK3N0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkpOwogICAgICAgICBtYXggPSBzdGQ6Om1heChmYWJz
KGFyZ3NbaV0pLCBtYXgpOwpAQCAtMjk2LDcgKzI5Niw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnUKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBpbnQzMl90IGxlZnQgPSBleGVj
LT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIGludDMyX3QgcmlnaHQgPSBleGVjLT5hcmd1
bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIobGVmdCAqIHJpZ2h0KSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwODk3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiwxMCArMTEyLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGUKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvUHJvcGVydHlLZXkoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAogICAgIFN0cmluZyBzb3VyY2UgPSBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAg
IFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IG1ha2VTb3VyY2Uoc291cmNlLCBtb2R1bGVLZXkuaW1w
bCgpLCBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6Ok1vZHVsZSk7CiAKQEAgLTEzMyw2ICsxMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlCiAgICAgQVNTRVJUKG1vZHVsZVByb2dyYW1Ob2RlKTsKIAog
ICAgIE1vZHVsZUFuYWx5emVyIG1vZHVsZUFuYWx5emVyKGV4ZWMsIG1vZHVsZUtleSwgc291cmNl
Q29kZSwgbW9kdWxlUHJvZ3JhbU5vZGUtPnZhckRlY2xhcmF0aW9ucygpLCBtb2R1bGVQcm9ncmFt
Tm9kZS0+bGV4aWNhbFZhcmlhYmxlcygpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBtb2R1bGVBbmFseXpl
ci5hbmFseXplKCptb2R1bGVQcm9ncmFtTm9kZSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKG1vZHVsZVJlY29yZCk7CkBAIC0xNDMsMTUgKzE0NCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNNb2R1bGVSZWNvcmQq
IG1vZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihleGVjLT5hcmd1
bWVudCgwKSk7Ci0gICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgaWYgKCFtb2R1bGVSZWNvcmQp
IHsKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cikpOworICAgIH0KIAogICAgIEpT
QXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgbW9kdWxl
UmVjb3JkLT5yZXF1ZXN0ZWRNb2R1bGVzKCkuc2l6ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIHNpemVfdCBpID0gMDsKLSAgICBmb3IgKGF1dG8mIGtleSA6IG1vZHVs
ZVJlY29yZC0+cmVxdWVzdGVkTW9kdWxlcygpKQorICAgIGZvciAoYXV0byYga2V5IDogbW9kdWxl
UmVjb3JkLT5yZXF1ZXN0ZWRNb2R1bGVzKCkpIHsKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJ
bmRleChleGVjLCBpKyssIGpzU3RyaW5nKGV4ZWMsIGtleS5nZXQoKSkpOwotCisgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTY3LDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGUKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtsaW5r
XSAiLCBtb2R1bGVSZWNvcmQtPm1vZHVsZUtleSgpLCAiXG4iKTsKIAogICAgIG1vZHVsZVJlY29y
ZC0+bGluayhleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
YXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyCiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMt
PmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1
bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBleGVjLT5uZXdUYXJnZXQoKSwg
anNDYXN0PE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSktPmVycm9yU3Ry
dWN0dXJlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVy
cm9yU3RydWN0dXJlKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDExICs4OCwxMiBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgZG91YmxlIG4g
PSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051
bWJlcihleGVjKSA6IDA7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNz
U3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogCi0gICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBOdW1iZXJPYmplY3Q6OmNyZWF0
ZShleGVjLT52bSgpLCBzdHJ1Y3R1cmUpOwotICAgIG9iamVjdC0+c2V0SW50ZXJuYWxWYWx1ZShl
eGVjLT52bSgpLCBqc051bWJlcihuKSk7CisgICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBOdW1i
ZXJPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPnNldEludGVybmFs
VmFsdWUodm0sIGpzTnVtYmVyKG4pKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVj
dCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRD
b25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIwODk3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsMjEgKzYx
LDIyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKIAogICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKTsKICAgICBTdHJ1Y3R1cmUqIHNldFN0cnVjdHVyZSA9IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1Rh
cmdldCgpLCBnbG9iYWxPYmplY3QtPnNldFN0cnVjdHVyZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogICAgIEpTU2V0KiBzZXQgPSBKU1NldDo6Y3JlYXRlKGV4ZWMsIHZtLCBz
ZXRTdHJ1Y3R1cmUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgSlNWYWx1
ZSBpdGVyYWJsZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIGlmIChpdGVyYWJsZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiAKLSAg
ICBKU1ZhbHVlIGFkZGVyRnVuY3Rpb24gPSBzZXQtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuYWRkKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICBKU1ZhbHVlIGFkZGVyRnVuY3Rpb24gPSBzZXQtPmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5hZGQpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAK
ICAgICBDYWxsRGF0YSBhZGRlckZ1bmN0aW9uQ2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgYWRkZXJG
dW5jdGlvbkNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoYWRkZXJGdW5jdGlvbiwgYWRkZXJGdW5jdGlv
bkNhbGxEYXRhKTsKLSAgICBpZiAoYWRkZXJGdW5jdGlvbkNhbGxUeXBlID09IENhbGxUeXBlOjpO
b25lKQorICAgIGlmIChVTkxJS0VMWShhZGRlckZ1bmN0aW9uQ2FsbFR5cGUgPT0gQ2FsbFR5cGU6
Ok5vbmUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhl
Yywgc2NvcGUpKTsKIAorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBmb3JFYWNoSW5JdGVyYWJs
ZShleGVjLCBpdGVyYWJsZSwgWyZdKFZNJiwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG5leHRW
YWx1ZSkgewogICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAgICAg
IGFyZ3VtZW50cy5hcHBlbmQobmV4dFZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5jcHAJKHJldmlzaW9u
IDIwODk3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJv
dG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNiBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw4ICs1NiwxMSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIFNldEl0ZXJhdG9yCiAgICAgaWYgKCFpdGVyYXRvcikKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIkNhbm5vdCBjYWxsIFNldEl0ZXJhdG9yLm5leHQoKSBvbiBhIG5vbi1TZXRJ
dGVyYXRvciBvYmplY3QiKSkpOwogCi0gICAgaWYgKGl0ZXJhdG9yLT5uZXh0KGNhbGxGcmFtZSwg
cmVzdWx0KSkKKyAgICBpZiAoaXRlcmF0b3ItPm5leHQoY2FsbEZyYW1lLCByZXN1bHQpKSB7Cisg
ICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
cmVhdGVJdGVyYXRvclJlc3VsdE9iamVjdChjYWxsRnJhbWUsIHJlc3VsdCwgZmFsc2UpKTsKKyAg
ICB9CisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3Jl
YXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoY2FsbEZyYW1lLCBqc1VuZGVmaW5lZCgpLCB0cnVlKSk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFs
dWVNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nw
YXJzZUFycmF5VmFsdWVNYXAuY3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA1LDYgKzEwNSw3IEBAIGJvb2wgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0RW50cnkoRXhl
Y1MKICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihleGVjLCBzY29wZSwgc2hvdWxkVGhyb3csIEFT
Q0lJTGl0ZXJhbChSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpOwogICAgIH0KICAgICAKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIGVudHJ5LnB1dChleGVjLCBhcnJheSwgdGhp
cywgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIApAQCAtMTY2LDYgKzE2Nyw3IEBAIGJvb2wgU3Bh
cnNlQXJyYXlFbnRyeTo6cHV0KEV4ZWNTdGF0ZSogZXgKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBjYWxsU2V0dGVyKGV4ZWMs
IHRoaXNWYWx1ZSwgQmFzZTo6Z2V0KCksIHZhbHVlLCBzaG91bGRUaHJvdyA/IFN0cmljdE1vZGUg
OiBOb3RTdHJpY3RNb2RlKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVGVtcGxhdGVSZWdpc3RyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGVtcGxhdGVSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDIwODk3MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBsYXRlUmVnaXN0cnkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OSwxMyArNTksMTUgQEAgSlNBcnJheSogVGVtcGxhdGVSZWdpc3RyeTo6Z2V0
VGVtcGxhdGVPYgogCiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7
ICsraW5kZXgpIHsKICAgICAgICAgdGVtcGxhdGVPYmplY3QtPnB1dERpcmVjdEluZGV4KGV4ZWMs
IGluZGV4LCBqc1N0cmluZyhleGVjLCB0ZW1wbGF0ZUtleS5jb29rZWRTdHJpbmdzKClbaW5kZXhd
KSwgUmVhZE9ubHkgfCBEb250RGVsZXRlLCBQdXREaXJlY3RJbmRleExpa2VQdXREaXJlY3QpOwor
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgcmF3
T2JqZWN0LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwganNTdHJpbmcoZXhlYywgdGVtcGxh
dGVLZXkucmF3U3RyaW5ncygpW2luZGV4XSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgUHV0RGly
ZWN0SW5kZXhMaWtlUHV0RGlyZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CiAgICAgfQogCiAgICAgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoZXhlYywg
cmF3T2JqZWN0KTsKICAgICBBU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpKTsKIAotICAgIHRlbXBs
YXRlT2JqZWN0LT5wdXREaXJlY3Qodm0sIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5yYXcsIHJhd09i
amVjdCwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOworICAgIHRlbXBsYXRlT2Jq
ZWN0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnJhdywgcmF3T2JqZWN0LCBSZWFk
T25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKICAgICAvLyBUZW1wbGF0ZSBKU0FycmF5
IGhvbGQgdGhlIHJlZmVyZW5jZSB0byBKU1RlbXBsYXRlUmVnaXN0cnlLZXkgdG8gbWFrZSBUZW1w
bGF0ZVJlZ2lzdHJ5S2V5IHBvaW50ZXIgbGl2ZSB1bnRpbCB0aGlzIEpTQXJyYXkgaXMgY29sbGVj
dGVkLgogICAgIC8vIFRlbXBsYXRlUmVnaXN0cnlLZXkgcG9pbnRlciBpcyB1c2VkIGZvciBUZW1w
bGF0ZVJlZ2lzdHJ5J3Mga2V5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295394</attachid>
            <date>2016-11-23 22:33:10 -0800</date>
            <delta_ts>2016-11-25 14:15:05 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165055.patch</filename>
            <type>text/plain</type>
            <size>12219</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE2LTExLTIzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmYWlsdXJlcyBpbiBtaXNjZWxsYW5lb3Vz
IGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY1MDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6
MzIpOgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jSHlwb3QpOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jSU11bCk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVQYXJzZU1vZHVsZSk6
CisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZVJlcXVlc3RlZE1vZHVsZXMpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVNb2R1bGVEZWNsYXJhdGlvbkluc3Rh
bnRpYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVu
dGltZS9TZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFNldCk6Cisg
ICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
U2V0SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dCk6CisgICAgICAgICogcnVudGltZS9TcGFyc2VB
cnJheVZhbHVlTWFwLmNwcDoKKyAgICAgICAgKEpTQzo6U3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0
RW50cnkpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheUVudHJ5OjpwdXQpOgorICAgICAgICAq
IHJ1bnRpbWUvVGVtcGxhdGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OlRlbXBsYXRlUmVn
aXN0cnk6OmdldFRlbXBsYXRlT2JqZWN0KToKKwogMjAxNi0xMS0yMyAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9BU1NFTUJMRVJf
V1hfRVhDTFVTSVZFIGNvZGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDcgKzE2NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnUKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICB1aW50MzJfdCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKGNsejMyKHZhbHVlKSkpOwogfQogCkBAIC0xOTMsNyArMTkzLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdQogICAgIGFyZ3MucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShhcmdzQ291bnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmdz
Q291bnQ7ICsraSkgewogICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudChpKS50b051bWJlcihleGVjKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoc3RkOjppc2luZihhcmdzW2ldKSkKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoK3N0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkpOwogICAgICAgICBtYXggPSBzdGQ6Om1heChmYWJz
KGFyZ3NbaV0pLCBtYXgpOwpAQCAtMjk2LDcgKzI5Niw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnUKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBpbnQzMl90IGxlZnQgPSBleGVj
LT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIGludDMyX3QgcmlnaHQgPSBleGVjLT5hcmd1
bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIobGVmdCAqIHJpZ2h0KSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwODk3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlw
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiwxMCArMTEyLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGUKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvUHJvcGVydHlLZXkoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAogICAgIFN0cmluZyBzb3VyY2UgPSBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAg
IFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IG1ha2VTb3VyY2Uoc291cmNlLCBtb2R1bGVLZXkuaW1w
bCgpLCBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6Ok1vZHVsZSk7CiAKQEAgLTEzMyw2ICsxMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlCiAgICAgQVNTRVJUKG1vZHVsZVByb2dyYW1Ob2RlKTsKIAog
ICAgIE1vZHVsZUFuYWx5emVyIG1vZHVsZUFuYWx5emVyKGV4ZWMsIG1vZHVsZUtleSwgc291cmNl
Q29kZSwgbW9kdWxlUHJvZ3JhbU5vZGUtPnZhckRlY2xhcmF0aW9ucygpLCBtb2R1bGVQcm9ncmFt
Tm9kZS0+bGV4aWNhbFZhcmlhYmxlcygpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBtb2R1bGVBbmFseXpl
ci5hbmFseXplKCptb2R1bGVQcm9ncmFtTm9kZSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKG1vZHVsZVJlY29yZCk7CkBAIC0xNDMsMTUgKzE0NCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNNb2R1bGVSZWNvcmQq
IG1vZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihleGVjLT5hcmd1
bWVudCgwKSk7Ci0gICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgaWYgKCFtb2R1bGVSZWNvcmQp
IHsKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cikpOworICAgIH0KIAogICAgIEpT
QXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0ciwgbW9kdWxl
UmVjb3JkLT5yZXF1ZXN0ZWRNb2R1bGVzKCkuc2l6ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgIHNpemVfdCBpID0gMDsKLSAgICBmb3IgKGF1dG8mIGtleSA6IG1vZHVs
ZVJlY29yZC0+cmVxdWVzdGVkTW9kdWxlcygpKQorICAgIGZvciAoYXV0byYga2V5IDogbW9kdWxl
UmVjb3JkLT5yZXF1ZXN0ZWRNb2R1bGVzKCkpIHsKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJ
bmRleChleGVjLCBpKyssIGpzU3RyaW5nKGV4ZWMsIGtleS5nZXQoKSkpOwotCisgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTY3LDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGUKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtsaW5r
XSAiLCBtb2R1bGVSZWNvcmQtPm1vZHVsZUtleSgpLCAiXG4iKTsKIAogICAgIG1vZHVsZVJlY29y
ZC0+bGluayhleGVjKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
YXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyCiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMt
PmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1
bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShleGVjLCBleGVjLT5uZXdUYXJnZXQoKSwg
anNDYXN0PE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSktPmVycm9yU3Ry
dWN0dXJlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVy
cm9yU3RydWN0dXJlKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDExICs4OCwxMiBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgZG91YmxlIG4g
PSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051
bWJlcihleGVjKSA6IDA7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNz
U3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogCi0gICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBOdW1iZXJPYmplY3Q6OmNyZWF0
ZShleGVjLT52bSgpLCBzdHJ1Y3R1cmUpOwotICAgIG9iamVjdC0+c2V0SW50ZXJuYWxWYWx1ZShl
eGVjLT52bSgpLCBqc051bWJlcihuKSk7CisgICAgTnVtYmVyT2JqZWN0KiBvYmplY3QgPSBOdW1i
ZXJPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPnNldEludGVybmFs
VmFsdWUodm0sIGpzTnVtYmVyKG4pKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVj
dCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRD
b25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIwODk3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsMjEgKzYx
LDIyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKIAogICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKTsKICAgICBTdHJ1Y3R1cmUqIHNldFN0cnVjdHVyZSA9IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1Rh
cmdldCgpLCBnbG9iYWxPYmplY3QtPnNldFN0cnVjdHVyZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogICAgIEpTU2V0KiBzZXQgPSBKU1NldDo6Y3JlYXRlKGV4ZWMsIHZtLCBz
ZXRTdHJ1Y3R1cmUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgSlNWYWx1
ZSBpdGVyYWJsZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIGlmIChpdGVyYWJsZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiAKLSAg
ICBKU1ZhbHVlIGFkZGVyRnVuY3Rpb24gPSBzZXQtPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkuYWRkKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICBKU1ZhbHVlIGFkZGVyRnVuY3Rpb24gPSBzZXQtPmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5hZGQpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAK
ICAgICBDYWxsRGF0YSBhZGRlckZ1bmN0aW9uQ2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgYWRkZXJG
dW5jdGlvbkNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoYWRkZXJGdW5jdGlvbiwgYWRkZXJGdW5jdGlv
bkNhbGxEYXRhKTsKLSAgICBpZiAoYWRkZXJGdW5jdGlvbkNhbGxUeXBlID09IENhbGxUeXBlOjpO
b25lKQorICAgIGlmIChVTkxJS0VMWShhZGRlckZ1bmN0aW9uQ2FsbFR5cGUgPT0gQ2FsbFR5cGU6
Ok5vbmUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4
ZWMsIHNjb3BlKSk7CiAKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgZm9yRWFjaEluSXRlcmFi
bGUoZXhlYywgaXRlcmFibGUsIFsmXShWTSYsIEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuZXh0
VmFsdWUpIHsKICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgICAg
ICBhcmd1bWVudHMuYXBwZW5kKG5leHRWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JQcm90b3R5cGUuY3BwCShyZXZpc2lv
biAyMDg5NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRvclBy
b3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsOCArNTYsMTEgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBTZXRJdGVyYXRvcgogICAgIGlmICghaXRlcmF0b3IpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwg
QVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBTZXRJdGVyYXRvci5uZXh0KCkgb24gYSBub24tU2V0
SXRlcmF0b3Igb2JqZWN0IikpKTsKIAotICAgIGlmIChpdGVyYXRvci0+bmV4dChjYWxsRnJhbWUs
IHJlc3VsdCkpCisgICAgaWYgKGl0ZXJhdG9yLT5uZXh0KGNhbGxGcmFtZSwgcmVzdWx0KSkgewor
ICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoY2FsbEZyYW1lLCByZXN1bHQsIGZhbHNlKSk7Cisg
ICAgfQorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNy
ZWF0ZUl0ZXJhdG9yUmVzdWx0T2JqZWN0KGNhbGxGcmFtZSwganNVbmRlZmluZWQoKSwgdHJ1ZSkp
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
cGFyc2VBcnJheVZhbHVlTWFwLmNwcAkocmV2aXNpb24gMjA4OTcwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNSw2ICsxMDUsNyBAQCBib29sIFNwYXJzZUFycmF5VmFsdWVNYXA6OnB1dEVudHJ5KEV4
ZWNTCiAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhlYywgc2NvcGUsIHNob3VsZFRocm93LCBB
U0NJSUxpdGVyYWwoUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpKTsKICAgICB9CiAgICAgCisg
ICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBlbnRyeS5wdXQoZXhlYywgYXJyYXksIHRo
aXMsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKQEAgLTE2Niw2ICsxNjcsNyBAQCBib29sIFNw
YXJzZUFycmF5RW50cnk6OnB1dChFeGVjU3RhdGUqIGV4CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gY2FsbFNldHRlcihleGVj
LCB0aGlzVmFsdWUsIEJhc2U6OmdldCgpLCB2YWx1ZSwgc2hvdWxkVGhyb3cgPyBTdHJpY3RNb2Rl
IDogTm90U3RyaWN0TW9kZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1RlbXBsYXRlUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1RlbXBsYXRlUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAyMDg5NzApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wbGF0ZVJlZ2lzdHJ5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksMTMgKzU5LDE1IEBAIEpTQXJyYXkqIFRlbXBsYXRlUmVnaXN0cnk6Omdl
dFRlbXBsYXRlT2IKIAogICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50
OyArK2luZGV4KSB7CiAgICAgICAgIHRlbXBsYXRlT2JqZWN0LT5wdXREaXJlY3RJbmRleChleGVj
LCBpbmRleCwganNTdHJpbmcoZXhlYywgdGVtcGxhdGVLZXkuY29va2VkU3RyaW5ncygpW2luZGV4
XSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgUHV0RGlyZWN0SW5kZXhMaWtlUHV0RGlyZWN0KTsK
KyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIHJh
d09iamVjdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgsIGpzU3RyaW5nKGV4ZWMsIHRlbXBs
YXRlS2V5LnJhd1N0cmluZ3MoKVtpbmRleF0pLCBSZWFkT25seSB8IERvbnREZWxldGUsIFB1dERp
cmVjdEluZGV4TGlrZVB1dERpcmVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwogICAgIH0KIAogICAgIG9iamVjdENvbnN0cnVjdG9yRnJlZXplKGV4ZWMs
IHJhd09iamVjdCk7CiAgICAgQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7CiAKLSAgICB0ZW1w
bGF0ZU9iamVjdC0+cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucmF3LCByYXdP
YmplY3QsIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKKyAgICB0ZW1wbGF0ZU9i
amVjdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5yYXcsIHJhd09iamVjdCwgUmVh
ZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogCiAgICAgLy8gVGVtcGxhdGUgSlNBcnJh
eSBob2xkIHRoZSByZWZlcmVuY2UgdG8gSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5IHRvIG1ha2UgVGVt
cGxhdGVSZWdpc3RyeUtleSBwb2ludGVyIGxpdmUgdW50aWwgdGhpcyBKU0FycmF5IGlzIGNvbGxl
Y3RlZC4KICAgICAvLyBUZW1wbGF0ZVJlZ2lzdHJ5S2V5IHBvaW50ZXIgaXMgdXNlZCBmb3IgVGVt
cGxhdGVSZWdpc3RyeSdzIGtleS4K
</data>
<flag name="review"
          id="317987"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295430</attachid>
            <date>2016-11-25 14:15:05 -0800</date>
            <delta_ts>2016-11-28 13:53:35 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165055.patch</filename>
            <type>text/plain</type>
            <size>9507</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE2LTExLTI1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmYWlsdXJlcyBpbiBtaXNjZWxsYW5lb3Vz
IGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY1MDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jSU11
bCk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVQYXJzZU1vZHVsZSk6CisgICAgICAgIChKU0M6
Om1vZHVsZUxvYWRlclByb3RvdHlwZVJlcXVlc3RlZE1vZHVsZXMpOgorICAgICAgICAqIHJ1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
Ojpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhOdW1i
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdFNldCk6CisgICAgICAgICogcnVudGltZS9TZXRJdGVyYXRv
clByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlNldEl0ZXJhdG9yUHJvdG90eXBlRnVuY05l
eHQpOgorICAgICAgICAqIHJ1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHA6CisgICAgICAg
IChKU0M6OlNwYXJzZUFycmF5VmFsdWVNYXA6OnB1dEVudHJ5KToKKyAgICAgICAgKEpTQzo6U3Bh
cnNlQXJyYXlFbnRyeTo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL1RlbXBsYXRlUmVnaXN0cnku
Y3BwOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZVJlZ2lzdHJ5OjpnZXRUZW1wbGF0ZU9iamVjdCk6
CisKIDIwMTYtMTEtMjMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBFTkFCTEVfQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSBjb2RlCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAkocmV2aXNpb24g
MjA4OTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5Nyw2ICsyOTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIGludDMyX3QgbGVmdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAg
c2NvcGUucmVsZWFzZSgpOwogICAgIGludDMyX3QgcmlnaHQgPSBleGVjLT5hcmd1bWVudCgxKS50
b0ludDMyKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobGVmdCAq
IHJpZ2h0KSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVM
b2FkZXJQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwODk3NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1vZHVsZUxvYWRlCiAgICAgQVNTRVJUKG1vZHVsZVByb2dyYW1Ob2RlKTsKIAogICAgIE1v
ZHVsZUFuYWx5emVyIG1vZHVsZUFuYWx5emVyKGV4ZWMsIG1vZHVsZUtleSwgc291cmNlQ29kZSwg
bW9kdWxlUHJvZ3JhbU5vZGUtPnZhckRlY2xhcmF0aW9ucygpLCBtb2R1bGVQcm9ncmFtTm9kZS0+
bGV4aWNhbFZhcmlhYmxlcygpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gbW9kdWxl
QW5hbHl6ZXIuYW5hbHl6ZSgqbW9kdWxlUHJvZ3JhbU5vZGUpOwogCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShtb2R1bGVSZWNvcmQpOwpAQCAtMTQzLDE1ICsxNDQsMTggQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTTW9kdWxl
UmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlUmVjb3JkKj4oZXhl
Yy0+YXJndW1lbnQoMCkpOwotICAgIGlmICghbW9kdWxlUmVjb3JkKQorICAgIGlmICghbW9kdWxl
UmVjb3JkKSB7CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpKTsKKyAgICB9CiAK
ICAgICBKU0FycmF5KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIs
IG1vZHVsZVJlY29yZC0+cmVxdWVzdGVkTW9kdWxlcygpLnNpemUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2l6ZV90IGkgPSAwOwot
ICAgIGZvciAoYXV0byYga2V5IDogbW9kdWxlUmVjb3JkLT5yZXF1ZXN0ZWRNb2R1bGVzKCkpCisg
ICAgZm9yIChhdXRvJiBrZXkgOiBtb2R1bGVSZWNvcmQtPnJlcXVlc3RlZE1vZHVsZXMoKSkgewog
ICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGkrKywganNTdHJpbmcoZXhlYywg
a2V5LmdldCgpKSk7Ci0KKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CisgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIwODk3NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OSw2ICs2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
ZXJwcmV0ZXIKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZXhlYywgZXhlYy0+bmV3VGFyZ2V0KCksIGpzQ2Fz
dDxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpLT5lcnJvclN0cnVjdHVy
ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
ICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDIwODk3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsMTEgKzg4LDEy
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBkb3VibGUgbiA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpIDogMDsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEludGVy
bmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1Rhcmdl
dCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAot
ICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gTnVtYmVyT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0o
KSwgc3RydWN0dXJlKTsKLSAgICBvYmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+dm0oKSwg
anNOdW1iZXIobikpOworICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gTnVtYmVyT2JqZWN0Ojpj
cmVhdGUodm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZhbHVlKHZtLCBq
c051bWJlcihuKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwogfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAyMDg5NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDE0ICs2OCwxNSBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zCiAgICAgaWYgKGl0ZXJhYmxlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0KTsK
IAotICAgIEpTVmFsdWUgYWRkZXJGdW5jdGlvbiA9IHNldC0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5hZGQpOworICAgIEpTVmFsdWUgYWRkZXJGdW5jdGlvbiA9IHNldC0+Z2V0KGV4
ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmFkZCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBDYWxsRGF0YSBhZGRlckZ1bmN0aW9uQ2FsbERh
dGE7CiAgICAgQ2FsbFR5cGUgYWRkZXJGdW5jdGlvbkNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoYWRk
ZXJGdW5jdGlvbiwgYWRkZXJGdW5jdGlvbkNhbGxEYXRhKTsKLSAgICBpZiAoYWRkZXJGdW5jdGlv
bkNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKQorICAgIGlmIChVTkxJS0VMWShhZGRlckZ1bmN0
aW9uQ2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlKSk7CiAKKyAgICBzY29wZS5yZWxlYXNl
KCk7CiAgICAgZm9yRWFjaEluSXRlcmFibGUoZXhlYywgaXRlcmFibGUsIFsmXShWTSYsIEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBuZXh0VmFsdWUpIHsKICAgICAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJndW1lbnRzOwogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG5leHRWYWx1ZSk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0
b3JQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAyMDg5NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYs
OCArNTYsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBTZXRJdGVyYXRvcgogICAg
IGlmICghaXRlcmF0b3IpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBl
RXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBTZXRJdGVy
YXRvci5uZXh0KCkgb24gYSBub24tU2V0SXRlcmF0b3Igb2JqZWN0IikpKTsKIAotICAgIGlmIChp
dGVyYXRvci0+bmV4dChjYWxsRnJhbWUsIHJlc3VsdCkpCisgICAgaWYgKGl0ZXJhdG9yLT5uZXh0
KGNhbGxGcmFtZSwgcmVzdWx0KSkgeworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoY2FsbEZy
YW1lLCByZXN1bHQsIGZhbHNlKSk7CisgICAgfQorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0ZUl0ZXJhdG9yUmVzdWx0T2JqZWN0KGNhbGxGcmFt
ZSwganNVbmRlZmluZWQoKSwgdHJ1ZSkpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcAkocmV2aXNpb24g
MjA4OTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1
ZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBib29sIFNwYXJzZUFy
cmF5VmFsdWVNYXA6OnB1dEVudHJ5KEV4ZWNTCiAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhl
Yywgc2NvcGUsIHNob3VsZFRocm93LCBBU0NJSUxpdGVyYWwoUmVhZG9ubHlQcm9wZXJ0eVdyaXRl
RXJyb3IpKTsKICAgICB9CiAgICAgCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBl
bnRyeS5wdXQoZXhlYywgYXJyYXksIHRoaXMsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKQEAg
LTE2Niw2ICsxNjcsNyBAQCBib29sIFNwYXJzZUFycmF5RW50cnk6OnB1dChFeGVjU3RhdGUqIGV4
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAg
ICByZXR1cm4gY2FsbFNldHRlcihleGVjLCB0aGlzVmFsdWUsIEJhc2U6OmdldCgpLCB2YWx1ZSwg
c2hvdWxkVGhyb3cgPyBTdHJpY3RNb2RlIDogTm90U3RyaWN0TW9kZSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBsYXRlUmVnaXN0cnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBsYXRlUmVnaXN0cnkuY3Bw
CShyZXZpc2lvbiAyMDg5NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1w
bGF0ZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksMTMgKzU5LDE1IEBAIEpTQXJy
YXkqIFRlbXBsYXRlUmVnaXN0cnk6OmdldFRlbXBsYXRlT2IKIAogICAgIGZvciAodW5zaWduZWQg
aW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIHRlbXBsYXRlT2Jq
ZWN0LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwganNTdHJpbmcoZXhlYywgdGVtcGxhdGVL
ZXkuY29va2VkU3RyaW5ncygpW2luZGV4XSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgUHV0RGly
ZWN0SW5kZXhMaWtlUHV0RGlyZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CiAgICAgICAgIHJhd09iamVjdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5k
ZXgsIGpzU3RyaW5nKGV4ZWMsIHRlbXBsYXRlS2V5LnJhd1N0cmluZ3MoKVtpbmRleF0pLCBSZWFk
T25seSB8IERvbnREZWxldGUsIFB1dERpcmVjdEluZGV4TGlrZVB1dERpcmVjdCk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIH0KIAogICAgIG9iamVj
dENvbnN0cnVjdG9yRnJlZXplKGV4ZWMsIHJhd09iamVjdCk7CiAgICAgQVNTRVJUKCFzY29wZS5l
eGNlcHRpb24oKSk7CiAKLSAgICB0ZW1wbGF0ZU9iamVjdC0+cHV0RGlyZWN0KHZtLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucmF3LCByYXdPYmplY3QsIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKKyAgICB0ZW1wbGF0ZU9iamVjdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5yYXcsIHJhd09iamVjdCwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwog
CiAgICAgLy8gVGVtcGxhdGUgSlNBcnJheSBob2xkIHRoZSByZWZlcmVuY2UgdG8gSlNUZW1wbGF0
ZVJlZ2lzdHJ5S2V5IHRvIG1ha2UgVGVtcGxhdGVSZWdpc3RyeUtleSBwb2ludGVyIGxpdmUgdW50
aWwgdGhpcyBKU0FycmF5IGlzIGNvbGxlY3RlZC4KICAgICAvLyBUZW1wbGF0ZVJlZ2lzdHJ5S2V5
IHBvaW50ZXIgaXMgdXNlZCBmb3IgVGVtcGxhdGVSZWdpc3RyeSdzIGtleS4K
</data>
<flag name="review"
          id="318022"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>