<?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>100630</bug_id>
          
          <creation_ts>2012-10-28 22:52:40 -0700</creation_ts>
          <short_desc>Make rendering tables with &lt;colgroups&gt; twice as fast by avoiding walking the DOM for colgroups 4 times for each cell</short_desc>
          <delta_ts>2012-10-30 12:44:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100304</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>esprehn</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>753074</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-28 22:52:40 -0700</bug_when>
    <thetext>Make rendering tables with &lt;colgroups&gt; twice as fast by avoiding walking the DOM for colgroups 4 times for each cell</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753075</commentid>
    <comment_count>1</comment_count>
      <attachid>171160</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-28 22:57:08 -0700</bug_when>
    <thetext>Created attachment 171160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753076</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-28 23:00:38 -0700</bug_when>
    <thetext>This is sadly not an algorithmic fix (it&apos;s lame that we even need to lookup these &lt;colgroup&gt; elements so often), it&apos;s just making these dumb lookups faster.

Looking at the profile after this fix, we&apos;re still spending 21% of our time in slowColElement, we&apos;re just now walking this Vector instead of the DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753083</commentid>
    <comment_count>3</comment_count>
      <attachid>171160</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-28 23:14:46 -0700</bug_when>
    <thetext>Comment on attachment 171160
Patch

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

Algorithmically, I wonder if you could save time by creating a colElementIterator class. Looks like at least some of the callers of colElement just iterate through the columns in order. Would be nice to not have to always start from the beginning of the list. Either way, this patch is fine.

&gt; Source/WebCore/rendering/RenderTable.cpp:792
&gt; +RenderTableCol* RenderTable::slowColElement(unsigned col, bool* startEdge, bool* endEdge) const

Not from your patch, but it seems silly to have a method called slowColElement when the only caller is in colElement which just does an early return and then calls this. May as well move the early return into this function and have this be colElement. I guess maybe colElement gets inlined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753114</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-29 00:38:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 171160 [details])
&gt; Not from your patch, but it seems silly to have a method called slowColElement when the only caller is in colElement which just does an early return and then calls this. May as well move the early return into this function and have this be colElement. I guess maybe colElement gets inlined?

Correct.  I split slowColElement off of colElement in an earlier patch to allow the no-columns (common) case to be inline and fast.  It was a big win on dglazkov&apos;s biggrid iirc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753115</commentid>
    <comment_count>5</comment_count>
      <attachid>171160</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 00:38:18 -0700</bug_when>
    <thetext>Comment on attachment 171160
Patch

Clearing flags on attachment: 171160

Committed r132764: &lt;http://trac.webkit.org/changeset/132764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753116</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 00:38:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753117</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-29 00:39:24 -0700</bug_when>
    <thetext>I do think some sort of state to prevent having to re-walk the columns every time would be useful.  It&apos;s not yet clear to me what the access pattern of this data is yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753786</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-29 14:57:28 -0700</bug_when>
    <thetext>This fix may not be necessary in the end.  If we can make collapsed borders not so expensive we won&apos;t need this complexity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754592</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-30 12:40:11 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754593</commentid>
    <comment_count>10</comment_count>
      <attachid>171503</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-30 12:40:13 -0700</bug_when>
    <thetext>Created attachment 171503
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754596</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-30 12:44:23 -0700</bug_when>
    <thetext>Sorry, got confused.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171160</attachid>
            <date>2012-10-28 22:57:08 -0700</date>
            <delta_ts>2012-10-30 12:40:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100630-20121028225536.patch</filename>
            <type>text/plain</type>
            <size>8111</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFjNDk4NzJjYWEzYzE2
