<?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>26925</bug_id>
          
          <creation_ts>2009-07-02 10:36:47 -0700</creation_ts>
          <short_desc>URL fragment breaks application cache loads</short_desc>
          <delta_ts>2009-07-28 15:24:24 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Grieve">agrieve</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>agrieve</cc>
    
    <cc>andreip</cc>
    
    <cc>ap</cc>
    
    <cc>benm</cc>
    
    <cc>darin</cc>
    
    <cc>ian</cc>
    
    <cc>michaeln</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129528</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Grieve">agrieve</who>
    <bug_when>2009-07-02 10:36:47 -0700</bug_when>
    <thetext>The URL Hash is store in the AppCache database and it does not allow an appcached page to be loaded from appcache with a different fragment from the one it was initially loaded with.

Steps to reproduce:

1. Create a Hello World style webpage and a manifest that has no entries in it.
2. Open the page and change the URL hash to #foo
2. Do a browser refresh (to put it into AppCache)
3. Go offline
4. Do a browser refresh and ensure the page refreshes from AppCache.
5. Change the URL hash to #bar
6. Do a browser refresh and notice that it fails to load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129663</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-02 21:53:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/7029995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129717</commentid>
    <comment_count>2</comment_count>
    <who name="Andrew Grieve">agrieve</who>
    <bug_when>2009-07-03 08:48:58 -0700</bug_when>
    <thetext>I also opened a radar bug for this (sorry for not mentioning it before):

&lt;rdar://problem/7027850&gt;

Also, I&apos;ve found an existing hello world style page to test against:

http://www.thecssninja.com/demo/offline_webapp/index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130771</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-09 17:07:18 -0700</bug_when>
    <thetext>I think that the behavior is correct per the current spec - it never says that fragments should be ignored when loading resources, or when storing implicit resources. It only says that fragments should be ignored on URLs in manifests, as far as I can see.

But I also think that the desired behavior is to ignore them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130827</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2009-07-09 21:15:56 -0700</bug_when>
    <thetext>I think the spec has a bug if that&apos;s what it says case :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131435</commentid>
    <comment_count>5</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-07-13 16:18:48 -0700</bug_when>
    <thetext>http://www.whatwg.org/specs/web-apps/current-work/#parsing-cache-manifests

The spec says to drop the fragment identifier part of any URLs parsed in the manifest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131436</commentid>
    <comment_count>6</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-07-13 16:22:30 -0700</bug_when>
    <thetext>Nevermind, I understand now. Yeah, this is wrong in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131437</commentid>
    <comment_count>7</comment_count>
      <attachid>32687</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-13 16:26:13 -0700</bug_when>
    <thetext>Created attachment 32687
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131443</commentid>
    <comment_count>8</comment_count>
      <attachid>32687</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-13 16:55:19 -0700</bug_when>
    <thetext>Comment on attachment 32687
proposed fix

r=me

Should we use KURL more and String less?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131446</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-13 17:09:12 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/45848&gt;.

