<?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>41131</bug_id>
          
          <creation_ts>2010-06-23 23:14:21 -0700</creation_ts>
          <short_desc>Add AtomicHTMLToken</short_desc>
          <delta_ts>2010-06-24 15:07:59 -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>Other</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242310</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-23 23:14:21 -0700</bug_when>
    <thetext>Add AtomicHTMLToken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242314</commentid>
    <comment_count>1</comment_count>
      <attachid>59614</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-23 23:17:00 -0700</bug_when>
    <thetext>Created attachment 59614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242316</commentid>
    <comment_count>2</comment_count>
      <attachid>59614</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-23 23:20:15 -0700</bug_when>
    <thetext>Comment on attachment 59614
Patch

I like the idea.  It should have its own header though.

It could be a subclass of HTMLToken, but I think it&apos;s nice to be separate like this.  HTMLToken may end up being a struct and internal to the Tokenizer as you suggest.

I&apos;m ready to r+ this, but I think it needs its own header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242318</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-23 23:23:41 -0700</bug_when>
    <thetext>&gt; It could be a subclass of HTMLToken, but I think it&apos;s nice to be separate like this.  HTMLToken may end up being a struct and internal to the Tokenizer as you suggest.

It can&apos;t be a subclass because we don&apos;t want the large buffers that HTMLToken has.

&gt; I&apos;m ready to r+ this, but I think it needs its own header.

I could add a separate header, but it&apos;s eventually going to eat HTMLToken, so there doesn&apos;t seem to be much of a point in adding a new header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242321</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-23 23:32:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; It could be a subclass of HTMLToken, but I think it&apos;s nice to be separate like this.  HTMLToken may end up being a struct and internal to the Tokenizer as you suggest.
&gt; 
&gt; It can&apos;t be a subclass because we don&apos;t want the large buffers that HTMLToken has.

Agreed.

&gt; &gt; I&apos;m ready to r+ this, but I think it needs its own header.
&gt; 
&gt; I could add a separate header, but it&apos;s eventually going to eat HTMLToken, so there doesn&apos;t seem to be much of a point in adding a new header.

I don&apos;t believe you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242322</commentid>
    <comment_count>5</comment_count>
      <attachid>59614</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-23 23:32:18 -0700</bug_when>
    <thetext>Comment on attachment 59614
Patch

I think your lack-of-new-header is mostly being lazy. :p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242684</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-24 15:07:59 -0700</bug_when>
    <thetext>Committed r61791: &lt;http://trac.webkit.org/changeset/61791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59614</attachid>
            <date>2010-06-23 23:17:00 -0700</date>
            <delta_ts>2010-06-23 23:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41131-20100623231659.patch</filename>
            <type>text/plain</type>
            <size>8615</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDczMzA3M2E5OTg3YWNjZTRkZDgwZTQyYzNmOWMzY2IxZDI0ZjVmMy4uNDQwZmJjZGI1YTg4YjI5