NjI3NGRlZjM3MjRkMGI1MmNkMDY2MDRjNi4uZTFmZDdlOGQxOTMxNmQ2Nzk2ODJkMjJlMGQ3Mzdk
NGNkYmNlNDZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTI4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHJlbmRlcmluZyB0YWJs
ZXMgd2l0aCA8Y29sZ3JvdXBzPiB0d2ljZSBhcyBmYXN0IGJ5IGF2b2lkaW5nIHdhbGtpbmcgdGhl
IERPTSBmb3IgY29sZ3JvdXBzIDQgdGltZXMgZm9yIGVhY2ggY2VsbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNjMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBub3QgYSBjb21wbGV0ZSBm
aXguICBPdXIgcmVuZGVyaW5nIG9mIHRoaXMgbGFyZ2UgdGFibGVzIHN0aWxsIHRha2VzIDcuOCBz
ZWNvbmRzCisgICAgICAgIG9uIG15IHJldGluYSBNQlAgKGRvd24gZnJvbSAxNC4zcyBiZWZvcmUg
dGhpcyBjaGFuZ2UpLgorICAgICAgICBJdCdzIHZlcnkgZXhwZW5zaXZlIHRvIHdhbGsgdGhlIERP
TSBlYWNoIHRpbWUgd2UgY2FsbCBSZW5kZXJUYWJsZTo6Y29sRWxlbWVudAorICAgICAgICBzbyB0
aGlzIGNhY2hlcyB0aGUgUmVuZGVyVGFibGVDb2wqIGluIGEgdmVjdG9yIGZvciBlYXNpZXIgd2Fs
a2luZy4KKyAgICAgICAgV2UgaW52YWxpZGF0ZSB0aGUgY2FjaGUgYW55IHRpbWUgYSBSZW5kZXJU
YWJsZUNvbCBpcyBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlCisgICAgICAgIHJlbmRlcmluZyBz
dWItdHJlZSB0byBhdm9pZCBob2xkaW5nIGEgYmFkIHBvaW50ZXIuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OlJl
bmRlclRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjppbnZhbGlkYXRlQ2Fj
aGVkQ29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjphZGRDb2x1bW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnJlbW92
ZUNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6dXBkYXRlQ29sdW1uQ2Fj
aGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnNsb3dDb2xFbGVtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKyAgICAgICAgKFJlbmRlclRhYmxlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVDb2w6Omluc2VydGVkSW50b1RyZWUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNvbDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKKwogMjAxMi0xMC0yNSAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGVhY2ggUmVuZGVyVGFi
bGUgaG93IHRvIHVzZSBWZWN0b3I6Omluc2VydCBhbmQgVmVjdG9yOjphcHBlbmQgaW5zdGVhZCBv
ZiBpdHMgb3duIGN1c3RvbSBtZW1tb3ZlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCmluZGV4IGFjNzMyNGMyMWYzZWQwOTM1ZmRkYTFhYmU2OGZlMDU3MDUzZTk3
YjMuLjQzMjEzNWFjNzhiY2NmM2NmMjcyYmNkZGRhYWNmMWM0MTlkMjA1YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtNTksNiArNTksNyBAQCBSZW5kZXJU
YWJsZTo6UmVuZGVyVGFibGUoTm9kZSogbm9kZSkKICAgICAsIG1faGFzQ29sRWxlbWVudHMoZmFs
c2UpCiAgICAgLCBtX25lZWRzU2VjdGlvblJlY2FsYyhmYWxzZSkKICAgICAsIG1fY29sdW1uTG9n
aWNhbFdpZHRoQ2hhbmdlZChmYWxzZSkKKyAgICAsIG1fY29sdW1uUmVuZGVyZXJzVmFsaWQoZmFs
c2UpCiAgICAgLCBtX2hTcGFjaW5nKDApCiAgICAgLCBtX3ZTcGFjaW5nKDApCiAgICAgLCBtX2Jv
cmRlclN0YXJ0KDApCkBAIC0yMTMsNiArMjE0LDI2IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlbW92
ZUNhcHRpb24oY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKiBvbGRDYXB0aW9uKQogICAgIG1fY2Fw
dGlvbnMucmVtb3ZlKGluZGV4KTsKIH0KIAordm9pZCBSZW5kZXJUYWJsZTo6aW52YWxpZGF0ZUNh
Y2hlZENvbHVtbnMoKQoreworICAgIG1fY29sdW1uUmVuZGVyZXJzVmFsaWQgPSBmYWxzZTsKKyAg
ICBtX2NvbHVtblJlbmRlcmVycy5yZXNpemUoMCk7Cit9CisKK3ZvaWQgUmVuZGVyVGFibGU6OmFk
ZENvbHVtbihjb25zdCBSZW5kZXJUYWJsZUNvbCopCit7CisgICAgaW52YWxpZGF0ZUNhY2hlZENv
bHVtbnMoKTsKK30KKwordm9pZCBSZW5kZXJUYWJsZTo6cmVtb3ZlQ29sdW1uKGNvbnN0IFJlbmRl
clRhYmxlQ29sKikKK3sKKyAgICBpbnZhbGlkYXRlQ2FjaGVkQ29sdW1ucygpOworICAgIC8vIFdl
IGRvbid0IHJlYWxseSBuZWVkIHRvIHJlY29tcHV0ZSBvdXIgc2VjdGlvbnMsIGJ1dCB3ZSBuZWVk
IHRvIHVwZGF0ZSBvdXIKKyAgICAvLyBjb2x1bW4gY291bnQgYW5kIHdoZXRoZXIgd2UgaGF2ZSBh
IGNvbHVtbi4gQ3VycmVudGx5LCB3ZSBvbmx5IGhhdmUgb25lCisgICAgLy8gc2l6ZS1maXQtYWxs
IGZsYWcgYnV0IHdlIG1heSBoYXZlIHRvIGNvbnNpZGVyIHNwbGl0dGluZyBpdC4KKyAgICBzZXRO
ZWVkc1NlY3Rpb25SZWNhbGMoKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZTo6dXBkYXRlTG9naWNh
bFdpZHRoKCkKIHsKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CkBAIC03NTQsMTUgKzc3
NSwzMCBAQCBSZW5kZXJUYWJsZUNvbCogUmVuZGVyVGFibGU6OmZpcnN0Q29sdW1uKCkgY29uc3QK
ICAgICByZXR1cm4gMDsKIH0KIAotUmVuZGVyVGFibGVDb2wqIFJlbmRlclRhYmxlOjpzbG93Q29s
RWxlbWVudCh1bnNpZ25lZCBjb2wsIGJvb2wqIHN0YXJ0RWRnZSwgYm9vbCogZW5kRWRnZSkgY29u
c3QKK3ZvaWQgUmVuZGVyVGFibGU6OnVwZGF0ZUNvbHVtbkNhY2hlKCkgY29uc3QKIHsKICAgICBB
U1NFUlQobV9oYXNDb2xFbGVtZW50cyk7CisgICAgQVNTRVJUKG1fY29sdW1uUmVuZGVyZXJzLmlz
RW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX2NvbHVtblJlbmRlcmVyc1ZhbGlkKTsKIAotICAgIHVu
c2lnbmVkIGNvbHVtbkNvdW50ID0gMDsKICAgICBmb3IgKFJlbmRlclRhYmxlQ29sKiBjb2x1bW5S
ZW5kZXJlciA9IGZpcnN0Q29sdW1uKCk7IGNvbHVtblJlbmRlcmVyOyBjb2x1bW5SZW5kZXJlciA9
IGNvbHVtblJlbmRlcmVyLT5uZXh0Q29sdW1uKCkpIHsKICAgICAgICAgaWYgKGNvbHVtblJlbmRl
cmVyLT5pc1RhYmxlQ29sdW1uR3JvdXBXaXRoQ29sdW1uQ2hpbGRyZW4oKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBtX2NvbHVtblJlbmRlcmVycy5hcHBlbmQoY29sdW1uUmVuZGVy
ZXIpOworICAgIH0KKyAgICBtX2NvbHVtblJlbmRlcmVyc1ZhbGlkID0gdHJ1ZTsKK30KKworUmVu
ZGVyVGFibGVDb2wqIFJlbmRlclRhYmxlOjpzbG93Q29sRWxlbWVudCh1bnNpZ25lZCBjb2wsIGJv
b2wqIHN0YXJ0RWRnZSwgYm9vbCogZW5kRWRnZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXND
b2xFbGVtZW50cyk7CisKKyAgICBpZiAoIW1fY29sdW1uUmVuZGVyZXJzVmFsaWQpCisgICAgICAg
IHVwZGF0ZUNvbHVtbkNhY2hlKCk7CiAKKyAgICB1bnNpZ25lZCBjb2x1bW5Db3VudCA9IDA7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY29sdW1uUmVuZGVyZXJzLnNpemUoKTsgaSsr
KSB7CisgICAgICAgIFJlbmRlclRhYmxlQ29sKiBjb2x1bW5SZW5kZXJlciA9IG1fY29sdW1uUmVu
ZGVyZXJzW2ldOwogICAgICAgICB1bnNpZ25lZCBzcGFuID0gY29sdW1uUmVuZGVyZXItPnNwYW4o
KTsKICAgICAgICAgdW5zaWduZWQgc3RhcnRDb2wgPSBjb2x1bW5Db3VudDsKICAgICAgICAgQVNT
RVJUKHNwYW4gPj0gMSk7CkBAIC03NzYsNyArODEyLDYgQEAgUmVuZGVyVGFibGVDb2wqIFJlbmRl
clRhYmxlOjpzbG93Q29sRWxlbWVudCh1bnNpZ25lZCBjb2wsIGJvb2wqIHN0YXJ0RWRnZSwgYm9v
bCoKICAgICAgICAgICAgIHJldHVybiBjb2x1bW5SZW5kZXJlcjsKICAgICAgICAgfQogICAgIH0K
LQogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5o
CmluZGV4IGE3YmUyZDU2OGU0M2U5NGVmYWM3YTllODY5OTAwMTc5OGFhOThlNWQuLmY5ZjkzODY3
ZjJlMTE0MTM2YjYxNzgwOTZhYWE3ODk3NzI1MGJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5oCkBAIC00NSw4ICs0NSw2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBS
ZW5kZXJUYWJsZShOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyVGFibGUoKTsKIAotICAgIGlu
dCBnZXRDb2x1bW5Qb3ModW5zaWduZWQgY29sKSBjb25zdCB7IHJldHVybiBtX2NvbHVtblBvc1tj
b2xdOyB9Ci0KICAgICAvLyBQZXIgQ1NTIDMgd3JpdGluZy1tb2RlOiAiVGhlIGZpcnN0IGFuZCBz
ZWNvbmQgdmFsdWVzIG9mIHRoZSAnYm9yZGVyLXNwYWNpbmcnIHByb3BlcnR5IHJlcHJlc2VudCBz
cGFjaW5nIGJldHdlZW4gY29sdW1ucwogICAgIC8vIGFuZCByb3dzIHJlc3BlY3RpdmVseSwgbm90
IG5lY2Vzc2FyaWx5IHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzcGFjaW5nIHJlc3BlY3Rp
dmVseSIuCiAgICAgaW50IGhCb3JkZXJTcGFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9oU3BhY2lu
ZzsgfQpAQCAtMjU4LDYgKzI1Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ2FwdGlvbihj
b25zdCBSZW5kZXJUYWJsZUNhcHRpb24qKTsKICAgICB2b2lkIHJlbW92ZUNhcHRpb24oY29uc3Qg
UmVuZGVyVGFibGVDYXB0aW9uKik7CisgICAgdm9pZCBhZGRDb2x1bW4oY29uc3QgUmVuZGVyVGFi
bGVDb2wqKTsKKyAgICB2b2lkIHJlbW92ZUNvbHVtbihjb25zdCBSZW5kZXJUYWJsZUNvbCopOwog
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKQEAgLTI4Myw2ICsyODMsOSBAQCBw
cml2YXRlOgogCiAgICAgUmVuZGVyVGFibGVDb2wqIHNsb3dDb2xFbGVtZW50KHVuc2lnbmVkIGNv
bCwgYm9vbCogc3RhcnRFZGdlLCBib29sKiBlbmRFZGdlKSBjb25zdDsKIAorICAgIHZvaWQgdXBk
YXRlQ29sdW1uQ2FjaGUoKSBjb25zdDsKKyAgICB2b2lkIGludmFsaWRhdGVDYWNoZWRDb2x1bW5z
KCk7CisKICAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jaygpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJzdExldHRlcigpOwogICAgIApAQCAtMzA1LDYgKzMw
OCw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBWZWN0b3I8aW50PiBtX2NvbHVtblBvczsKICAg
ICBtdXRhYmxlIFZlY3RvcjxDb2x1bW5TdHJ1Y3Q+IG1fY29sdW1uczsKICAgICBtdXRhYmxlIFZl
Y3RvcjxSZW5kZXJUYWJsZUNhcHRpb24qPiBtX2NhcHRpb25zOworICAgIG11dGFibGUgVmVjdG9y
PFJlbmRlclRhYmxlQ29sKj4gbV9jb2x1bW5SZW5kZXJlcnM7CiAKICAgICBtdXRhYmxlIFJlbmRl
clRhYmxlU2VjdGlvbiogbV9oZWFkOwogICAgIG11dGFibGUgUmVuZGVyVGFibGVTZWN0aW9uKiBt
X2Zvb3Q7CkBAIC0zMTUsMTAgKzMxOSwxMiBAQCBwcml2YXRlOgogICAgIENvbGxhcHNlZEJvcmRl
clZhbHVlcyBtX2NvbGxhcHNlZEJvcmRlcnM7CiAgICAgY29uc3QgQ29sbGFwc2VkQm9yZGVyVmFs
dWUqIG1fY3VycmVudEJvcmRlcjsKICAgICBib29sIG1fY29sbGFwc2VkQm9yZGVyc1ZhbGlkIDog
MTsKLSAgICAKKwogICAgIG11dGFibGUgYm9vbCBtX2hhc0NvbEVsZW1lbnRzIDogMTsKICAgICBt
dXRhYmxlIGJvb2wgbV9uZWVkc1NlY3Rpb25SZWNhbGMgOiAxOworCiAgICAgYm9vbCBtX2NvbHVt
bkxvZ2ljYWxXaWR0aENoYW5nZWQgOiAxOworICAgIG11dGFibGUgYm9vbCBtX2NvbHVtblJlbmRl
cmVyc1ZhbGlkOiAxOwogCiAgICAgc2hvcnQgbV9oU3BhY2luZzsKICAgICBzaG9ydCBtX3ZTcGFj
aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKaW5kZXgg
N2FhODM0MWE3ZTIyZGQ2MDk0YTJiZGMzMjMxN2VhM2I0ZjI3ZWEzYS4uYjAyYWE4MzhiZjY2NGVm
MDVmNDhhODFkZjlhNTQzNDIxZDdlNzQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDb2wuY3BwCkBAIC03MCwxNCArNzAsMTYgQEAgdm9pZCBSZW5kZXJUYWJsZUNv
bDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0
aHNSZWNhbGMoKTsKIH0KIAordm9pZCBSZW5kZXJUYWJsZUNvbDo6aW5zZXJ0ZWRJbnRvVHJlZSgp
Cit7CisgICAgUmVuZGVyQm94OjppbnNlcnRlZEludG9UcmVlKCk7CisgICAgdGFibGUoKS0+YWRk
Q29sdW1uKHRoaXMpOworfQorCiB2b2lkIFJlbmRlclRhYmxlQ29sOjp3aWxsQmVSZW1vdmVkRnJv
bVRyZWUoKQogewogICAgIFJlbmRlckJveDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCk7Ci0KLSAg
ICAvLyBXZSBkb24ndCByZWFsbHkgbmVlZCB0byByZWNvbXB1dGUgb3VyIHNlY3Rpb25zLCBidXQg
d2UgbmVlZCB0byB1cGRhdGUgb3VyCi0gICAgLy8gY29sdW1uIGNvdW50IGFuZCB3aGV0aGVyIHdl
IGhhdmUgYSBjb2x1bW4uIEN1cnJlbnRseSwgd2Ugb25seSBoYXZlIG9uZQotICAgIC8vIHNpemUt
Zml0LWFsbCBmbGFnIGJ1dCB3ZSBtYXkgaGF2ZSB0byBjb25zaWRlciBzcGxpdHRpbmcgaXQuCi0g
ICAgdGFibGUoKS0+c2V0TmVlZHNTZWN0aW9uUmVjYWxjKCk7CisgICAgdGFibGUoKS0+cmVtb3Zl
Q29sdW1uKHRoaXMpOwogfQogCiBib29sIFJlbmRlclRhYmxlQ29sOjppc0NoaWxkQWxsb3dlZChS
ZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4IDFhOWZhYzZlYzIzZDZmMGM1Yzcx
MDVkYmZjMTE0MzFlOGRhODI0YTUuLjllY2E0MjI0N2YxNGYzMTMxNzczNjA2YThhNTQ2YzgyODM1
OWNkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNv
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCkBAIC04
MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyVGFibGVDb2wo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChSZW5kZXJPYmplY3QqLCBSZW5k
ZXJTdHlsZSopIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171503</attachid>
            <date>2012-10-30 12:40:13 -0700</date>
            <delta_ts>2012-10-30 12:40:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100630-20121030123837.patch</filename>
            <type>text/plain</type>
            <size>8445</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFjNDk4NzJjYWEzYzE2
