<?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>111623</bug_id>
          
          <creation_ts>2013-03-06 14:14:21 -0800</creation_ts>
          <short_desc>[Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information</short_desc>
          <delta_ts>2013-03-06 16:38:17 -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>Page Loading</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>mrobinson</cc>
    
    <cc>psolanki</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>849283</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 14:14:21 -0800</bug_when>
    <thetext>ResourceResponse does not have any clear way to keep platform response and WebCore data in sync. Calling any setter on the response leaves these in inconsistent state.

Furthermore, even if NSURLRequest was originally null, building it from WebCore data is extremely lossy - we don&apos;t even use a correct HTTP status code, defaulting to 0.

WebKit2 IPC only encodes NSURLRequest, so the other side will see a bad response with 0 status code for anything that was built synthetically (including but not limited to Blob reading responses).

Until rebuilding an NSURLRequest from platform data is implemented (and that&apos;s non-trivial), we&apos;ll have to send both over IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849310</commentid>
    <comment_count>1</comment_count>
      <attachid>191833</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 14:38:06 -0800</bug_when>
    <thetext>Created attachment 191833
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849410</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-06 16:07:03 -0800</bug_when>
    <thetext>&gt; Furthermore, even if NSURLRequest was originally null...
&gt; WebKit2 IPC only encodes NSURLRequest...
&gt;Until rebuilding an NSURLRequest from platform data is implemented ...

Did you mean NSURLResponse in each of these sentences?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849415</commentid>
    <comment_count>3</comment_count>
      <attachid>191833</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-06 16:09:51 -0800</bug_when>
    <thetext>Comment on attachment 191833
proposed patch

Not a fan of the huge swath of new fixmes without a bug #, but I think this is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849425</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 16:18:54 -0800</bug_when>
    <thetext>&gt; Did you mean NSURLResponse in each of these sentences?

Ugh. Yes.

Thank you for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849453</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 16:38:17 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/145007&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191833</attachid>
            <date>2013-03-06 14:38:06 -0800</date>
            <delta_ts>2013-03-06 16:09:50 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>ResourceResponseIPC.txt</filename>
            <type>text/plain</type>
            <size>19670</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDk3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAzLTA2ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFN5bnRoZXRpYyBS
ZXNvdXJjZVJlc3BvbnNlcyBjYW5ub3QgYmUgc2VudCBvdmVyIElQQyB3aXRob3V0IGxvc2luZyBt
b3N0IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTE2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnRlZCBmdW5jdGlvbnMgZm9yIGJ1aWxkaW5n
IHN5bnRoZXRpYyByZXNwb25zZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmg6CisgICAgICAgIEFkZGVkIGEgbG90IG9mIEZJWE1Fcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSk6CisgICAg
ICAgIFRyYWNrIG1fcGxhdGZvcm1SZXNwb25zZUlzVXBUb0RhdGUgZmxhZyBhcyB3ZWxsIGFzIHdl
IGNhbi4gQ3VycmVudGx5LCBpdCB3aWxsCisgICAgICAgIGJlIGluY29ycmVjdCBpZiBhIHJlYWwg
cGxhdGZvcm0gcmVzcG9uc2UgZ2V0cyBtdXRhdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZTo6Y2ZVUkxSZXNwb25zZSk6IEFkZGVkIGEgRklYTUUgYWJvdXQgaG93IHVz
ZWxlc3MgdGhpcworICAgICAgICBmdW5jdGlvbiBpcyB3aGVuIGl0IHRyaWVzIHRvIGNyZWF0ZSBh
IG5ldyBDRlVSTFJlc3BvbnNlLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VSZXNwb25zZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6
OmluaXROU1VSTFJlc3BvbnNlKTogQWRkZWQgYSBGSVhNRS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2U6Om5zVVJMUmVzcG9uc2UpOiBBZGRlZCBhIHJldHVybiB0byBtYWtlIGxv
Z2ljIG1vcmUgY2xlYXIuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNv
dXJjZVJlc3BvbnNlKTogVHJhY2sgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZS4KKworICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvd2luL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgVGhlc2UgcGxhdGZv
cm1zIGRvIG5vdCBrZWVwIGEgcGxhdGZvcm0gcmVzcG9uc2UsIHNvIGl0J3MgbmV2ZXIgdXAgdG8g
ZGF0ZSwgYW5kCisgICAgICAgIFdlYkNvcmUgZGF0YSBuZWVkcyB0byBiZSBzZXJpYWxpemVkLgor
CiAyMDEzLTAzLTA2ICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAgVXNl
IFNrVHlwZWZhY2UgQVBJIGRpcmVjdGx5LCByYXRoZXIgdGhhbiAoc29vbiB0byBiZSBwcml2YXRl
KSBTa0ZvbnRIb3N0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTQ0OTQ0KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTYxOCw2
ICs2MTgsOSBAQCBfX1pON1dlYkNvcmUyME5vZGVSZW5kZXJpbmdDb250ZXh0RDFFdgogX19aTjdX
ZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDI5c2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b25FTlMwXzI2UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25FCiBfX1pON1dlYkNvcmUyMFJlc291
cmNlUmVzcG9uc2VCYXNlMTFzZXRNaW1lVHlwZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3NldEhUVFBTdGF0dXNDb2RlRWkKK19fWk43V2ViQ29y
ZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3NldEhUVFBTdGF0dXNUZXh0RVJLTjNXVEY2U3RyaW5n
RQorX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4c2V0SFRUUEhlYWRlckZpZWxk
RVJLTjNXVEYxMkF0b21pY1N0cmluZ0VSS05TMV82U3RyaW5nRQorX19aTjdXZWJDb3JlMjBSZXNv
dXJjZVJlc3BvbnNlQmFzZTE5c2V0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTI0c2V0RXhw
ZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U2
c2V0VVJMRVJLTlNfNEtVUkxFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAkocmV2aXNpb24gMTQ0OTQ0
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsOSBAQCB2b2lkIFJlc291cmNlUmVz
cG9uc2VCYXNlOjpzZXRVUkwoY29uc3QgCiAgICAgbGF6eUluaXQoQ29tbW9uRmllbGRzT25seSk7
CiAgICAgbV9pc051bGwgPSBmYWxzZTsKIAotICAgIG1fdXJsID0gdXJsOyAKKyAgICBtX3VybCA9
IHVybDsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaW52YWxpZGF0ZSBvciB1cGRhdGUgcGxhdGZv
cm0gcmVzcG9uc2UgaWYgcHJlc2VudC4KIH0KIAogY29uc3QgU3RyaW5nJiBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTo6bWltZVR5cGUoKSBjb25zdApAQCAtMTcxLDcgKzE3MywxMCBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2VCYXNlOjpzZXRNaW1lVHlwZShjCiAgICAgbGF6eUluaXQoQ29tbW9uRmllbGRz
T25seSk7CiAgICAgbV9pc051bGwgPSBmYWxzZTsKIAotICAgIG1fbWltZVR5cGUgPSBtaW1lVHlw
ZTsgCisgICAgLy8gRklYTUU6IE1JTUUgdHlwZSBpcyBkZXRlcm1pbmVkIGJ5IEhUVFAgQ29udGVu
dC1UeXBlIGhlYWRlci4gV2Ugc2hvdWxkIHVwZGF0ZSB0aGUgaGVhZGVyLCBzbyB0aGF0IGl0IGRv
ZXNuJ3QgZGlzYWdyZWUgd2l0aCBtX21pbWVUeXBlLgorICAgIG1fbWltZVR5cGUgPSBtaW1lVHlw
ZTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaW52YWxpZGF0ZSBvciB1cGRhdGUgcGxhdGZvcm0g
cmVzcG9uc2UgaWYgcHJlc2VudC4KIH0KIAogbG9uZyBsb25nIFJlc291cmNlUmVzcG9uc2VCYXNl
OjpleHBlY3RlZENvbnRlbnRMZW5ndGgoKSBjb25zdCAKQEAgLTE4Niw3ICsxOTEsMTAgQEAgdm9p
ZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0RXhwZWN0ZWRDbwogICAgIGxhenlJbml0KENvbW1v
bkZpZWxkc09ubHkpOwogICAgIG1faXNOdWxsID0gZmFsc2U7CiAKKyAgICAvLyBGSVhNRTogQ29u
dGVudCBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSBIVFRQIENvbnRlbnQtTGVuZ3RoIGhlYWRlci4g
V2Ugc2hvdWxkIHVwZGF0ZSB0aGUgaGVhZGVyLCBzbyB0aGF0IGl0IGRvZXNuJ3QgZGlzYWdyZWUg
d2l0aCBtX2V4cGVjdGVkQ29udGVudExlbmd0aC4KICAgICBtX2V4cGVjdGVkQ29udGVudExlbmd0
aCA9IGV4cGVjdGVkQ29udGVudExlbmd0aDsgCisKKyAgICAvLyBGSVhNRTogU2hvdWxkIGludmFs
aWRhdGUgb3IgdXBkYXRlIHBsYXRmb3JtIHJlc3BvbnNlIGlmIHByZXNlbnQuCiB9CiAKIGNvbnN0
IFN0cmluZyYgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnRleHRFbmNvZGluZ05hbWUoKSBjb25zdApA
QCAtMjAxLDcgKzIwOSwxMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRUZXh0RW5j
b2RpCiAgICAgbGF6eUluaXQoQ29tbW9uRmllbGRzT25seSk7CiAgICAgbV9pc051bGwgPSBmYWxz
ZTsKIAotICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9IGVuY29kaW5nTmFtZTsgCisgICAgLy8gRklY
TUU6IFRleHQgZW5jb2RpbmcgaXMgZGV0ZXJtaW5lZCBieSBIVFRQIENvbnRlbnQtVHlwZSBoZWFk
ZXIuIFdlIHNob3VsZCB1cGRhdGUgdGhlIGhlYWRlciwgc28gdGhhdCBpdCBkb2Vzbid0IGRpc2Fn
cmVlIHdpdGggbV90ZXh0RW5jb2RpbmdOYW1lLgorICAgIG1fdGV4dEVuY29kaW5nTmFtZSA9IGVu
Y29kaW5nTmFtZTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaW52YWxpZGF0ZSBvciB1cGRhdGUg
cGxhdGZvcm0gcmVzcG9uc2UgaWYgcHJlc2VudC4KIH0KIAogLy8gRklYTUUgc2hvdWxkIGNvbXB1
dGUgdGhpcyBvbiB0aGUgZmx5CkBAIC0yMTcsNyArMjI4LDEwIEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZUJhc2U6OnNldFN1Z2dlc3RlZEYKICAgICBsYXp5SW5pdChBbGxGaWVsZHMpOwogICAgIG1f
aXNOdWxsID0gZmFsc2U7CiAKKyAgICAvLyBGSVhNRTogU3VnZ2VzdGVkIGZpbGUgbmFtZSBpcyBj
YWxjdWxhdGVkIGJhc2VkIG9uIG90aGVyIGhlYWRlcnMuIFRoZXJlIHNob3VsZCBub3QgYmUgYSBz
ZXR0ZXIgZm9yIGl0LgogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUgPSBzdWdnZXN0ZWROYW1lOyAK
KworICAgIC8vIEZJWE1FOiBTaG91bGQgaW52YWxpZGF0ZSBvciB1cGRhdGUgcGxhdGZvcm0gcmVz
cG9uc2UgaWYgcHJlc2VudC4KIH0KIAogaW50IFJlc291cmNlUmVzcG9uc2VCYXNlOjpodHRwU3Rh
dHVzQ29kZSgpIGNvbnN0CkBAIC0yMzIsNiArMjQ2LDggQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6c2V0SFRUUFN0YXR1cwogICAgIGxhenlJbml0KENvbW1vbkZpZWxkc09ubHkpOwogCiAg
ICAgbV9odHRwU3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7CisKKyAgICAvLyBGSVhNRTogU2hvdWxk
IGludmFsaWRhdGUgb3IgdXBkYXRlIHBsYXRmb3JtIHJlc3BvbnNlIGlmIHByZXNlbnQuCiB9CiAK
IGNvbnN0IFN0cmluZyYgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBTdGF0dXNUZXh0KCkgY29u
c3QgCkBAIC0yNDYsNiArMjYyLDggQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0SFRU
UFN0YXR1cwogICAgIGxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKIAogICAgIG1f
aHR0cFN0YXR1c1RleHQgPSBzdGF0dXNUZXh0OyAKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaW52
YWxpZGF0ZSBvciB1cGRhdGUgcGxhdGZvcm0gcmVzcG9uc2UgaWYgcHJlc2VudC4KIH0KIAogU3Ry
aW5nIFJlc291cmNlUmVzcG9uc2VCYXNlOjpodHRwSGVhZGVyRmllbGQoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lKSBjb25zdApAQCAtMzA0LDYgKzMyMiw4IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OnNldEhUVFBIZWFkZXIKICAgICB1cGRhdGVIZWFkZXJQYXJzZWRTdGF0ZShuYW1lKTsK
IAogICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQobmFtZSwgdmFsdWUpOworCisgICAgLy8gRklY
TUU6IFNob3VsZCBpbnZhbGlkYXRlIG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25zZSBpZiBwcmVz
ZW50LgogfQogCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjphZGRIVFRQSGVhZGVyRmllbGQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNTA0LDYg
KzUyNCw4IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnNldExhc3RNb2RpZmkKICAgICBs
YXp5SW5pdChDb21tb25BbmRVbmNvbW1vbkZpZWxkcyk7CiAKICAgICBtX2xhc3RNb2RpZmllZERh
dGUgPSBsYXN0TW9kaWZpZWREYXRlOworCisgICAgLy8gRklYTUU6IFNob3VsZCBpbnZhbGlkYXRl
IG9yIHVwZGF0ZSBwbGF0Zm9ybSByZXNwb25zZSBpZiBwcmVzZW50LgogfQogCiB0aW1lX3QgUmVz
b3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZERhdGUoKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuaAkocmV2aXNpb24gMTQ0OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZ05hbWUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIC8v
IEZJWE1FIHNob3VsZCBjb21wdXRlIHRoaXMgb24gdGhlIGZseQorICAgIC8vIEZJWE1FOiBTaG91
bGQgY29tcHV0ZSB0aGlzIG9uIHRoZSBmbHkuCisgICAgLy8gVGhlcmUgc2hvdWxkIG5vdCBiZSBh
IHNldHRlciBleHBvc2VkLCBhcyBzdWdnZXN0ZWQgZmlsZSBuYW1lIGlzIGRldGVybWluZWQgYmFz
ZWQgb24gb3RoZXIgaGVhZGVycyBpbiBhIG1hbm5lciB0aGF0IFdlYkNvcmUgZG9lcyBub3QgbmVj
ZXNzYXJpbHkga25vdyBhYm91dC4KICAgICBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmKTsK
IApAQCAtODgsNyArODksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQXR0YWNobWVudCgpIGNv
bnN0OwogICAgIAotICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgdXNlZCBieSBQbHVnaW5TdHJlYW0g
b24gc29tZSBwbGF0Zm9ybXMuIENhbGN1bGF0aW9ucyBtYXkgZGlmZmVyIGZyb20ganVzdCByZXR1
cm5pbmcgcGxhaW4gTGFzdC1vZGlmaWVkIGhlYWRlci4KKyAgICAvLyBGSVhNRTogVGhlc2UgYXJl
IHVzZWQgYnkgUGx1Z2luU3RyZWFtIG9uIHNvbWUgcGxhdGZvcm1zLiBDYWxjdWxhdGlvbnMgbWF5
IGRpZmZlciBmcm9tIGp1c3QgcmV0dXJuaW5nIHBsYWluIExhc3QtTW9kaWZpZWQgaGVhZGVyLgog
ICAgIC8vIExlYXZpbmcgaXQgZm9yIG5vdyBidXQgdGhpcyBzaG91bGQgZ28gYXdheSBpbiBmYXZv
ciBvZiBnZW5lcmljIHNvbHV0aW9uLgogICAgIHZvaWQgc2V0TGFzdE1vZGlmaWVkRGF0ZSh0aW1l
X3QpOwogICAgIHRpbWVfdCBsYXN0TW9kaWZpZWREYXRlKCkgY29uc3Q7IApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVzcG9uc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
UmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiAxNDQ5NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzTXVsdGlwYXJ0UGF5
bG9hZChib29sIHZhbHVlKSB7IG1faXNNdWx0aXBhcnRQYXlsb2FkID0gdmFsdWU7IH0KICAgICBi
b29sIGlzTXVsdGlwYXJ0UGF5bG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNNdWx0aXBhcnRQYXls
b2FkOyB9CiAKKyAgICBib29sIHBsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKwogcHJpdmF0ZToKICAgICBib29sIG1faXNNdWx0aXBhcnRQYXlsb2Fk
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiAxNDQ5NDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNiArNDEsNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlIDogcHVibGljIFJlc291cmNl
CiBwdWJsaWM6CiAgICAgUmVzb3VyY2VSZXNwb25zZSgpCiAgICAgICAgIDogbV9pbml0TGV2ZWwo
Q29tbW9uQW5kVW5jb21tb25GaWVsZHMpCisgICAgICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNV
cFRvRGF0ZSh0cnVlKQogICAgIHsKICAgICB9CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgog
ICAgIFJlc291cmNlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogICAgICAg
ICA6IG1fY2ZSZXNwb25zZShjZlJlc3BvbnNlKQogICAgICAgICAsIG1faW5pdExldmVsKFVuaW5p
dGlhbGl6ZWQpCisgICAgICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSh0cnVlKQog
ICAgIHsKICAgICAgICAgbV9pc051bGwgPSAhY2ZSZXNwb25zZTsKICAgICB9CkBAIC01OCw2ICs2
MCw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZVJlc3BvbnNlKE5TVVJMUmVzcG9uc2UgKm5zUmVz
cG9uc2UpCiAgICAgICAgIDogbV9uc1Jlc3BvbnNlKG5zUmVzcG9uc2UpCiAgICAgICAgICwgbV9p
bml0TGV2ZWwoVW5pbml0aWFsaXplZCkKKyAgICAgICAgLCBtX3BsYXRmb3JtUmVzcG9uc2VJc1Vw
VG9EYXRlKHRydWUpCiAgICAgewogICAgICAgICBtX2lzTnVsbCA9ICFuc1Jlc3BvbnNlOwogICAg
IH0KQEAgLTY2LDYgKzY5LDcgQEAgcHVibGljOgogICAgIFJlc291cmNlUmVzcG9uc2UoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBsb25nIGxvbmcgZXhwZWN0ZWRMZW5n
dGgsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSkKICAgICAgICAgOiBSZXNvdXJjZVJlc3BvbnNlQmFzZSh1cmwsIG1pbWVUeXBlLCBleHBlY3Rl
ZExlbmd0aCwgdGV4dEVuY29kaW5nTmFtZSwgZmlsZW5hbWUpCiAgICAgICAgICwgbV9pbml0TGV2
ZWwoQ29tbW9uQW5kVW5jb21tb25GaWVsZHMpCisgICAgICAgICwgbV9wbGF0Zm9ybVJlc3BvbnNl
SXNVcFRvRGF0ZShmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC05Myw2ICs5Nyw4IEBAIHB1Ymxp
YzoKICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0Owog
I2VuZGlmCiAKKyAgICBib29sIHBsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZTsgfQorCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIApAQCAtMTE2LDYgKzEyMiw3IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IG1fZXh0ZXJuYWxDZXJ0aWZpY2F0ZUNo
YWluOwogI2VuZGlmCiAgICAgSW5pdExldmVsIG1faW5pdExldmVsOworICAgIGJvb2wgbV9wbGF0
Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZTsKIH07CiAKIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNl
UmVzcG9uc2VEYXRhIDogcHVibGljIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGFCYXNl
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNw
b25zZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAJKHJldmlzaW9uIDE0NDk0NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOSBAQCBDRlVSTFJlc3BvbnNlUmVmIFJlc291
cmNlUmVzcG9uc2U6OmNmVVJMCiB7CiAgICAgaWYgKCFtX2NmUmVzcG9uc2UgJiYgIW1faXNOdWxs
KSB7CiAgICAgICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJsKEFkb3B0Q0YsIG1fdXJsLmNyZWF0
ZUNGVVJMKCkpOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNyZWF0ZXMgYSB2ZXJ5IGluY29t
cGxldGUgQ0ZVUkxSZXNwb25zZSwgd2hpY2ggZG9lcyBub3QgZXZlbiBoYXZlIGEgc3RhdHVzIGNv
ZGUuCisKICAgICAgICAgbV9jZlJlc3BvbnNlLmFkb3B0Q0YoQ0ZVUkxSZXNwb25zZUNyZWF0ZSgw
LCB1cmwuZ2V0KCksIG1fbWltZVR5cGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbV9leHBlY3Rl
ZENvbnRlbnRMZW5ndGgsIG1fdGV4dEVuY29kaW5nTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCBrQ0ZVUkxDYWNoZVN0b3JhZ2VBbGxvd2VkKSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZVJlc3BvbnNl
LmgJKHJldmlzaW9uIDE0NDk0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZVJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDggQEAg
cHVibGljOgogICAgIC8vIE5lZWRlZCBmb3IgY29tcGF0aWJpbGl0eS4KICAgICBDRlVSTFJlc3Bv
bnNlUmVmIGNmVVJMUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKKyAgICBib29sIHBs
YXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogcHJp
dmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2VNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VSZXNwb25zZU1hYy5tbQkocmV2aXNpb24gMTQ0OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNjEsNiArNjEsOSBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OmluaXROU1VSTFJlc3BvbnNl
CiAgICAgICAgIGV4cGVjdGVkQ29udGVudExlbmd0aCA9IC0xOwogICAgIGVsc2UKICAgICAgICAg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gc3RhdGljX2Nhc3Q8TlNJbnRlZ2VyPihtX2V4cGVjdGVk
Q29udGVudExlbmd0aCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBjcmVhdGVzIGEgdmVyeSBpbmNv
bXBsZXRlIE5TVVJMUmVzcG9uc2UsIHdoaWNoIGRvZXMgbm90IGV2ZW4gaGF2ZSBhIHN0YXR1cyBj
b2RlLgorCiAgICAgbV9uc1Jlc3BvbnNlLmFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBp
bml0V2l0aFVSTDptX3VybCBNSU1FVHlwZTptX21pbWVUeXBlIGV4cGVjdGVkQ29udGVudExlbmd0
aDpleHBlY3RlZENvbnRlbnRMZW5ndGggdGV4dEVuY29kaW5nTmFtZTptX3RleHRFbmNvZGluZ05h
bWVdKTsKIH0KIApAQCAtNzEsNiArNzQsNyBAQCBOU1VSTFJlc3BvbnNlICpSZXNvdXJjZVJlc3Bv
bnNlOjpuc1VSTFJlCiAgICAgaWYgKCFtX25zUmVzcG9uc2UgJiYgIW1fY2ZSZXNwb25zZSAmJiAh
bV9pc051bGwpIHsKICAgICAgICAgaW5pdE5TVVJMUmVzcG9uc2UoKTsKICAgICAgICAgbV9jZlJl
c3BvbnNlID0gW21fbnNSZXNwb25zZS5nZXQoKSBfQ0ZVUkxSZXNwb25zZV07CisgICAgICAgIHJl
dHVybiBtX25zUmVzcG9uc2UuZ2V0KCk7CiAgICAgfQogCiAgICAgaWYgKCFtX2NmUmVzcG9uc2Up
CkBAIC04Niw2ICs5MCw3IEBAIFJlc291cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9uc2UoTlNV
UkwKICAgICA6IG1fY2ZSZXNwb25zZShbbnNSZXNwb25zZSBfQ0ZVUkxSZXNwb25zZV0pCiAgICAg
LCBtX25zUmVzcG9uc2UobnNSZXNwb25zZSkKICAgICAsIG1faW5pdExldmVsKFVuaW5pdGlhbGl6
ZWQpCisgICAgLCBtX3BsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKHRydWUpCiB7CiAgICAgbV9p
c051bGwgPSAhbnNSZXNwb25zZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiAxNDQ5NDQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAorICAgIGJvb2wgcGxhdGZvcm1SZXNwb25zZUlzVXBUb0RhdGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiAxNDQ5NDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKICAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBz
b3VwTWVzc2FnZVRMU0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fdGxzRXJyb3JzOyB9CiAgICAg
dm9pZCBzZXRTb3VwTWVzc2FnZVRMU0Vycm9ycyhHVGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJv
cnMpIHsgbV90bHNFcnJvcnMgPSB0bHNFcnJvcnM7IH0KIAorICAgIGJvb2wgcGxhdGZvcm1SZXNw
b25zZUlzVXBUb0RhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlUmVzcG9uc2UuaAko
cmV2aXNpb24gMTQ0OTQ0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4v
UmVzb3VyY2VSZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCisgICAgYm9vbCBwbGF0Zm9ybVJlc3BvbnNlSXNVcFRvRGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJl
c291cmNlUmVzcG9uc2VCYXNlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDQ5NzgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBA
QAorMjAxMy0wMy0wNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAg
ICAgICBbTWFjXSBTeW50aGV0aWMgUmVzb3VyY2VSZXNwb25zZXMgY2Fubm90IGJlIHNlbnQgb3Zl
ciBJUEMgd2l0aG91dCBsb3NpbmcgbW9zdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNjIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAg
ICAgIChDb3JlSVBDOjo6OmVuY29kZSk6IE1hZGUgdGhlIGRlY2lzaW9uIG9uIHdoZXRoZXIgdG8g
c2VyaWFsaXplIFdlYkNvcmUgZGF0YSBpbgorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIGR5bmFt
aWMuIElmIHRoZSBwbGF0Zm9ybSBkYXRhIGlzIG91dCBvZiBkYXRlLCB3ZSBuZWVkIGJvdGgKKyAg
ICAgICAgKGJlY2F1c2Ugc29tZSBwbGF0Zm9ybXMgdXNlIGVuY29kZVBsYXRmb3JtRGF0YSgpIHRv
IHBhc3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbikuCisgICAgICAgIChDb3JlSVBDOjo6OmRlY29k
ZSk6IERlY29kZSBwbGF0Zm9ybSBkYXRhIGZpcnN0LCBiZWNhdXNlIHRoaXMgb3ZlcndyaXRlcyB0
aGUgUmVzb3VyY2VSZXNwb25zZS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tOiAoQ29yZUlQQzo6OjplbmNvZGVQbGF0Zm9ybURhdGEpOiBEb24ndAor
ICAgICAgICBlbmNvZGUgTlNVUkxSZXNwb25zZSBpZiBpdCdzIG91dCBvZiBkYXRlLiBXZSBtYXkg
aGF2ZSBhIGJhZCBOU1VSTFJlc3BvbnNlIHdpdGggMAorICAgICAgICBzdGF0dXMgY29kZSBnaXZl
biB0byBjbGllbnQsIGJ1dCBpdCB3YXMgYWxtb3N0IGNlcnRhaW5seSB0aGUgc2FtZSBvbiBzZW5k
aW5nIHNpZGUuCisgICAgICAgIFdlYkNvcmUgZG9lc24ndCBtdXRhdGUgcmVhbCByZXNwb25zZXMg
LSBpdCBlaXRoZXIga2VlcHMgdGhlbSBhcyBpcywgb3IgYnVpbGRzCisgICAgICAgIGVudGlyZWx5
IHN5bnRoZXRpYyBvbmVzLgorCiAyMDEzLTAzLTA2ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRh
cnNhbmEubmFnaW5lbmlAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gUkVHUkVTU0lP
TihyMTQzNTgyKTogQVBJIHRlc3QgRVdLMlVuaXRUZXN0QmFzZS5ld2tfdmlld19jb250ZW50c19z
aXplX2NoYW5nZWQgZmFpbGluZwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE0NDk0NCkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MzMsNyArNDMzLDE2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWMK
IAogdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNl
KQogewotICAgIGlmIChrU2hvdWxkU2VyaWFsaXplV2ViQ29yZURhdGEpIHsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgYm9vbCBzaG91bGRTZXJpYWxpemVXZWJDb3JlRGF0YSA9ICFyZXNvdXJjZVJl
c3BvbnNlLnBsYXRmb3JtUmVzcG9uc2VJc1VwVG9EYXRlKCk7CisgICAgZW5jb2RlciA8PCBzaG91
bGRTZXJpYWxpemVXZWJDb3JlRGF0YTsKKyNlbHNlCisgICAgYm9vbCBzaG91bGRTZXJpYWxpemVX
ZWJDb3JlRGF0YSA9IHRydWU7CisjZW5kaWYKKworICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNv
ZGVyLCByZXNvdXJjZVJlc3BvbnNlKTsKKworICAgIGlmIChzaG91bGRTZXJpYWxpemVXZWJDb3Jl
RGF0YSkgewogICAgICAgICBib29sIHJlc3BvbnNlSXNOdWxsID0gcmVzb3VyY2VSZXNwb25zZS5p
c051bGwoKTsKICAgICAgICAgZW5jb2RlciA8PCByZXNwb25zZUlzTnVsbDsKICAgICAgICAgaWYg
KHJlc3BvbnNlSXNOdWxsKQpAQCAtNDQ5LDEzICs0NTgsMjQgQEAgdm9pZCBBcmd1bWVudENvZGVy
PFJlc291cmNlUmVzcG9uc2U+OjplbgogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9u
c2UuaHR0cFN0YXR1c1RleHQoKTsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNl
LnN1Z2dlc3RlZEZpbGVuYW1lKCk7CiAgICAgfQotCi0gICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVu
Y29kZXIsIHJlc291cmNlUmVzcG9uc2UpOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVz
cG9uc2UmIHJlc291cmNlUmVzcG9uc2UpCiB7Ci0gICAgaWYgKGtTaG91bGRTZXJpYWxpemVXZWJD
b3JlRGF0YSkgeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIGhhc1NlcmlhbGl6ZWRXZWJD
b3JlRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1NlcmlhbGl6ZWRXZWJDb3JlRGF0
YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgYm9vbCBoYXNTZXJpYWxpemVk
V2ViQ29yZURhdGEgPSB0cnVlOworI2VuZGlmCisKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlOworCisgICAgaWYgKCFkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgcmVzcG9uc2UpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaGFzU2VyaWFsaXplZFdlYkNvcmVEYXRh
KSB7CiAgICAgICAgIGJvb2wgcmVzcG9uc2VJc051bGw7CiAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzcG9uc2VJc051bGwpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDY0
LDggKzQ4NCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGUKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZTsKLQogICAgICAgICBTdHJpbmcgdXJsOwogICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHVybCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MDYsMTEgKzUy
NCwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlCiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3VnZ2VzdGVkRmlsZW5hbWUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXNwb25zZS5zZXRTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0
ZWRGaWxlbmFtZSk7Ci0KLSAgICAgICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOwogICAg
IH0KIAotICAgIHJldHVybiBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgcmVzb3VyY2VSZXNw
b25zZSk7CisgICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOworCisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgJ
KHJldmlzaW9uIDE0NDk0NCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDEyICsxNjIsNiBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U+IHsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgc3RhdGljIGNvbnN0IGJvb2wga1Nob3VsZFNlcmlhbGl6ZVdlYkNvcmVEYXRhID0g
ZmFsc2U7Ci0jZWxzZQotICAgIHN0YXRpYyBjb25zdCBib29sIGtTaG91bGRTZXJpYWxpemVXZWJD
b3JlRGF0YSA9IHRydWU7Ci0jZW5kaWYKLQogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0JKHJldmlz
aW9uIDE0NDk0NCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWMKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVzcG9uc2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQogewotICAgIGJvb2wg
cmVzcG9uc2VJc1ByZXNlbnQgPSByZXNvdXJjZVJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKTsKKyAg
ICBib29sIHJlc3BvbnNlSXNQcmVzZW50ID0gcmVzb3VyY2VSZXNwb25zZS5wbGF0Zm9ybVJlc3Bv
bnNlSXNVcFRvRGF0ZSgpICYmIHJlc291cmNlUmVzcG9uc2UubnNVUkxSZXNwb25zZSgpOwogICAg
IGVuY29kZXIgPDwgcmVzcG9uc2VJc1ByZXNlbnQ7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNQcmVz
ZW50KQo=
</data>
<flag name="review"
          id="212904"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>