(In reply to comment #8)
&gt; Should we use KURL more and String less?

Probably not worth it in most cases here, as they only check hasRef() in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135373</commentid>
    <comment_count>10</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-07-28 14:35:25 -0700</bug_when>
    <thetext>spec is fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135394</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-28 15:24:24 -0700</bug_when>
    <thetext>Oops, forgot to mark this bug as fixed: &lt;http://trac.webkit.org/projects/webkit/changeset/45848&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32687</attachid>
            <date>2009-07-13 16:26:13 -0700</date>
            <delta_ts>2009-07-13 16:55:19 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>AppcacheFragment.txt</filename>
            <type>text/plain</type>
            <size>15297</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTg0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDktMDctMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjkyNQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzAyNzg1MD4gVVJMIEZyYWdtZW50IEJyZWFrcyBBcHBsaWNhdGlvbiBD
YWNoZSBMb2FkcworCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbWFpbi1yZXNv
dXJjZS1oYXNoLmh0bWwKKworICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGU6OnJlc291cmNlRm9y
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGU6OnJlc291cmNlRm9yUmVx
dWVzdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNhY2hlRm9yTWFp
blJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxs
YmFja0NhY2hlRm9yTWFpblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZUdyb3VwOjpzZWxlY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUdyb3VwOjphZGRFbnRyeSk6CisgICAgICAgIFJlbW92ZSBVUkwg
ZnJhZ21lbnQgYXQgYXBwY2FjaGUgY29kZSBib3JkZXJzLgorCisgICAgICAgICogbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6ZmluZE9yQ3JlYXRlQ2FjaGVHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FjaGVHcm91cEZvclVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6ZmFsbGJhY2tDYWNoZUdyb3VwRm9y
VVJMKToKKyAgICAgICAgQXNzZXJ0IHRoYXQgdGhlcmUgaXMgbm8gVVJMIGZyYWdtZW50IGluIFVS
TCBhdCBrZXkgcG9pbnRzIGluIGFwcGNhY2hlIGNvZGUuCisKIDIwMDktMDctMTMgIERpbWl0cmkg
R2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlLmNwcAkocmV2aXNpb24gNDU4MzQpCisrKyBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIHVu
c2lnbmVkIEFwcGxpY2F0aW9uQ2FjaGU6OnJlbW92ZVJlc291cmMKICAgICAKIEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZSogQXBwbGljYXRpb25DYWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CisgICAgQVNTRVJUKCFLVVJMKHVybCkuaGFzUmVmKCkpOwogICAgIHJldHVy
biBtX3Jlc291cmNlcy5nZXQodXJsKS5nZXQoKTsKIH0gICAgCiAKQEAgLTEyNSw4ICsxMjYsMTIg
QEAgQXBwbGljYXRpb25DYWNoZVJlc291cmNlKiBBcHBsaWNhdGlvbkNhYwogICAgIC8vIFdlIG9u
bHkgY2FyZSBhYm91dCBIVFRQL0hUVFBTIEdFVCByZXF1ZXN0cy4KICAgICBpZiAoIXJlcXVlc3RJ
c0hUVFBPckhUVFBTR2V0KHJlcXVlc3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgcmV0dXJuIHJlc291cmNlRm9yVVJMKHJlcXVlc3QudXJsKCkpOworCisgICAgS1VSTCB1cmwo
cmVxdWVzdC51cmwoKSk7CisgICAgaWYgKHVybC5oYXNSZWYoKSkKKyAgICAgICAgdXJsLnJlbW92
ZVJlZigpOworCisgICAgcmV0dXJuIHJlc291cmNlRm9yVVJMKHVybCk7CiB9CiAKIHZvaWQgQXBw
bGljYXRpb25DYWNoZTo6c2V0T25saW5lV2hpdGVsaXN0KGNvbnN0IFZlY3RvcjxLVVJMPiYgb25s
aW5lV2hpdGVsaXN0KQpJbmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCShyZXZpc2lvbiA0NTgzNCkKKysrIFdlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgz
LDcgKzgzLDExIEBAIEFwcGxpY2F0aW9uQ2FjaGUqIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDoKICAg
ICBpZiAoIUFwcGxpY2F0aW9uQ2FjaGU6OnJlcXVlc3RJc0hUVFBPckhUVFBTR2V0KHJlcXVlc3Qp
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdy
b3VwID0gY2FjaGVTdG9yYWdlKCkuY2FjaGVHcm91cEZvclVSTChyZXF1ZXN0LnVybCgpKSkgewor
ICAgIEtVUkwgdXJsKHJlcXVlc3QudXJsKCkpOworICAgIGlmICh1cmwuaGFzUmVmKCkpCisgICAg
ICAgIHVybC5yZW1vdmVSZWYoKTsKKworICAgIGlmIChBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdy
b3VwID0gY2FjaGVTdG9yYWdlKCkuY2FjaGVHcm91cEZvclVSTCh1cmwpKSB7CiAgICAgICAgIEFT
U0VSVChncm91cC0+bmV3ZXN0Q2FjaGUoKSk7CiAgICAgICAgIEFTU0VSVCghZ3JvdXAtPmlzT2Jz
b2xldGUoKSk7CiAgICAgICAgIApAQCAtOTgsNyArMTAyLDExIEBAIEFwcGxpY2F0aW9uQ2FjaGUq
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDoKICAgICBpZiAoIUFwcGxpY2F0aW9uQ2FjaGU6OnJlcXVl
c3RJc0hUVFBPckhUVFBTR2V0KHJlcXVlc3QpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlm
IChBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwID0gY2FjaGVTdG9yYWdlKCkuZmFsbGJhY2tD
YWNoZUdyb3VwRm9yVVJMKHJlcXVlc3QudXJsKCkpKSB7CisgICAgS1VSTCB1cmwocmVxdWVzdC51
cmwoKSk7CisgICAgaWYgKHVybC5oYXNSZWYoKSkKKyAgICAgICAgdXJsLnJlbW92ZVJlZigpOwor
CisgICAgaWYgKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAgPSBjYWNoZVN0b3JhZ2UoKS5m
YWxsYmFja0NhY2hlR3JvdXBGb3JVUkwodXJsKSkgewogICAgICAgICBBU1NFUlQoZ3JvdXAtPm5l
d2VzdENhY2hlKCkpOwogICAgICAgICBBU1NFUlQoIWdyb3VwLT5pc09ic29sZXRlKCkpOwogCkBA
IC0xMDgsNyArMTE2LDcgQEAgQXBwbGljYXRpb25DYWNoZSogQXBwbGljYXRpb25DYWNoZUdyb3Vw
OgogICAgIHJldHVybiAwOwogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6c2VsZWN0
Q2FjaGUoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiBtYW5pZmVzdFVSTCkKK3ZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpzZWxlY3RDYWNoZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBh
c3NlZE1hbmlmZXN0VVJMKQogewogICAgIEFTU0VSVChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKTsK
ICAgICAKQEAgLTExOCwxMSArMTI2LDE1IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpz
ZWxlY3RDYWNoZSgKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS0+
bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CiAgICAgQVNTRVJUKCFkb2N1bWVudExvYWRlci0+
YXBwbGljYXRpb25DYWNoZSgpKTsKIAotICAgIGlmIChtYW5pZmVzdFVSTC5pc051bGwoKSkgewor
ICAgIGlmIChwYXNzZWRNYW5pZmVzdFVSTC5pc051bGwoKSkgewogICAgICAgICBzZWxlY3RDYWNo
ZVdpdGhvdXRNYW5pZmVzdFVSTChmcmFtZSk7ICAgICAgICAKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICAKKworICAgIEtVUkwgbWFuaWZlc3RVUkwocGFzc2VkTWFuaWZlc3RVUkwpOworICAg
IGlmIChtYW5pZmVzdFVSTC5oYXNSZWYoKSkKKyAgICAgICAgbWFuaWZlc3RVUkwucmVtb3ZlUmVm
KCk7CisKICAgICBBcHBsaWNhdGlvbkNhY2hlKiBtYWluUmVzb3VyY2VDYWNoZSA9IGRvY3VtZW50
TG9hZGVyLT5tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlKCk7CiAgICAgCiAgICAgaWYgKG1h
aW5SZXNvdXJjZUNhY2hlKSB7CkBAIC0xMzEsNyArMTQzLDEwIEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpzZWxlY3RDYWNoZSgKICAgICAgICAgICAgIG1haW5SZXNvdXJjZUNhY2hlLT5n
cm91cCgpLT51cGRhdGUoZnJhbWUsIEFwcGxpY2F0aW9uQ2FjaGVVcGRhdGVXaXRoQnJvd3NpbmdD
b250ZXh0KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoZSBtYWluIHJlc291
cmNlIHdhcyBsb2FkZWQgZnJvbSBjYWNoZSwgc28gdGhlIGNhY2hlIG11c3QgaGF2ZSBhbiBlbnRy
eSBmb3IgaXQuIE1hcmsgaXQgYXMgZm9yZWlnbi4KLSAgICAgICAgICAgIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZSogcmVzb3VyY2UgPSBtYWluUmVzb3VyY2VDYWNoZS0+cmVzb3VyY2VGb3JVUkwo
ZG9jdW1lbnRMb2FkZXItPnVybCgpKTsKKyAgICAgICAgICAgIEtVUkwgZG9jdW1lbnRVUkwoZG9j
dW1lbnRMb2FkZXItPnVybCgpKTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudFVSTC5oYXNSZWYo
KSkKKyAgICAgICAgICAgICAgICBkb2N1bWVudFVSTC5yZW1vdmVSZWYoKTsKKyAgICAgICAgICAg
IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSogcmVzb3VyY2UgPSBtYWluUmVzb3VyY2VDYWNoZS0+
cmVzb3VyY2VGb3JVUkwoZG9jdW1lbnRVUkwpOwogICAgICAgICAgICAgYm9vbCBpblN0b3JhZ2Ug
PSByZXNvdXJjZS0+c3RvcmFnZUlEKCk7CiAgICAgICAgICAgICByZXNvdXJjZS0+YWRkVHlwZShB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ24pOwogICAgICAgICAgICAgaWYgKGluU3Rv
cmFnZSkKQEAgLTE5Myw3ICsyMDgsOSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Zmlu
aXNoZWRMb2FkCiB7CiAgICAgQVNTRVJUKG1fcGVuZGluZ01hc3RlclJlc291cmNlTG9hZGVycy5j
b250YWlucyhsb2FkZXIpKTsKICAgICBBU1NFUlQobV9jb21wbGV0aW9uVHlwZSA9PSBOb25lIHx8
IG1fcGVuZGluZ0VudHJpZXMuaXNFbXB0eSgpKTsKLSAgICBjb25zdCBLVVJMJiB1cmwgPSBsb2Fk
ZXItPnVybCgpOworICAgIEtVUkwgdXJsID0gbG9hZGVyLT51cmwoKTsKKyAgICBpZiAodXJsLmhh
c1JlZigpKQorICAgICAgICB1cmwucmVtb3ZlUmVmKCk7CiAKICAgICBzd2l0Y2ggKG1fY29tcGxl
dGlvblR5cGUpIHsKICAgICBjYXNlIE5vbmU6CkBAIC00MzQsNyArNDUxLDkgQEAgdm9pZCBBcHBs
aWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgIAogICAgIEFTU0VSVChoYW5kbGUg
PT0gbV9jdXJyZW50SGFuZGxlKTsKIAotICAgIGNvbnN0IEtVUkwmIHVybCA9IGhhbmRsZS0+cmVx
dWVzdCgpLnVybCgpOworICAgIEtVUkwgdXJsKGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpKTsKKyAg
ICBpZiAodXJsLmhhc1JlZigpKQorICAgICAgICB1cmwucmVtb3ZlUmVmKCk7CiAgICAgCiAgICAg
QVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0VudHJpZXMu
Y29udGFpbnModXJsKSk7CkBAIC00NDYsNyArNDY1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICBBU1NFUlQoISh0eXBlICYgQXBwbGljYXRpb25D
YWNoZVJlc291cmNlOjpNYXN0ZXIpKTsKIAogICAgIGlmIChtX25ld2VzdENhY2hlICYmIHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0KSB7IC8vIE5vdCBtb2RpZmllZC4KLSAgICAgICAg
QXBwbGljYXRpb25DYWNoZVJlc291cmNlKiBuZXdlc3RDYWNoZWRSZXNvdXJjZSA9IG1fbmV3ZXN0
Q2FjaGUtPnJlc291cmNlRm9yVVJMKGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpKTsKKyAgICAgICAg
QXBwbGljYXRpb25DYWNoZVJlc291cmNlKiBuZXdlc3RDYWNoZWRSZXNvdXJjZSA9IG1fbmV3ZXN0
Q2FjaGUtPnJlc291cmNlRm9yVVJMKHVybCk7CiAgICAgICAgIGlmIChuZXdlc3RDYWNoZWRSZXNv
dXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UoQXBw
bGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+
cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSkpOwogICAgICAg
ICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwoKTsKQEAgLTQ2Nyw3ICs0ODYsNyBAQCB2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlCiAgICAgICAgICAgICAvLyBTa2lw
IHRoaXMgcmVzb3VyY2UuIEl0IGlzIGRyb3BwZWQgZnJvbSB0aGUgY2FjaGUuCiAgICAgICAgICAg
ICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gMDsKLSAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKGhhbmRsZS0+cmVxdWVz
dCgpLnVybCgpKTsKKyAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAg
ICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAg
ICBzdGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICB9IGVsc2UgewpAQCAtNTMxLDcgKzU1MCw5
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGYWlsKFJlc28KICAgICB9CiAKICAg
ICB1bnNpZ25lZCB0eXBlID0gbV9jdXJyZW50UmVzb3VyY2UgPyBtX2N1cnJlbnRSZXNvdXJjZS0+
dHlwZSgpIDogbV9wZW5kaW5nRW50cmllcy5nZXQoaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCkpOwot
ICAgIGNvbnN0IEtVUkwmIHVybCA9IGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpOworICAgIEtVUkwg
dXJsKGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpKTsKKyAgICBpZiAodXJsLmhhc1JlZigpKQorICAg
ICAgICB1cmwucmVtb3ZlUmVmKCk7CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJlc291cmNlIHx8
ICFtX3BlbmRpbmdFbnRyaWVzLmNvbnRhaW5zKHVybCkpOwogICAgIG1fY3VycmVudFJlc291cmNl
ID0gMDsKQEAgLTgyMCw2ICs4NDEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGVs
aXZlckRlbGF5CiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6YWRkRW50cnkoY29uc3QgU3Ry
aW5nJiB1cmwsIHVuc2lnbmVkIHR5cGUpCiB7CiAgICAgQVNTRVJUKG1fY2FjaGVCZWluZ1VwZGF0
ZWQpOworICAgIEFTU0VSVCghS1VSTCh1cmwpLmhhc1JlZigpKTsKICAgICAKICAgICAvLyBEb24n
dCBhZGQgdGhlIFVSTCBpZiB3ZSBhbHJlYWR5IGhhdmUgYW4gbWFzdGVyIHJlc291cmNlIGluIHRo
ZSBjYWNoZQogICAgIC8vIChpLmUuLCB0aGUgbWFpbiByZXNvdXJjZSBmaW5pc2hlZCBsb2FkaW5n
IGJlZm9yZSB0aGUgbWFuaWZlc3QpLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgJKHJldmlzaW9uIDQ1ODM0KQorKysgV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IGNyZWF0ZShjb25zdCBLVVJMJiB1cmws
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCB1bnNpZ25lZCB0eXBlLCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSkKICAgICB7
CisgICAgICAgIEFTU0VSVCghdXJsLmhhc1JlZigpKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UodXJsLCByZXNwb25zZSwgdHlwZSwgYnVmZmVy
KSk7CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCShyZXZpc2lvbiA0NTgzNCkKKysrIFdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI2LDExICsxMjYsMTIgQEAgQXBwbGljYXRpb25DYWNoZUdyb3VwKiBBcHBsaWNhdGlvbkNh
Y2hlUwogCiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpm
aW5kT3JDcmVhdGVDYWNoZUdyb3VwKGNvbnN0IEtVUkwmIG1hbmlmZXN0VVJMKQogeworICAgIEFT
U0VSVCghbWFuaWZlc3RVUkwuaGFzUmVmKCkpOworCiAgICAgc3RkOjpwYWlyPENhY2hlR3JvdXBN
YXA6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX2NhY2hlc0luTWVtb3J5LmFkZChtYW5pZmVz
dFVSTCwgMCk7CiAgICAgCiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7CiAgICAgICAgIEFTU0VS
VChyZXN1bHQuZmlyc3QtPnNlY29uZCk7Ci0gICAgICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0
LmZpcnN0LT5zZWNvbmQ7CiAgICAgfQogCkBAIC0xNzUsNiArMTc2LDggQEAgdm9pZCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6bG9hZE1hbmlmZQogCiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWNoZUdyb3VwRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkK
IHsKKyAgICBBU1NFUlQoIXVybC5oYXNSZWYoKSk7CisgICAgCiAgICAgbG9hZE1hbmlmZXN0SG9z
dEhhc2hlcygpOwogICAgIAogICAgIC8vIEhhc2ggdGhlIGhvc3QgbmFtZSBhbmQgc2VlIGlmIHRo
ZXJlJ3MgYSBtYW5pZmVzdCB3aXRoIHRoZSBzYW1lIGhvc3QuCkBAIC0yNDgsNiArMjUxLDggQEAg
QXBwbGljYXRpb25DYWNoZUdyb3VwKiBBcHBsaWNhdGlvbkNhY2hlUwogCiBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXAqIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpmYWxsYmFja0NhY2hlR3JvdXBGb3JV
UkwoY29uc3QgS1VSTCYgdXJsKQogeworICAgIEFTU0VSVCghdXJsLmhhc1JlZigpKTsKKwogICAg
IC8vIENoZWNrIGlmIGFuIGFwcHJvcHJpYXRlIGNhY2hlIGFscmVhZHkgZXhpc3RzIGluIG1lbW9y
eS4KICAgICBDYWNoZUdyb3VwTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX2NhY2hlc0luTWVt
b3J5LmVuZCgpOwogICAgIGZvciAoQ2FjaGVHcm91cE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2NhY2hlc0luTWVtb3J5LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNDU4NDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAwOS0wNy0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2OTI1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MDI3ODUwPiBVUkwgRnJhZ21lbnQgQnJlYWtzIEFwcGxpY2F0aW9uIENh
Y2hlIExvYWRzCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2Ut
aGFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUv
bWFpbi1yZXNvdXJjZS1oYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBw
Y2FjaGUvcmVzb3VyY2VzL21haW4tcmVzb3VyY2UtaGFzaC1mcmFtZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9tYWluLXJlc291cmNlLWhhc2gt
ZnJhbWUubWFuaWZlc3Q6IEFkZGVkLgorCiAyMDA5LTA3LTEzICBNYXJrIFJvd2UgIDxtcm93ZUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIExlb3BhcmQtc3BlY2lmaWMgcmVzdWx0cyBmb3IgZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwva2htZXItc2VsZWN0aW9uLmh0bWwuCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2UtaGFzaC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tYWluLXJlc291
cmNlLWhhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9tYWluLXJlc291cmNlLWhhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCBvZmZsaW5lIGFwcGxpY2F0aW9ucycgbWFpbiBy
ZXNvdXJjZXMgYXJlIG5vdCBhZmZlY3RlZCBieSBVUkwgaGFzaGVzLgorCitTaG91bGQgc2F5IFNV
Q0NFU1M6CisKK1NVQ0NFU1MKKyAgCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2UtaGFzaC1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0
eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9t
YWluLXJlc291cmNlLWhhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2UtaGFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tYWluLXJlc291cmNlLWhhc2guaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBv
ZmZsaW5lIGFwcGxpY2F0aW9ucycgbWFpbiByZXNvdXJjZXMgYXJlIG5vdCBhZmZlY3RlZCBieSBV
UkwgaGFzaGVzLjwvcD4KKzxwPlNob3VsZCBzYXkgU1VDQ0VTUzo8L3A+Cis8ZGl2IGlkPXJlc3Vs
dD48L2Rpdj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3Nh
Z2UgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHNldE5ldHdvcmtFbmFibGVkKHN0YXRlKQorewor
ICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgcmVxLm9wZW4oIkdFVCIsICIv
cmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9jb21tYW5kPSIgKyAoc3RhdGUgPyAiY29u
bmVjdCIgOiAiZGlzY29ubmVjdCIpLCBmYWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworfQorCitm
dW5jdGlvbiBmcmFtZUNyZWF0ZWQoKQoreworICAgIGlmIChzdGFnZSA9PSAwKSB7CisgICAgICAg
IHN0YWdlID0gMTsKKyAgICAgICAgc2V0TmV0d29ya0VuYWJsZWQoZmFsc2UpOworICAgICAgICB2
YXIgaWZyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmci5z
ZXRBdHRyaWJ1dGUoInNyYyIsICIvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocD9wYXRo
PS9hcHBjYWNoZS9yZXNvdXJjZXMvbWFpbi1yZXNvdXJjZS1oYXNoLWZyYW1lLmh0bWwjYmFyIik7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBsb2coIlNVQ0NFU1MiKTsKKyAgICAgICAgc2V0TmV0d29ya0VuYWJsZWQodHJ1ZSk7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICB9Cit9CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnJhbWVDcmVhdGVkLCBmYWxzZSk7CisKK3ZhciBzdGFn
ZSA9IDA7CitzZXROZXR3b3JrRW5hYmxlZCh0cnVlKTsKK3ZhciBpZnIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKK2lmci5zZXRBdHRyaWJ1dGUoInNyYyIsICIvcmVzb3VyY2Vz
L25ldHdvcmstc2ltdWxhdG9yLnBocD9wYXRoPS9hcHBjYWNoZS9yZXNvdXJjZXMvbWFpbi1yZXNv
dXJjZS1oYXNoLWZyYW1lLmh0bWwjZm9vIik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlm
cik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9tYWluLXJlc291cmNlLWhhc2guaHRtbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9tYWluLXJlc291cmNlLWhhc2gt
ZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L3Jlc291cmNlcy9tYWluLXJlc291cmNlLWhhc2gtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL21haW4tcmVzb3VyY2Ut
aGFzaC1mcmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACis8aHRtbCBtYW5p
ZmVzdD0iL2FwcGNhY2hlL3Jlc291cmNlcy9tYWluLXJlc291cmNlLWhhc2gtZnJhbWUubWFuaWZl
c3QjZm9vIj4KKzxkaXYgaWQ9cmVzdWx0PjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhU
TUwgKz0gbWVzc2FnZSArICI8YnI+IjsKK30KKworYXBwbGljYXRpb25DYWNoZS5vbmNoZWNraW5n
ID0gZnVuY3Rpb24oKSB7IGxvZygiY2hlY2tpbmciKTsgfQorYXBwbGljYXRpb25DYWNoZS5vbmRv
d25sb2FkaW5nID0gZnVuY3Rpb24oKSB7IGxvZygiZG93bmxvYWRpbmciKSB9CithcHBsaWNhdGlv
bkNhY2hlLm9ucHJvZ3Jlc3MgPSBmdW5jdGlvbigpIHsgbG9nKCJwcm9ncmVzcyIpIH0KK2FwcGxp
Y2F0aW9uQ2FjaGUub251cGRhdGVyZWFkeSA9IGZ1bmN0aW9uKCkgeyBsb2coInVwZGF0ZXJlYWR5
IikgfQorYXBwbGljYXRpb25DYWNoZS5vbm9ic29sZXRlID0gZnVuY3Rpb24oKSB7IGxvZygib2Jz
b2xldGUiKSB9CithcHBsaWNhdGlvbkNhY2hlLm9uY2FjaGVkID0gZnVuY3Rpb24oKSB7IGxvZygi
Y2FjaGVkIik7IGxvYWRlZCgpOyB9CithcHBsaWNhdGlvbkNhY2hlLm9ubm91cGRhdGUgPSBmdW5j
dGlvbigpIHsgbG9nKCJub3VwZGF0ZSIpOyBsb2FkZWQoKTsgfQorYXBwbGljYXRpb25DYWNoZS5v
bmVycm9yID0gZnVuY3Rpb24oKSB7IGxvZygiZXJyb3IiKTsgbG9hZGVkKCk7IH0KKwordmFyIG9u
Y2UgPSAxOworZnVuY3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAob25jZSkgeworICAgICAgICBv
bmNlID0gMDsKKyAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKCJsb2FkZWQiLCAiKiIpOworICAg
IH0KK30KKzwvc2NyaXB0PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvbWFpbi1yZXNvdXJjZS1oYXNoLWZyYW1l
Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvbWFpbi1yZXNvdXJj
ZS1oYXNoLWZyYW1lLm1hbmlmZXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwY2FjaGUvcmVzb3VyY2VzL21haW4tcmVzb3VyY2UtaGFzaC1mcmFtZS5tYW5pZmVzdAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2Vz
L21haW4tcmVzb3VyY2UtaGFzaC1mcmFtZS5tYW5pZmVzdAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSBAQAorQ0FDSEUgTUFOSUZFU1QK
</data>
<flag name="review"
          id="17073"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>