NjI3NGRlZjM3MjRkMGI1MmNkMDY2MDRjNi4uZTFmZDdlOGQxOTMxNmQ2Nzk2ODJkMjJlMGQ3Mzdk
NGNkYmNlNDZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTI4ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHJlbmRlcmluZyB0YWJs
ZXMgd2l0aCA8Y29sZ3JvdXBzPiB0d2ljZSBhcyBmYXN0IGJ5IGF2b2lkaW5nIHdhbGtpbmcgdGhl
IERPTSBmb3IgY29sZ3JvdXBzIDQgdGltZXMgZm9yIGVhY2ggY2VsbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNjMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBub3QgYSBjb21wbGV0ZSBm
aXguICBPdXIgcmVuZGVyaW5nIG9mIHRoaXMgbGFyZ2UgdGFibGVzIHN0aWxsIHRha2VzIDcuOCBz
ZWNvbmRzCisgICAgICAgIG9uIG15IHJldGluYSBNQlAgKGRvd24gZnJvbSAxNC4zcyBiZWZvcmUg
dGhpcyBjaGFuZ2UpLgorICAgICAgICBJdCdzIHZlcnkgZXhwZW5zaXZlIHRvIHdhbGsgdGhlIERP
TSBlYWNoIHRpbWUgd2UgY2FsbCBSZW5kZXJUYWJsZTo6Y29sRWxlbWVudAorICAgICAgICBzbyB0
aGlzIGNhY2hlcyB0aGUgUmVuZGVyVGFibGVDb2wqIGluIGEgdmVjdG9yIGZvciBlYXNpZXIgd2Fs
a2luZy4KKyAgICAgICAgV2UgaW52YWxpZGF0ZSB0aGUgY2FjaGUgYW55IHRpbWUgYSBSZW5kZXJU
YWJsZUNvbCBpcyBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlCisgICAgICAgIHJlbmRlcmluZyBz
dWItdHJlZSB0byBhdm9pZCBob2xkaW5nIGEgYmFkIHBvaW50ZXIuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OlJl
bmRlclRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjppbnZhbGlkYXRlQ2Fj
aGVkQ29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlOjphZGRDb2x1bW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnJlbW92
ZUNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6dXBkYXRlQ29sdW1uQ2Fj
aGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnNsb3dDb2xFbGVtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKyAgICAgICAgKFJlbmRlclRhYmxlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVDb2w6Omluc2VydGVkSW50b1RyZWUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNvbDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKKwogMjAxMi0xMC0yNSAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGVhY2ggUmVuZGVyVGFi
bGUgaG93IHRvIHVzZSBWZWN0b3I6Omluc2VydCBhbmQgVmVjdG9yOjphcHBlbmQgaW5zdGVhZCBv
ZiBpdHMgb3duIGN1c3RvbSBtZW1tb3ZlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCmluZGV4IGFjNzMyNGMyMWYzZWQwOTM1ZmRkYTFhYmU2OGZlMDU3MDUzZTk3
YjMuLjM2YmQ4NmE5ZmZhYmJjMWIyZGY2MWIyYmNjNmNlOWFkZDgzM2Q0Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtNTksNiArNTksNyBAQCBSZW5kZXJU
YWJsZTo6UmVuZGVyVGFibGUoTm9kZSogbm9kZSkKICAgICAsIG1faGFzQ29sRWxlbWVudHMoZmFs
c2UpCiAgICAgLCBtX25lZWRzU2VjdGlvblJlY2FsYyhmYWxzZSkKICAgICAsIG1fY29sdW1uTG9n
aWNhbFdpZHRoQ2hhbmdlZChmYWxzZSkKKyAgICAsIG1fY29sdW1uUmVuZGVyZXJzVmFsaWQoZmFs
c2UpCiAgICAgLCBtX2hTcGFjaW5nKDApCiAgICAgLCBtX3ZTcGFjaW5nKDApCiAgICAgLCBtX2Jv
cmRlclN0YXJ0KDApCkBAIC0yMTMsNiArMjE0LDI2IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlbW92
ZUNhcHRpb24oY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKiBvbGRDYXB0aW9uKQogICAgIG1fY2Fw
dGlvbnMucmVtb3ZlKGluZGV4KTsKIH0KIAordm9pZCBSZW5kZXJUYWJsZTo6aW52YWxpZGF0ZUNh
Y2hlZENvbHVtbnMoKQoreworICAgIG1fY29sdW1uUmVuZGVyZXJzVmFsaWQgPSBmYWxzZTsKKyAg
ICBtX2NvbHVtblJlbmRlcmVycy5yZXNpemUoMCk7Cit9CisKK3ZvaWQgUmVuZGVyVGFibGU6OmFk
ZENvbHVtbihjb25zdCBSZW5kZXJUYWJsZUNvbCopCit7CisgICAgaW52YWxpZGF0ZUNhY2hlZENv
bHVtbnMoKTsKK30KKwordm9pZCBSZW5kZXJUYWJsZTo6cmVtb3ZlQ29sdW1uKGNvbnN0IFJlbmRl
clRhYmxlQ29sKikKK3sKKyAgICBpbnZhbGlkYXRlQ2FjaGVkQ29sdW1ucygpOworICAgIC8vIFdl
IGRvbid0IHJlYWxseSBuZWVkIHRvIHJlY29tcHV0ZSBvdXIgc2VjdGlvbnMsIGJ1dCB3ZSBuZWVk
IHRvIHVwZGF0ZSBvdXIKKyAgICAvLyBjb2x1bW4gY291bnQgYW5kIHdoZXRoZXIgd2UgaGF2ZSBh
IGNvbHVtbi4gQ3VycmVudGx5LCB3ZSBvbmx5IGhhdmUgb25lCisgICAgLy8gc2l6ZS1maXQtYWxs
IGZsYWcgYnV0IHdlIG1heSBoYXZlIHRvIGNvbnNpZGVyIHNwbGl0dGluZyBpdC4KKyAgICBzZXRO
ZWVkc1NlY3Rpb25SZWNhbGMoKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZTo6dXBkYXRlTG9naWNh
bFdpZHRoKCkKIHsKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CkBAIC03MTksNyArNzQw
LDYgQEAgdm9pZCBSZW5kZXJUYWJsZTo6c3BsaXRDb2x1bW4odW5zaWduZWQgcG9zaXRpb24sIHVu
c2lnbmVkIGZpcnN0U3BhbikKIAogdm9pZCBSZW5kZXJUYWJsZTo6YXBwZW5kQ29sdW1uKHVuc2ln
bmVkIHNwYW4pCiB7Ci0gICAgLy8gU2F2ZSBvZmYgdGhlIGluZGV4IG9mIHRoZSBuZXcgY29sdW1u
IGZvciB1c2UgaW4gbm90aWZ5aW5nIHRoZSBzZWN0aW9ucyBvZiB0aGlzIG5ldyBjb2x1bW4uCiAg
ICAgdW5zaWduZWQgbmV3Q29sdW1uSW5kZXggPSBtX2NvbHVtbnMuc2l6ZSgpOwogICAgIG1fY29s
dW1ucy5hcHBlbmQoQ29sdW1uU3RydWN0KHNwYW4pKTsKIApAQCAtNzU0LDE1ICs3NzQsMzAgQEAg
UmVuZGVyVGFibGVDb2wqIFJlbmRlclRhYmxlOjpmaXJzdENvbHVtbigpIGNvbnN0CiAgICAgcmV0
dXJuIDA7CiB9CiAKLVJlbmRlclRhYmxlQ29sKiBSZW5kZXJUYWJsZTo6c2xvd0NvbEVsZW1lbnQo
dW5zaWduZWQgY29sLCBib29sKiBzdGFydEVkZ2UsIGJvb2wqIGVuZEVkZ2UpIGNvbnN0Cit2b2lk
IFJlbmRlclRhYmxlOjp1cGRhdGVDb2x1bW5DYWNoZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
aGFzQ29sRWxlbWVudHMpOworICAgIEFTU0VSVChtX2NvbHVtblJlbmRlcmVycy5pc0VtcHR5KCkp
OworICAgIEFTU0VSVCghbV9jb2x1bW5SZW5kZXJlcnNWYWxpZCk7CiAKLSAgICB1bnNpZ25lZCBj
b2x1bW5Db3VudCA9IDA7CiAgICAgZm9yIChSZW5kZXJUYWJsZUNvbCogY29sdW1uUmVuZGVyZXIg
PSBmaXJzdENvbHVtbigpOyBjb2x1bW5SZW5kZXJlcjsgY29sdW1uUmVuZGVyZXIgPSBjb2x1bW5S
ZW5kZXJlci0+bmV4dENvbHVtbigpKSB7CiAgICAgICAgIGlmIChjb2x1bW5SZW5kZXJlci0+aXNU
YWJsZUNvbHVtbkdyb3VwV2l0aENvbHVtbkNoaWxkcmVuKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgbV9jb2x1bW5SZW5kZXJlcnMuYXBwZW5kKGNvbHVtblJlbmRlcmVyKTsKKyAg
ICB9CisgICAgbV9jb2x1bW5SZW5kZXJlcnNWYWxpZCA9IHRydWU7Cit9CisKK1JlbmRlclRhYmxl
Q29sKiBSZW5kZXJUYWJsZTo6c2xvd0NvbEVsZW1lbnQodW5zaWduZWQgY29sLCBib29sKiBzdGFy
dEVkZ2UsIGJvb2wqIGVuZEVkZ2UpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzQ29sRWxlbWVu
dHMpOworCisgICAgaWYgKCFtX2NvbHVtblJlbmRlcmVyc1ZhbGlkKQorICAgICAgICB1cGRhdGVD
b2x1bW5DYWNoZSgpOwogCisgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSAwOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX2NvbHVtblJlbmRlcmVycy5zaXplKCk7IGkrKykgeworICAg
ICAgICBSZW5kZXJUYWJsZUNvbCogY29sdW1uUmVuZGVyZXIgPSBtX2NvbHVtblJlbmRlcmVyc1tp
XTsKICAgICAgICAgdW5zaWduZWQgc3BhbiA9IGNvbHVtblJlbmRlcmVyLT5zcGFuKCk7CiAgICAg
ICAgIHVuc2lnbmVkIHN0YXJ0Q29sID0gY29sdW1uQ291bnQ7CiAgICAgICAgIEFTU0VSVChzcGFu
ID49IDEpOwpAQCAtNzc2LDcgKzgxMSw2IEBAIFJlbmRlclRhYmxlQ29sKiBSZW5kZXJUYWJsZTo6
c2xvd0NvbEVsZW1lbnQodW5zaWduZWQgY29sLCBib29sKiBzdGFydEVkZ2UsIGJvb2wqCiAgICAg
ICAgICAgICByZXR1cm4gY29sdW1uUmVuZGVyZXI7CiAgICAgICAgIH0KICAgICB9Ci0KICAgICBy
ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCBh
N2JlMmQ1NjhlNDNlOTRlZmFjN2E5ZTg2OTkwMDE3OThhYTk4ZTVkLi5mOWY5Mzg2N2YyZTExNDEz
NmI2MTc4MDk2YWFhNzg5NzcyNTBiZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGUuaApAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFi
bGUoTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlclRhYmxlKCk7CiAKLSAgICBpbnQgZ2V0Q29s
dW1uUG9zKHVuc2lnbmVkIGNvbCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5Qb3NbY29sXTsgfQot
CiAgICAgLy8gUGVyIENTUyAzIHdyaXRpbmctbW9kZTogIlRoZSBmaXJzdCBhbmQgc2Vjb25kIHZh
bHVlcyBvZiB0aGUgJ2JvcmRlci1zcGFjaW5nJyBwcm9wZXJ0eSByZXByZXNlbnQgc3BhY2luZyBi
ZXR3ZWVuIGNvbHVtbnMKICAgICAvLyBhbmQgcm93cyByZXNwZWN0aXZlbHksIG5vdCBuZWNlc3Nh
cmlseSB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc3BhY2luZyByZXNwZWN0aXZlbHkiLgog
ICAgIGludCBoQm9yZGVyU3BhY2luZygpIGNvbnN0IHsgcmV0dXJuIG1faFNwYWNpbmc7IH0KQEAg
LTI1OCw2ICsyNTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZENhcHRpb24oY29uc3QgUmVu
ZGVyVGFibGVDYXB0aW9uKik7CiAgICAgdm9pZCByZW1vdmVDYXB0aW9uKGNvbnN0IFJlbmRlclRh
YmxlQ2FwdGlvbiopOworICAgIHZvaWQgYWRkQ29sdW1uKGNvbnN0IFJlbmRlclRhYmxlQ29sKik7
CisgICAgdm9pZCByZW1vdmVDb2x1bW4oY29uc3QgUmVuZGVyVGFibGVDb2wqKTsKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CkBAIC0yODMsNiArMjgzLDkgQEAgcHJpdmF0ZToK
IAogICAgIFJlbmRlclRhYmxlQ29sKiBzbG93Q29sRWxlbWVudCh1bnNpZ25lZCBjb2wsIGJvb2wq
IHN0YXJ0RWRnZSwgYm9vbCogZW5kRWRnZSkgY29uc3Q7CiAKKyAgICB2b2lkIHVwZGF0ZUNvbHVt
bkNhY2hlKCkgY29uc3Q7CisgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVkQ29sdW1ucygpOworCiAg
ICAgdmlydHVhbCBSZW5kZXJCbG9jayogZmlyc3RMaW5lQmxvY2soKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRmlyc3RMZXR0ZXIoKTsKICAgICAKQEAgLTMwNSw2ICszMDgsNyBAQCBw
cml2YXRlOgogICAgIG11dGFibGUgVmVjdG9yPGludD4gbV9jb2x1bW5Qb3M7CiAgICAgbXV0YWJs
ZSBWZWN0b3I8Q29sdW1uU3RydWN0PiBtX2NvbHVtbnM7CiAgICAgbXV0YWJsZSBWZWN0b3I8UmVu
ZGVyVGFibGVDYXB0aW9uKj4gbV9jYXB0aW9uczsKKyAgICBtdXRhYmxlIFZlY3RvcjxSZW5kZXJU
YWJsZUNvbCo+IG1fY29sdW1uUmVuZGVyZXJzOwogCiAgICAgbXV0YWJsZSBSZW5kZXJUYWJsZVNl
Y3Rpb24qIG1faGVhZDsKICAgICBtdXRhYmxlIFJlbmRlclRhYmxlU2VjdGlvbiogbV9mb290OwpA
QCAtMzE1LDEwICszMTksMTIgQEAgcHJpdmF0ZToKICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZXMg
bV9jb2xsYXBzZWRCb3JkZXJzOwogICAgIGNvbnN0IENvbGxhcHNlZEJvcmRlclZhbHVlKiBtX2N1
cnJlbnRCb3JkZXI7CiAgICAgYm9vbCBtX2NvbGxhcHNlZEJvcmRlcnNWYWxpZCA6IDE7Ci0gICAg
CisKICAgICBtdXRhYmxlIGJvb2wgbV9oYXNDb2xFbGVtZW50cyA6IDE7CiAgICAgbXV0YWJsZSBi
b29sIG1fbmVlZHNTZWN0aW9uUmVjYWxjIDogMTsKKwogICAgIGJvb2wgbV9jb2x1bW5Mb2dpY2Fs
V2lkdGhDaGFuZ2VkIDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jb2x1bW5SZW5kZXJlcnNWYWxp
ZDogMTsKIAogICAgIHNob3J0IG1faFNwYWNpbmc7CiAgICAgc2hvcnQgbV92U3BhY2luZzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCmluZGV4IDdhYTgzNDFh
N2UyMmRkNjA5NGEyYmRjMzIzMTdlYTNiNGYyN2VhM2EuLmIwMmFhODM4YmY2NjRlZjA1ZjQ4YTgx
ZGY5YTU0MzQyMWQ3ZTc0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ29sLmNwcApAQCAtNzAsMTQgKzcwLDE2IEBAIHZvaWQgUmVuZGVyVGFibGVDb2w6OnVwZGF0
ZUZyb21FbGVtZW50KCkKICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxj
KCk7CiB9CiAKK3ZvaWQgUmVuZGVyVGFibGVDb2w6Omluc2VydGVkSW50b1RyZWUoKQoreworICAg
IFJlbmRlckJveDo6aW5zZXJ0ZWRJbnRvVHJlZSgpOworICAgIHRhYmxlKCktPmFkZENvbHVtbih0
aGlzKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZUNvbDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkK
IHsKICAgICBSZW5kZXJCb3g6OndpbGxCZVJlbW92ZWRGcm9tVHJlZSgpOwotCi0gICAgLy8gV2Ug
ZG9uJ3QgcmVhbGx5IG5lZWQgdG8gcmVjb21wdXRlIG91ciBzZWN0aW9ucywgYnV0IHdlIG5lZWQg
dG8gdXBkYXRlIG91cgotICAgIC8vIGNvbHVtbiBjb3VudCBhbmQgd2hldGhlciB3ZSBoYXZlIGEg
Y29sdW1uLiBDdXJyZW50bHksIHdlIG9ubHkgaGF2ZSBvbmUKLSAgICAvLyBzaXplLWZpdC1hbGwg
ZmxhZyBidXQgd2UgbWF5IGhhdmUgdG8gY29uc2lkZXIgc3BsaXR0aW5nIGl0LgotICAgIHRhYmxl
KCktPnNldE5lZWRzU2VjdGlvblJlY2FsYygpOworICAgIHRhYmxlKCktPnJlbW92ZUNvbHVtbih0
aGlzKTsKIH0KIAogYm9vbCBSZW5kZXJUYWJsZUNvbDo6aXNDaGlsZEFsbG93ZWQoUmVuZGVyT2Jq
ZWN0KiBjaGlsZCwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDb2wuaAppbmRleCAxYTlmYWM2ZWMyM2Q2ZjBjNWM3MTA1ZGJmYzEx
NDMxZThkYTgyNGE1Li45ZWNhNDIyNDdmMTRmMzEzMTc3MzYwNmE4YTU0NmM4MjgzNTljZDk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApAQCAtODEsNiArODEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclRhYmxlQ29sKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxl
bWVudCgpOwogCisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUq
KSBjb25zdDsK
</data>
<flag name="commit-queue"
          id="185447"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>