OTg5YWEzMGIwNmZlMWQ0ZDQwNjEzODM2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzMyBAQAogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIEFkZCBBdG9taWNIVE1MVG9rZW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTMxCisKKyAg
ICAgICAgV2UgbmVlZCBhbiBhdG9taXplZCB2ZXJzaW9uIG9mIHRoZSB0b2tlbiBmb3IgdXNlIGlu
IHRoZSB0cmVlIGJ1aWxkZXIuCisgICAgICAgIEV2ZW50dWFsbHksIHdlIHNob3VsZCBtYWtlIHRo
ZSBleGlzdGluZyBIVE1MVG9rZW4gYW4gaW50ZXJuYWwgZGV0YWlsIG9mCisgICAgICAgIHRoZSBI
VE1MVG9rZW5pemVyLiAgVGhpcyBuZXcgQXRvbWljSFRNTFRva2VuIHNob3VsZCBiZSBhbHNvIGJl
IG1vcmUKKyAgICAgICAgZWFzaWx5IGNhY2hlZCBiZXR3ZWVuIHRoZSBwcmVsb2FkIHNjYW5uZXIg
YW5kIHRoZSB0cmVlIGJ1aWxkZXIuCisKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjpBdG9taWNIVE1MVG9rZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkF0
b21pY0hUTUxUb2tlbjo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNIVE1MVG9rZW46
OnNlbGZDbG9zaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkF0b21pY0hUTUxUb2tlbjo6YXR0cmli
dXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNIVE1MVG9rZW46OmNoYXJhY3RlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjpjb21tZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkF0b21pY0hUTUxUb2tlbjo6cHVibGljSWRlbnRpZmllcik6CisgICAgICAgIChXZWJD
b3JlOjpBdG9taWNIVE1MVG9rZW46OnN5c3RlbUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QXRvbWljSFRNTFRva2VuOjpmb3JjZVF1aXJrcyk6CisgICAgICAgICogaHRtbC9IVE1MVHJl
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvT2xkU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2FjeVBhcnNlcik6
CisKKzIwMTAtMDYtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBTa2V0Y2ggb3V0IEluaXRp
YWxNb2RlIG9mIEhUTUw1IHRyZWUgYnVpbGRlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDExMjYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxUb2tlbi5oIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbi5oCmluZGV4IDFmOGZiY2M5YjQ1YmNj
ZGRlY2RlYjZmNzc1MDg1OWYwNjY5N2U3ZDkuLmJlMzNiYzUzMmNmMTc0MGY0ZDkyNGQwNWJlNDJl
ZTExZWI4NzgwODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW4uaAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTFRva2VuLmgKQEAgLTIzOSw2ICsyMzksMTEgQEAgcHVibGljOgogICAg
IH0KIAogcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogSSdtIG5vdCBzdXJlIHdoYXQgdGhlIGZpbmFs
IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIEhUTUxUb2tlbiBhbmQKKyAgICAvLyBBdG9taWNIVE1MVG9r
ZW4gd2lsbCBiZS4gIEknbSBtYXJraW5nIHRoaXMgYSBmcmllbmQgZm9yIG5vdywgYnV0IHdlJ2xs
CisgICAgLy8gd2FudCB0byBlbmQgdXAgd2l0aCBhIGNsZWFuZXIgaW50ZXJmYWNlIGJldHdlZW4g
dGhlIHR3byBjbGFzc2VzLgorICAgIGZyaWVuZCBjbGFzcyBBdG9taWNIVE1MVG9rZW47CisKICAg
ICBjbGFzcyBEb2N0eXBlRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBEb2N0eXBlRGF0YSgp
CkBAIC0yNzMsNiArMjc4LDEyMSBAQCBwcml2YXRlOgogICAgIEF0dHJpYnV0ZSogbV9jdXJyZW50
QXR0cmlidXRlOwogfTsKIAorLy8gRklYTUU6IFRoaXMgY2xhc3Mgc2hvdWxkIGV2ZW50dWFsbHkg
YmUgbmFtZWQgSFRNTFRva2VuIG9uY2Ugd2UgbW92ZSB0aGUKKy8vIGV4aXRpbmcgSFRNTFRva2Vu
IHRvIGJlIGludGVybmFsIHRvIHRoZSBIVE1MVG9rZW5pemVyLgorY2xhc3MgQXRvbWljSFRNTFRv
a2VuIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBBdG9taWNIVE1MVG9rZW4o
SFRNTFRva2VuJiB0b2tlbikKKyAgICAgICAgOiBtX3R5cGUodG9rZW4udHlwZSgpKQorICAgIHsK
KyAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICAgICAgY2FzZSBIVE1MVG9rZW46OlVuaW5p
dGlhbGl6ZWQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEhUTUxUb2tlbjo6RE9DVFlQRToKKyAgICAgICAgICAgIG1f
bmFtZSA9IEF0b21pY1N0cmluZyh0b2tlbi5uYW1lKCkuZGF0YSgpLCB0b2tlbi5uYW1lKCkuc2l6
ZSgpKTsKKyAgICAgICAgICAgIG1fZG9jdHlwZURhdGEuc2V0KHRva2VuLm1fZG9jdHlwZURhdGEu
cmVsZWFzZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhUTUxUb2tlbjo6
RW5kT2ZGaWxlOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSFRNTFRva2VuOjpT
dGFydFRhZzoKKyAgICAgICAgY2FzZSBIVE1MVG9rZW46OkVuZFRhZzogeworICAgICAgICAgICAg
bV9zZWxmQ2xvc2luZyA9IHRva2VuLnNlbGZDbG9zaW5nKCk7CisgICAgICAgICAgICBtX25hbWUg
PSBBdG9taWNTdHJpbmcodG9rZW4ubmFtZSgpLmRhdGEoKSwgdG9rZW4ubmFtZSgpLnNpemUoKSk7
CisgICAgICAgICAgICBjb25zdCBIVE1MVG9rZW46OkF0dHJpYnV0ZUxpc3QmIGF0dHJpYnV0ZXMg
PSB0b2tlbi5hdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICBmb3IgKEhUTUxUb2tlbjo6QXR0cmli
dXRlTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGF0dHJpYnV0ZXMuYmVnaW4oKTsKKyAgICAg
ICAgICAgICAgICAgaXRlciAhPSBhdHRyaWJ1dGVzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIWl0ZXItPm1fbmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgU3RyaW5nIG5hbWUoaXRlci0+bV9uYW1lLmRhdGEoKSwgaXRlci0+bV9uYW1lLnNpemUoKSk7
CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZShpdGVyLT5tX3ZhbHVlLmRhdGEoKSwg
aXRlci0+bV92YWx1ZS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8QXR0cmli
dXRlPiBtYXBwZWRBdHRyaWJ1dGUgPSBBdHRyaWJ1dGU6OmNyZWF0ZU1hcHBlZChuYW1lLCB2YWx1
ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbV9hdHRyaWJ1dGVzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9hdHRyaWJ1dGVzID0gTmFtZWROb2RlTWFwOjpjcmVhdGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hdHRyaWJ1dGVzLT5pbnNlcnRBdHRyaWJ1dGUobWFwcGVkQXR0cmli
dXRlLnJlbGVhc2UoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgSFRNTFRva2VuOjpD
b21tZW50OgorICAgICAgICAgICAgbV9kYXRhID0gU3RyaW5nKHRva2VuLmNvbW1lbnQoKS5kYXRh
KCksIHRva2VuLmNvbW1lbnQoKS5zaXplKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgSFRNTFRva2VuOjpDaGFyYWN0ZXI6CisgICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmco
dG9rZW4uY2hhcmFjdGVycygpLmRhdGEoKSwgdG9rZW4uY2hhcmFjdGVycygpLnNpemUoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIEhUTUxUb2tlbjo6VHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKKyAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBIVE1MVG9r
ZW46OlN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBIVE1MVG9rZW46OkVuZFRhZyB8fCBtX3R5cGUgPT0g
SFRNTFRva2VuOjpET0NUWVBFKTsKKyAgICAgICAgcmV0dXJuIG1fbmFtZTsKKyAgICB9CisKKyAg
ICBib29sIHNlbGZDbG9zaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gSFRNTFRva2VuOjpTdGFydFRhZyB8fCBtX3R5cGUgPT0gSFRNTFRva2VuOjpFbmRUYWcpOwor
ICAgICAgICByZXR1cm4gbV9zZWxmQ2xvc2luZzsKKyAgICB9CisKKyAgICBOYW1lZE5vZGVNYXAq
IGF0dHJpYnV0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBIVE1M
VG9rZW46OlN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBIVE1MVG9rZW46OkVuZFRhZyk7CisgICAgICAg
IHJldHVybiBtX2F0dHJpYnV0ZXMuZ2V0KCk7CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiBj
aGFyYWN0ZXJzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSFRNTFRv
a2VuOjpDaGFyYWN0ZXIpOworICAgICAgICByZXR1cm4gbV9kYXRhOworICAgIH0KKworICAgIGNv
bnN0IFN0cmluZyYgY29tbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBl
ID09IEhUTUxUb2tlbjo6Q29tbWVudCk7CisgICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgfQor
CisgICAgLy8gRklYTUU6IERpc3Rpbmd1aXNoIGJldHdlZW4gYSBtaXNzaW5nIHB1YmxpYyBpZGVu
dGlmZXIgYW5kIGFuIGVtcHR5IG9uZS4KKyAgICBjb25zdCBXVEY6OlZlY3RvcjxVQ2hhcj4mIHB1
YmxpY0lkZW50aWZpZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBI
VE1MVG9rZW46OkRPQ1RZUEUpOworICAgICAgICByZXR1cm4gbV9kb2N0eXBlRGF0YS0+bV9wdWJs
aWNJZGVudGlmaWVyOworICAgIH0KKworICAgIC8vIEZJWE1FOiBEaXN0aW5ndWlzaCBiZXR3ZWVu
IGEgbWlzc2luZyBzeXN0ZW0gaWRlbnRpZmVyIGFuZCBhbiBlbXB0eSBvbmUuCisgICAgY29uc3Qg
V1RGOjpWZWN0b3I8VUNoYXI+JiBzeXN0ZW1JZGVudGlmaWVyKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gSFRNTFRva2VuOjpET0NUWVBFKTsKKyAgICAgICAgcmV0dXJu
IG1fZG9jdHlwZURhdGEtPm1fc3lzdGVtSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIGZv
cmNlUXVpcmtzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSFRNTFRv
a2VuOjpET0NUWVBFKTsKKyAgICAgICAgcmV0dXJuIG1fZG9jdHlwZURhdGEtPm1fZm9yY2VRdWly
a3M7CisgICAgfQorCitwcml2YXRlOgorICAgIEhUTUxUb2tlbjo6VHlwZSBtX3R5cGU7CisKKyAg
ICAvLyAibmFtZSIgZm9yIERPQ1RZUEUsIFN0YXJ0VGFnLCBhbmQgRW5kVGFnCisgICAgQXRvbWlj
U3RyaW5nIG1fbmFtZTsKKworICAgIC8vICJjaGFyYWN0ZXJzIiBmb3IgQ2hhcmFjdGVyCisgICAg
Ly8gImRhdGEiIGZvciBDb21tZW50CisgICAgU3RyaW5nIG1fZGF0YTsKKworICAgIC8vIEZvciBE
T0NUWVBFCisgICAgT3duUHRyPEhUTUxUb2tlbjo6RG9jdHlwZURhdGE+IG1fZG9jdHlwZURhdGE7
CisKKyAgICAvLyBGb3IgU3RhcnRUYWcgYW5kIEVuZFRhZworICAgIGJvb2wgbV9zZWxmQ2xvc2lu
ZzsKKworICAgIFJlZlB0cjxOYW1lZE5vZGVNYXA+IG1fYXR0cmlidXRlczsKK307CisKIH0KIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1dl
YkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDY5MTdlYzM2NmNkNWMzNjVjMzA2
YTM4YzM1MzRmOWQxODVkNDQxYmIuLjVkM2Y5YzAxZmIyZGJmMjJjZDQ3NTY4NTJmNzQzZTBjMjUw
Y2NkOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIEhUTUxU
cmVlQnVpbGRlcjo6fkhUTUxUcmVlQnVpbGRlcigpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGNvbnZl
cnRUb09sZFN0eWxlKEhUTUxUb2tlbiYgdG9rZW4sIFRva2VuJiBvbGRTdHlsZVRva2VuKQorc3Rh
dGljIHZvaWQgY29udmVydFRvT2xkU3R5bGUoY29uc3QgQXRvbWljSFRNTFRva2VuJiB0b2tlbiwg
VG9rZW4mIG9sZFN0eWxlVG9rZW4pCiB7CiAgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKICAg
ICBjYXNlIEhUTUxUb2tlbjo6VW5pbml0aWFsaXplZDoKQEAgLTkyLDI4ICs5MiwxNyBAQCBzdGF0
aWMgdm9pZCBjb252ZXJ0VG9PbGRTdHlsZShIVE1MVG9rZW4mIHRva2VuLCBUb2tlbiYgb2xkU3R5
bGVUb2tlbikKICAgICBjYXNlIEhUTUxUb2tlbjo6RW5kVGFnOiB7CiAgICAgICAgIG9sZFN0eWxl
VG9rZW4uYmVnaW5UYWcgPSAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6U3RhcnRUYWcpOwog
ICAgICAgICBvbGRTdHlsZVRva2VuLnNlbGZDbG9zaW5nVGFnID0gdG9rZW4uc2VsZkNsb3Npbmco
KTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50YWdOYW1lID0gQXRvbWljU3RyaW5nKHRva2VuLm5h
bWUoKS5kYXRhKCksIHRva2VuLm5hbWUoKS5zaXplKCkpOwotICAgICAgICBjb25zdCBIVE1MVG9r
ZW46OkF0dHJpYnV0ZUxpc3QmIGF0dHJpYnV0ZXMgPSB0b2tlbi5hdHRyaWJ1dGVzKCk7Ci0gICAg
ICAgIGZvciAoSFRNTFRva2VuOjpBdHRyaWJ1dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0g
YXR0cmlidXRlcy5iZWdpbigpOwotICAgICAgICAgICAgIGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQo
KTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBpZiAoIWl0ZXItPm1fbmFtZS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZShpdGVyLT5tX25hbWUuZGF0YSgpLCBpdGVyLT5t
X25hbWUuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUoaXRlci0+bV92YWx1
ZS5kYXRhKCksIGl0ZXItPm1fdmFsdWUuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8
QXR0cmlidXRlPiBtYXBwZWRBdHRyaWJ1dGUgPSBBdHRyaWJ1dGU6OmNyZWF0ZU1hcHBlZChuYW1l
LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFvbGRTdHlsZVRva2VuLmF0dHJzKQotICAg
ICAgICAgICAgICAgICAgICBvbGRTdHlsZVRva2VuLmF0dHJzID0gTmFtZWROb2RlTWFwOjpjcmVh
dGUoKTsKLSAgICAgICAgICAgICAgICBvbGRTdHlsZVRva2VuLmF0dHJzLT5pbnNlcnRBdHRyaWJ1
dGUobWFwcGVkQXR0cmlidXRlLnJlbGVhc2UoKSwgZmFsc2UpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9CisgICAgICAgIG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9IHRva2VuLm5hbWUoKTsKKyAg
ICAgICAgb2xkU3R5bGVUb2tlbi5hdHRycyA9IHRva2VuLmF0dHJpYnV0ZXMoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgSFRNTFRva2VuOjpDb21tZW50OgogICAgICAgICBvbGRT
dHlsZVRva2VuLnRhZ05hbWUgPSBjb21tZW50QXRvbTsKLSAgICAgICAgb2xkU3R5bGVUb2tlbi50
ZXh0ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHRva2VuLmNvbW1lbnQoKS5kYXRhKCksIHRva2VuLmNv
bW1lbnQoKS5zaXplKCkpOworICAgICAgICBvbGRTdHlsZVRva2VuLnRleHQgPSB0b2tlbi5jb21t
ZW50KCkuaW1wbCgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEhUTUxUb2tlbjo6Q2hhcmFj
dGVyOgogICAgICAgICBvbGRTdHlsZVRva2VuLnRhZ05hbWUgPSB0ZXh0QXRvbTsKLSAgICAgICAg
b2xkU3R5bGVUb2tlbi50ZXh0ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHRva2VuLmNoYXJhY3RlcnMo
KS5kYXRhKCksIHRva2VuLmNoYXJhY3RlcnMoKS5zaXplKCkpOworICAgICAgICBvbGRTdHlsZVRv
a2VuLnRleHQgPSB0b2tlbi5jaGFyYWN0ZXJzKCkuaW1wbCgpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC0xODEsNyArMTcwLDggQEAgUGFzc1JlZlB0cjxOb2RlPiBIVE1MVHJlZUJ1aWxk
ZXI6OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICAvLyBG
b3Igbm93LCB3ZSB0cmFuc2xhdGUgaW50byBhbiBvbGQtc3R5bGUgdG9rZW4gZm9yIHRlc3Rpbmcu
CiAgICAgVG9rZW4gb2xkU3R5bGVUb2tlbjsKLSAgICBjb252ZXJ0VG9PbGRTdHlsZSh0b2tlbiwg
b2xkU3R5bGVUb2tlbik7CisgICAgQXRvbWljSFRNTFRva2VuIGF0b21pY1Rva2VuKHRva2VuKTsK
KyAgICBjb252ZXJ0VG9PbGRTdHlsZShhdG9taWNUb2tlbiwgb2xkU3R5bGVUb2tlbik7CiAKICAg
ICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gIG1fbGVnYWN5VHJlZUJ1aWxkZXItPnBhcnNlVG9rZW4o
Jm9sZFN0eWxlVG9rZW4pOwogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFy
dFRhZykgewo=
</data>
<flag name="review"
          id="46571"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>