<?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>57341</bug_id>
          
          <creation_ts>2011-03-29 07:36:21 -0700</creation_ts>
          <short_desc>Split more logic out from createBidiRunsForLine for readability</short_desc>
          <delta_ts>2011-03-29 23:18:53 -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>
          <dependson>57338</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>375316</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 07:36:21 -0700</bug_when>
    <thetext>Split more logic out from createBidiRunsForLine for readability</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375326</commentid>
    <comment_count>1</comment_count>
      <attachid>87327</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 07:40:29 -0700</bug_when>
    <thetext>Created attachment 87327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375334</commentid>
    <comment_count>2</comment_count>
      <attachid>87327</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-29 07:53:05 -0700</bug_when>
    <thetext>Comment on attachment 87327
Patch

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

&gt; Source/WebCore/platform/text/BidiResolver.h:572
&gt; +    for (Run* r = firstRun(); r; r = r-&gt;next()) {

I&apos;d rename &quot;r&quot; to &quot;run&quot;.

&gt; Source/WebCore/platform/text/BidiResolver.h:590
&gt; +        Run* currRun = firstRun();

I&apos;d rename currRun to currentRun.

&gt; Source/WebCore/platform/text/BidiResolver.h:602
&gt; +            while (i &lt; count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &lt; levelHigh) {
&gt; +                i++;
&gt; +                currRun = currRun-&gt;next();
&gt; +            }
&gt; +            unsigned start = i;
&gt; +            while (i &lt;= count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &gt;= levelHigh) {
&gt; +                i++;
&gt; +                currRun = currRun-&gt;next();
&gt; +            }
&gt; +            unsigned end = i - 1;
&gt; +            reverseRuns(start, end);

I&apos;d rewrite these as:

unsigned start;
unsigned end;
for (start = i; start &lt; count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &lt; levelHigh; start++)
    currRun = currRun-&gt;next();

for (end = start; end &lt; count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &lt; levelHigh; end++)
    currRun = currRun-&gt;next();

reverseRuns(start, end);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375335</commentid>
    <comment_count>3</comment_count>
      <attachid>87327</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 07:54:33 -0700</bug_when>
    <thetext>Comment on attachment 87327
Patch

Great suggestions.  I think you meant r+ though. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375447</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 09:48:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;d rewrite these as:
&gt; 
&gt; unsigned start;
&gt; unsigned end;
&gt; for (start = i; start &lt; count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &lt; levelHigh; start++)
&gt;     currRun = currRun-&gt;next();
&gt; 
&gt; for (end = start; end &lt; count &amp;&amp; currRun &amp;&amp; currRun-&gt;m_level &lt; levelHigh; end++)
&gt;     currRun = currRun-&gt;next();
&gt; 
&gt; reverseRuns(start, end);

I dont&apos; think that quiet works.  We need to keep i in sync with &quot;currRun&quot;.  I rewrote it a little.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375449</commentid>
    <comment_count>5</comment_count>
      <attachid>87349</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 09:51:59 -0700</bug_when>
    <thetext>Created attachment 87349
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375600</commentid>
    <comment_count>6</comment_count>
      <attachid>87349</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 11:43:41 -0700</bug_when>
    <thetext>Comment on attachment 87349
Patch for landing

Rejecting attachment 87349 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-7&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
Hunk #3 FAILED at 1584.
Hunk #4 FAILED at 1683.
Hunk #5 FAILED at 1754.
Hunk #6 FAILED at 1850.
Hunk #7 FAILED at 1889.
Hunk #8 FAILED at 1899.
Hunk #9 FAILED at 1908.
Hunk #10 FAILED at 1945.
Hunk #11 FAILED at 2008.
Hunk #12 FAILED at 2038.
Hunk #13 FAILED at 2055.
Hunk #14 FAILED at 2064.
14 out of 14 hunks FAILED -- saving rejects to file Source/WebCore/rendering/RenderBlockLineLayout.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8273969</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375655</commentid>
    <comment_count>7</comment_count>
      <attachid>87389</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 12:16:14 -0700</bug_when>
    <thetext>Created attachment 87389
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375845</commentid>
    <comment_count>8</comment_count>
      <attachid>87389</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 16:02:52 -0700</bug_when>
    <thetext>Comment on attachment 87389
Patch for landing

Rejecting attachment 87389 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-8&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
bug 57341.
Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Parsed 2 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/platform/text/BidiResolver.h
Hunk #3 FAILED at 981.
1 out of 3 hunks FAILED -- saving rejects to file Source/WebCore/platform/text/BidiResolver.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8280512</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376017</commentid>
    <comment_count>9</comment_count>
      <attachid>87460</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 21:13:57 -0700</bug_when>
    <thetext>Created attachment 87460
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376020</commentid>
    <comment_count>10</comment_count>
      <attachid>87461</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 21:15:12 -0700</bug_when>
    <thetext>Created attachment 87461
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376037</commentid>
    <comment_count>11</comment_count>
      <attachid>87461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 21:55:49 -0700</bug_when>
    <thetext>Comment on attachment 87461
Patch for landing

Clearing flags on attachment: 87461

Committed r82389: &lt;http://trac.webkit.org/changeset/82389&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376038</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 21:55:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376056</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 23:18:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82389 might have broken SnowLeopard Intel Release (WebKit2 Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87327</attachid>
            <date>2011-03-29 07:40:29 -0700</date>
            <delta_ts>2011-03-29 09:51:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57341-20110329164027.patch</filename>
            <type>text/plain</type>
            <size>4818</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MjMwYTE5NzQ1NTQyMzFk
ZWQyNDgyMTNjMWIwM2NmMDUwOGIxYWE4Li4yN2NhZmJjMzQyZDcyYmE0ZWM0MTQ3M2JlZmRlYWM2
NjAzZWQzZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAgQEAKIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBTcGxpdCBtb3JlIGxvZ2ljIG91dCBmcm9t
IGNyZWF0ZUJpZGlSdW5zRm9yTGluZSBmb3IgcmVhZGFiaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MzQxCisKKyAgICAgICAgSSBtYXJrZWQg
cmVvcmRlclJ1bnNGcm9tTGV2ZWxzIGlubGluZSwgYnV0IGl0IHByb2JhYmx5IGRvZXNuJ3QgYWN0
dWFsbHkgbmVlZCB0byAob3Igd2FudCB0bykgYmUuCisgICAgICAgIFRoaXMgbG9wcyBhbm90aGVy
IGxhcmdlIGh1bmsgb2ZmIG9mIHJlb3JkZXJSdW5zRnJvbUxldmVscyBmdXJ0aGVyIHJlZHVjaW5n
IHRoZSBzaXplIGFuZCBjb21wbGV4aXR5LgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRp
UmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVvcmRlclJ1bnNGcm9tTGV2ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlQmlkaVJ1bnNGb3JMaW5lKToKKworMjAxMS0wMy0y
OSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKICAgICAgICAgU3RhcnQgdG8gY2xlYW4gdXAgQmlkaVJlc29sdmVy
OjpjcmVhdGVCaWRpUnVuc0ZvckxpbmUgc28gdGhhdCBtZXJlIG1vcnRhbHMgY2FuIHVuZGVyc3Rh
bmQgaXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3
MzM4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29s
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCmluZGV4
IDM0MDQ1MjIwMjcwZjVjMTA4NjcxMWE3NjJkNDFjZTEzMGQxN2ViOGUuLmRhZDU3N2E3MmM2ZTRl
YjZhYzM5ZWU4NzBlMjYzYzAyNzQ1M2JjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9CaWRpUmVzb2x2ZXIuaApAQCAtMjExLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjaGVja0RpcmVjdGlvbkluTG93ZXJSYWlzZUVtYmVkZGluZ0xldmVsKCk7CiAKICAgICB2b2lk
IHVwZGF0ZVN0YXR1c0xhc3RGcm9tQ3VycmVudERpcmVjdGlvbihXVEY6OlVuaWNvZGU6OkRpcmVj
dGlvbik7CisgICAgdm9pZCByZW9yZGVyUnVuc0Zyb21MZXZlbHMoKTsKIAogICAgIFZlY3RvcjxX
VEY6OlVuaWNvZGU6OkRpcmVjdGlvbiwgOD4gbV9jdXJyZW50RXhwbGljaXRFbWJlZGRpbmdTZXF1
ZW5jZTsKIH07CkBAIC01NjQsNiArNTY1LDQ3IEBAIGlubGluZSB2b2lkIEJpZGlSZXNvbHZlcjxJ
dGVyYXRvciwgUnVuPjo6dXBkYXRlU3RhdHVzTGFzdEZyb21DdXJyZW50RGlyZWN0aW9uKFdUCiB9
CiAKIHRlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xhc3MgUnVuPgoraW5saW5lIHZvaWQgQmlk
aVJlc29sdmVyPEl0ZXJhdG9yLCBSdW4+OjpyZW9yZGVyUnVuc0Zyb21MZXZlbHMoKQoreworICAg
IHVuc2lnbmVkIGNoYXIgbGV2ZWxMb3cgPSAxMjg7CisgICAgdW5zaWduZWQgY2hhciBsZXZlbEhp
Z2ggPSAwOworICAgIGZvciAoUnVuKiByID0gZmlyc3RSdW4oKTsgcjsgciA9IHItPm5leHQoKSkg
eworICAgICAgICBsZXZlbEhpZ2ggPSBtYXgoci0+bV9sZXZlbCwgbGV2ZWxIaWdoKTsKKyAgICAg
ICAgbGV2ZWxMb3cgPSBtaW4oci0+bV9sZXZlbCwgbGV2ZWxMb3cpOworICAgIH0KKworICAgIC8v
IFRoaXMgaW1wbGVtZW50cyByZW9yZGVyaW5nIG9mIHRoZSBsaW5lIChMMiBhY2NvcmRpbmcgdG8g
QmlkaSBzcGVjKToKKyAgICAvLyBodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjkvI0wyCisg
ICAgLy8gTDIuIEZyb20gdGhlIGhpZ2hlc3QgbGV2ZWwgZm91bmQgaW4gdGhlIHRleHQgdG8gdGhl
IGxvd2VzdCBvZGQgbGV2ZWwgb24gZWFjaCBsaW5lLAorICAgIC8vIHJldmVyc2UgYW55IGNvbnRp
Z3VvdXMgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBhdCB0aGF0IGxldmVsIG9yIGhp
Z2hlci4KKworICAgIC8vIFJldmVyc2luZyBpcyBvbmx5IGRvbmUgdXAgdG8gdGhlIGxvd2VzdCBv
ZGQgbGV2ZWwuCisgICAgaWYgKCEobGV2ZWxMb3cgJSAyKSkKKyAgICAgICAgbGV2ZWxMb3crKzsK
KworICAgIHVuc2lnbmVkIGNvdW50ID0gcnVuQ291bnQoKSAtIDE7CisKKyAgICB3aGlsZSAobGV2
ZWxIaWdoID49IGxldmVsTG93KSB7CisgICAgICAgIHVuc2lnbmVkIGkgPSAwOworICAgICAgICBS
dW4qIGN1cnJSdW4gPSBmaXJzdFJ1bigpOworICAgICAgICB3aGlsZSAoaSA8IGNvdW50KSB7Cisg
ICAgICAgICAgICB3aGlsZSAoaSA8IGNvdW50ICYmIGN1cnJSdW4gJiYgY3VyclJ1bi0+bV9sZXZl
bCA8IGxldmVsSGlnaCkgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBj
dXJyUnVuID0gY3VyclJ1bi0+bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdW5z
aWduZWQgc3RhcnQgPSBpOworICAgICAgICAgICAgd2hpbGUgKGkgPD0gY291bnQgJiYgY3VyclJ1
biAmJiBjdXJyUnVuLT5tX2xldmVsID49IGxldmVsSGlnaCkgeworICAgICAgICAgICAgICAgIGkr
KzsKKyAgICAgICAgICAgICAgICBjdXJyUnVuID0gY3VyclJ1bi0+bmV4dCgpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdW5zaWduZWQgZW5kID0gaSAtIDE7CisgICAgICAgICAgICByZXZl
cnNlUnVucyhzdGFydCwgZW5kKTsKKyAgICAgICAgfQorICAgICAgICBsZXZlbEhpZ2gtLTsKKyAg
ICB9Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xhc3MgUnVuPgogdm9pZCBCaWRp
UmVzb2x2ZXI8SXRlcmF0b3IsIFJ1bj46OmNyZWF0ZUJpZGlSdW5zRm9yTGluZShjb25zdCBJdGVy
YXRvciYgZW5kLCBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSBvdmVycmlkZSwgYm9vbCBoYXJkTGlu
ZUJyZWFrKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CkBAIC05NDMsNDQg
Kzk4NSw3IEBAIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJhdG9yLCBSdW4+OjpjcmVhdGVCaWRpUnVu
c0ZvckxpbmUoY29uc3QgSXRlcmF0b3ImIGVuZCwgVmlzCiAgICAgfQogCiAgICAgbV9sb2dpY2Fs
bHlMYXN0UnVuID0gbV9sYXN0UnVuOwotCi0gICAgLy8gcmVvcmRlciBsaW5lIGFjY29yZGluZyB0
byBydW4gc3RydWN0dXJlLi4uCi0gICAgLy8gZmlyc3QgZmluZCBoaWdoZXN0IGFuZCBsb3dlc3Qg
bGV2ZWxzCi0gICAgdW5zaWduZWQgY2hhciBsZXZlbExvdyA9IDEyODsKLSAgICB1bnNpZ25lZCBj
aGFyIGxldmVsSGlnaCA9IDA7Ci0gICAgZm9yIChSdW4qIHIgPSBmaXJzdFJ1bigpOyByOyByID0g
ci0+bmV4dCgpKSB7Ci0gICAgICAgIGxldmVsSGlnaCA9IG1heChyLT5tX2xldmVsLCBsZXZlbEhp
Z2gpOwotICAgICAgICBsZXZlbExvdyA9IG1pbihyLT5tX2xldmVsLCBsZXZlbExvdyk7Ci0gICAg
fQotCi0gICAgLy8gaW1wbGVtZW50cyByZW9yZGVyaW5nIG9mIHRoZSBsaW5lIChMMiBhY2NvcmRp
bmcgdG8gQmlkaSBzcGVjKToKLSAgICAvLyBMMi4gRnJvbSB0aGUgaGlnaGVzdCBsZXZlbCBmb3Vu
ZCBpbiB0aGUgdGV4dCB0byB0aGUgbG93ZXN0IG9kZCBsZXZlbCBvbiBlYWNoIGxpbmUsCi0gICAg
Ly8gcmV2ZXJzZSBhbnkgY29udGlndW91cyBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJl
IGF0IHRoYXQgbGV2ZWwgb3IgaGlnaGVyLgotCi0gICAgLy8gcmV2ZXJzaW5nIGlzIG9ubHkgZG9u
ZSB1cCB0byB0aGUgbG93ZXN0IG9kZCBsZXZlbAotICAgIGlmICghKGxldmVsTG93ICUgMikpCi0g
ICAgICAgIGxldmVsTG93Kys7Ci0KLSAgICB1bnNpZ25lZCBjb3VudCA9IHJ1bkNvdW50KCkgLSAx
OwotCi0gICAgd2hpbGUgKGxldmVsSGlnaCA+PSBsZXZlbExvdykgewotICAgICAgICB1bnNpZ25l
ZCBpID0gMDsKLSAgICAgICAgUnVuKiBjdXJyUnVuID0gZmlyc3RSdW4oKTsKLSAgICAgICAgd2hp
bGUgKGkgPCBjb3VudCkgewotICAgICAgICAgICAgd2hpbGUgKGkgPCBjb3VudCAmJiBjdXJyUnVu
ICYmIGN1cnJSdW4tPm1fbGV2ZWwgPCBsZXZlbEhpZ2gpIHsKLSAgICAgICAgICAgICAgICBpKys7
Ci0gICAgICAgICAgICAgICAgY3VyclJ1biA9IGN1cnJSdW4tPm5leHQoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0ID0gaTsKLSAgICAgICAgICAgIHdoaWxlIChp
IDw9IGNvdW50ICYmIGN1cnJSdW4gJiYgY3VyclJ1bi0+bV9sZXZlbCA+PSBsZXZlbEhpZ2gpIHsK
LSAgICAgICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICAgICAgY3VyclJ1biA9IGN1cnJSdW4t
Pm5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuc2lnbmVkIGVuZCA9IGkgLSAx
OwotICAgICAgICAgICAgcmV2ZXJzZVJ1bnMoc3RhcnQsIGVuZCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgbGV2ZWxIaWdoLS07Ci0gICAgfQorICAgIHJlb3JkZXJSdW5zRnJvbUxldmVscygpOwogICAg
IGVuZE9mTGluZSA9IEl0ZXJhdG9yKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87349</attachid>
            <date>2011-03-29 09:51:59 -0700</date>
            <delta_ts>2011-03-29 12:16:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-57341-20110329185154.patch</filename>
            <type>text/plain</type>
            <size>26757</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyNTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzc4ZmQwM2E5MzExNWNl
NzgwNGVhYTlhNDBkZmI3MmZjMjdhM2IwLi4yMjI3NThhMDAxOTA4NGEzMDM3MTEzMTYyNTA4MmY0
NzJhMWRiZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTE1IEBACiAyMDExLTAzLTI5ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgU3BsaXQgbW9yZSBsb2dpYyBvdXQgZnJvbSBjcmVhdGVCaWRpUnVu
c0ZvckxpbmUgZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NzM0MQorCisgICAgICAgIEkgbWFya2VkIHJlb3JkZXJSdW5zRnJv
bUxldmVscyBpbmxpbmUsIGJ1dCBpdCBwcm9iYWJseSBkb2Vzbid0IGFjdHVhbGx5IG5lZWQgdG8g
KG9yIHdhbnQgdG8pIGJlLgorICAgICAgICBUaGlzIGxvcHMgYW5vdGhlciBsYXJnZSBodW5rIG9m
ZiBvZiByZW9yZGVyUnVuc0Zyb21MZXZlbHMgZnVydGhlciByZWR1Y2luZyB0aGUgc2l6ZSBhbmQg
Y29tcGxleGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjo6OnJlb3JkZXJSdW5zRnJvbUxldmVscyk6CisgICAgICAgIChXZWJD
b3JlOjo6OmNyZWF0ZUJpZGlSdW5zRm9yTGluZSk6CisKKzIwMTEtMDMtMjkgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
KworICAgICAgICBTdGFydCB0byBjbGVhbiB1cCBCaWRpUmVzb2x2ZXI6OmNyZWF0ZUJpZGlSdW5z
Rm9yTGluZSBzbyB0aGF0IG1lcmUgbW9ydGFscyBjYW4gdW5kZXJzdGFuZCBpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTczMzgKKworICAgICAgICBJ
J20gYXR0ZW1wdGluZyB0byBicmVhayBjcmVhdGVCaWRpUnVuc0ZvckxpbmUgaW50byB1bmRlcnN0
YW5kYWJsZSBwaWVjZXMKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gdGVsbCB3aGF0IGl0J3MgYWN0
dWFsbHkgZG9pbmcuICBPdXIgaW1wbGVtZW50YXRpb24gb2YgdGhlCisgICAgICAgIHVuaWNvZGUg
YmlkaSBhbGdvcml0aG0gaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gdGhlIHNwZWMgaW4gdGhh
dCB3ZQorICAgICAgICBydW4gaXQgcGVyLWxpbmUgKGluc3RlYWQgb2Ygb3ZlciB0aGUgZW50aXJl
IHBhcmFncmFwaCBhdCBvbmNlKS4gIFRoaXMgaXMKKyAgICAgICAgZ3JlYXQgZm9yIHBlcmZvcm1h
bmNlIChvdXIgaW1wbGVtZW50YXRpb24gaXMgcmVzdW1hYmxlKSwgYnV0IGl0IG1ha2VzCisgICAg
ICAgIHRoaW5ncyBhIGJpdCB0cmlja3kgdG8gdW5kZXJzdGFuZC4gIFNwbGl0dGluZyBjcmVhdGVC
aWRpUnVuc0ZvckxpbmUgaW50bworICAgICAgICBwaWVjZXMgc2hvdWxkIGhlbHAgbWFrZSBvdXIg
VUJBIGltcGxlbWVudGF0aW9uIG1vcmUgcmVhZGFibGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L0JpZGlSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6Ojp1cGRhdGVTdGF0dXNMYXN0
RnJvbUN1cnJlbnREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6OjpjcmVhdGVCaWRpUnVu
c0ZvckxpbmUpOgorCisyMDExLTAzLTI5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQ2xlYW4gdXAg
YmlkaU5leHQgYnkgYWJzdHJhY3RpbmcgcmVwZWF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTczMzUKKworICAgICAgICBJIGFsc28gYWRk
ZWQgYSBjb21tZW50IHRvIGV4cGxhaW4gd2hhdCBiaWRpTmV4dCBpcyBhY3R1YWxseSBkb2luZy4K
KyAgICAgICAgVGhpcyB3aG9sZSBhcmVhIG9mIGNvZGUgaXMgY29uZnVzaW5nIGJ1dCBuZWVkIG5v
dCBiZS4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oOgorICAgICAgICAo
V2ViQ29yZTo6ZW1iZWRDaGFyRnJvbURpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpub3Rp
ZnlSZXNvbHZlckVudGVyZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6bm90aWZ5UmVzb2x2
ZXJXaWxsRXhpdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpiaWRpTmV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpiaWRpRmlyc3QpOgorCisyMDExLTAzLTI5ICBFcmljIFNlaWRlbCAgPGVyaWNA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAg
ICAgUmVtb3ZlIGEgYnVuY2ggb2YgZHVwbGljYXRlIGNvZGUgYnkgYWRkaW5nIHNvbWUgSW5saW5l
SXRlcmF0b3IgaGVscGVyIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU3MzI2CisKKyAgICAgICAgT25jZSBJIHN0YXJ0ZWQgYWRkaW5nIHRo
ZXNlIGl0IGJlY2FtZSBjbGVhciBob3cgbXVjaCBjcmF6eSBkdXBsaWNhdGVkIGNvZGUKKyAgICAg
ICAgd2UgaGFkIGR1ZSB0byB0cmVhdGluZyBJbmxpbmVJdGVyYXRvciBhcyBhIHN0cnVjdCBhbmQg
YWNjZXNzaW5nIGl0cworICAgICAgICBtZW1iZXJzIGRpcmVjdGx5LiAgV2UgY2FuJ3QgcXVpdGUg
bWFrZSB0aGUgbWVtYmVycyBwcml2YXRlIHlldCBzaW5jZQorICAgICAgICBmaW5kTmV4dExpbmVC
cmVhayBzdGlsbCBzcGxpdHMgb3V0IHRoZSBtZW1iZXJzLiAgQnV0IHRoaXMgY2hhbmdlCisgICAg
ICAgIG1ha2VzIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjptb3ZlVG9TdGFydE9mKTppCisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUl0ZXJhdG9yOjppbmNyZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ5SHlwaGVuYXRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKToKKwor
MjAxMS0wMy0yOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFJlbmFtZSBJbmxpbmVJdGVyYXRvcjo6
bmV4dEJyZWFrYWJsZVBvc2l0aW9uIHRvIG1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uIHRvIG1hdGNo
IG1vZGVybiBzdHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTczMjMKKworICAgICAgICBBbGwgb2YgdGhlc2UgbV9uZXh0QnJlYWthYmxlUG9zaXRp
b24gPSAtMSBjb3VsZCBwcm9iYWJseSBiZSByZXBsYWNlZCB3aXRoCisgICAgICAgIHNvbWUgbmV3
IG1ldGhvZHMuICBCdXQgSSdsbCBkbyB0aGF0IGluIGEgc2VwYXJhdGUgY2hhbmdlLiAgQ2xlYXJs
eQorICAgICAgICBtX25leHRCcmVha2FibGVQb3NpdGlvbiBpcyBqdXN0IGEgY2FjaGVkIHZhbHVl
IHdoaWNoIHNob3VsZCBiZSBjbGVhcmVkCisgICAgICAgIGF0IHRoZSByaWdodCB0aW1lcy4gIEkg
c3VzcGVjdCB3ZSBtYXkgZXZlbiBmYWlsIHRvIGNsZWFyIGl0IHNvbWV0aW1lcyB3aGVuCisgICAg
ICAgIHdlIHNob3VsZCBkdWUgdG8gdGhlIGN1cnJlbnQgdXNlZCBvZiBkaXJlY3QgYWNjZXNzIGlu
c3RlYWQgb2Ygc21hcnRlciBmdW5jdGlvbnMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpJbmxpbmVJdGVy
YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6aW5jcmVtZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnRyeUh5cGhlbmF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpm
aW5kTmV4dExpbmVCcmVhayk6CisKKzIwMTEtMDMtMjkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBS
ZW5hbWUgSW5saW5lSXRlcmF0b3I6OmJsb2NrIHRvIG1fYmxvY2sgdG8gbWF0Y2ggbW9kZXJuIHN0
eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzMy
MQorCisgICAgICAgIEkgY291bGQgaGF2ZSBtYWRlIG1fYmxvY2sgcHJpdmF0ZSwgc2luY2UgaXQn
cyBvbmx5IGFjY2Vzc2VkIGluCisgICAgICAgIG9uZSBwbGFjZSBvdXRzaWRlIG9mIElubGluZUl0
ZXJhdG9yIChmb3IgYW4gQVNTRVJUKS4gIEJ1dCBJIGNob3NlCisgICAgICAgIG5vdCB0byBkbyBz
byBpbiB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OklubGluZUl0ZXJhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjppbmNyZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lQmlkaVJlc29sdmVyOjphcHBlbmRSdW4pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmZpbmROZXh0TGluZUJyZWFrKToKKworMjAxMS0wMy0yOSAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgog
CiAgICAgICAgIFJlbmFtZSBJbmxpbmVJdGVyYXRvcjo6cG9zIHRvIG1fcG9zIHRvIG1hdGNoIG1v
ZGVybiBzdHlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRp
UmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmgK
aW5kZXggMDdlOTI3NGFkZWIzMWRhMzE3MzQyYjEzY2VlN2E1Njk0OWY1ZDA4Yy4uNjFlZTlhZDcy
ZjVhM2E1MDNkYTQzNjk0NjY2MGZjNjZiYmNkMTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCkBAIC0yMTAsNiArMjEwLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGxvd2VyRXhwbGljaXRFbWJlZGRpbmdMZXZlbChXVEY6OlVuaWNvZGU6OkRpcmVjdGlv
biBmcm9tKTsKICAgICB2b2lkIGNoZWNrRGlyZWN0aW9uSW5Mb3dlclJhaXNlRW1iZWRkaW5nTGV2
ZWwoKTsKIAorICAgIHZvaWQgdXBkYXRlU3RhdHVzTGFzdEZyb21DdXJyZW50RGlyZWN0aW9uKFdU
Rjo6VW5pY29kZTo6RGlyZWN0aW9uKTsKKyAgICB2b2lkIHJlb3JkZXJSdW5zRnJvbUxldmVscygp
OworCiAgICAgVmVjdG9yPFdURjo6VW5pY29kZTo6RGlyZWN0aW9uLCA4PiBtX2N1cnJlbnRFeHBs
aWNpdEVtYmVkZGluZ1NlcXVlbmNlOwogfTsKIApAQCAtNTIwLDYgKzUyMyw4NSBAQCB2b2lkIEJp
ZGlSZXNvbHZlcjxJdGVyYXRvciwgUnVuPjo6cmV2ZXJzZVJ1bnModW5zaWduZWQgc3RhcnQsIHVu
c2lnbmVkIGVuZCkKIH0KIAogdGVtcGxhdGUgPGNsYXNzIEl0ZXJhdG9yLCBjbGFzcyBSdW4+Citp
bmxpbmUgdm9pZCBCaWRpUmVzb2x2ZXI8SXRlcmF0b3IsIFJ1bj46OnVwZGF0ZVN0YXR1c0xhc3RG
cm9tQ3VycmVudERpcmVjdGlvbihXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbiBkaXJDdXJyZW50KQor
eworICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CisgICAgc3dpdGNoIChkaXJDdXJy
ZW50KSB7CisgICAgY2FzZSBFdXJvcGVhbk51bWJlclRlcm1pbmF0b3I6CisgICAgICAgIGlmICht
X3N0YXR1cy5sYXN0ICE9IEV1cm9wZWFuTnVtYmVyKQorICAgICAgICAgICAgbV9zdGF0dXMubGFz
dCA9IEV1cm9wZWFuTnVtYmVyVGVybWluYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBF
dXJvcGVhbk51bWJlclNlcGFyYXRvcjoKKyAgICBjYXNlIENvbW1vbk51bWJlclNlcGFyYXRvcjoK
KyAgICBjYXNlIFNlZ21lbnRTZXBhcmF0b3I6CisgICAgY2FzZSBXaGl0ZVNwYWNlTmV1dHJhbDoK
KyAgICBjYXNlIE90aGVyTmV1dHJhbDoKKyAgICAgICAgc3dpdGNoIChtX3N0YXR1cy5sYXN0KSB7
CisgICAgICAgIGNhc2UgTGVmdFRvUmlnaHQ6CisgICAgICAgIGNhc2UgUmlnaHRUb0xlZnQ6Cisg
ICAgICAgIGNhc2UgUmlnaHRUb0xlZnRBcmFiaWM6CisgICAgICAgIGNhc2UgRXVyb3BlYW5OdW1i
ZXI6CisgICAgICAgIGNhc2UgQXJhYmljTnVtYmVyOgorICAgICAgICAgICAgbV9zdGF0dXMubGFz
dCA9IGRpckN1cnJlbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIG1fc3RhdHVzLmxhc3QgPSBPdGhlck5ldXRyYWw7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBOb25TcGFjaW5nTWFyazoKKyAgICBjYXNlIEJvdW5kYXJ5TmV1
dHJhbDoKKyAgICBjYXNlIFJpZ2h0VG9MZWZ0RW1iZWRkaW5nOgorICAgIGNhc2UgTGVmdFRvUmln
aHRFbWJlZGRpbmc6CisgICAgY2FzZSBSaWdodFRvTGVmdE92ZXJyaWRlOgorICAgIGNhc2UgTGVm
dFRvUmlnaHRPdmVycmlkZToKKyAgICBjYXNlIFBvcERpcmVjdGlvbmFsRm9ybWF0OgorICAgICAg
ICAvLyBpZ25vcmUgdGhlc2UKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFdXJvcGVhbk51bWJl
cjoKKyAgICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgZGVmYXVsdDoKKyAgICAgICAgbV9zdGF0
dXMubGFzdCA9IGRpckN1cnJlbnQ7CisgICAgfQorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0
b3IsIGNsYXNzIFJ1bj4KK2lubGluZSB2b2lkIEJpZGlSZXNvbHZlcjxJdGVyYXRvciwgUnVuPjo6
cmVvcmRlclJ1bnNGcm9tTGV2ZWxzKCkKK3sKKyAgICB1bnNpZ25lZCBjaGFyIGxldmVsTG93ID0g
MTI4OworICAgIHVuc2lnbmVkIGNoYXIgbGV2ZWxIaWdoID0gMDsKKyAgICBmb3IgKFJ1biogcnVu
ID0gZmlyc3RSdW4oKTsgcnVuOyBydW4gPSBydW4tPm5leHQoKSkgeworICAgICAgICBsZXZlbEhp
Z2ggPSBtYXgocnVuLT5sZXZlbCgpLCBsZXZlbEhpZ2gpOworICAgICAgICBsZXZlbExvdyA9IG1p
bihydW4tPmxldmVsKCksIGxldmVsTG93KTsKKyAgICB9CisKKyAgICAvLyBUaGlzIGltcGxlbWVu
dHMgcmVvcmRlcmluZyBvZiB0aGUgbGluZSAoTDIgYWNjb3JkaW5nIHRvIEJpZGkgc3BlYyk6Cisg
ICAgLy8gaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHI5LyNMMgorICAgIC8vIEwyLiBGcm9t
IHRoZSBoaWdoZXN0IGxldmVsIGZvdW5kIGluIHRoZSB0ZXh0IHRvIHRoZSBsb3dlc3Qgb2RkIGxl
dmVsIG9uIGVhY2ggbGluZSwKKyAgICAvLyByZXZlcnNlIGFueSBjb250aWd1b3VzIHNlcXVlbmNl
IG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgYXQgdGhhdCBsZXZlbCBvciBoaWdoZXIuCisKKyAgICAv
LyBSZXZlcnNpbmcgaXMgb25seSBkb25lIHVwIHRvIHRoZSBsb3dlc3Qgb2RkIGxldmVsLgorICAg
IGlmICghKGxldmVsTG93ICUgMikpCisgICAgICAgIGxldmVsTG93Kys7CisKKyAgICB1bnNpZ25l
ZCBjb3VudCA9IHJ1bkNvdW50KCkgLSAxOworCisgICAgd2hpbGUgKGxldmVsSGlnaCA+PSBsZXZl
bExvdykgeworICAgICAgICB1bnNpZ25lZCBpID0gMDsKKyAgICAgICAgUnVuKiBydW4gPSBmaXJz
dFJ1bigpOworICAgICAgICB3aGlsZSAoaSA8IGNvdW50KSB7CisgICAgICAgICAgICBmb3IgKDtp
IDwgY291bnQgJiYgcnVuICYmIHJ1bi0+bGV2ZWwoKSA8IGxldmVsSGlnaDsgaSsrKQorICAgICAg
ICAgICAgICAgIHJ1biA9IHJ1bi0+bmV4dCgpOworICAgICAgICAgICAgdW5zaWduZWQgc3RhcnQg
PSBpOworICAgICAgICAgICAgZm9yICg7aSA8PSBjb3VudCAmJiBydW4gJiYgcnVuLT5sZXZlbCgp
ID49IGxldmVsSGlnaDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1biA9IHJ1bi0+bmV4dCgpOwor
ICAgICAgICAgICAgdW5zaWduZWQgZW5kID0gaSAtIDE7CisgICAgICAgICAgICByZXZlcnNlUnVu
cyhzdGFydCwgZW5kKTsKKyAgICAgICAgfQorICAgICAgICBsZXZlbEhpZ2gtLTsKKyAgICB9Cit9
CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xhc3MgUnVuPgogdm9pZCBCaWRpUmVzb2x2
ZXI8SXRlcmF0b3IsIFJ1bj46OmNyZWF0ZUJpZGlSdW5zRm9yTGluZShjb25zdCBJdGVyYXRvciYg
ZW5kLCBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSBvdmVycmlkZSwgYm9vbCBoYXJkTGluZUJyZWFr
KQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CkBAIC04NTgsNDQgKzk0MCw3
IEBAIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJhdG9yLCBSdW4+OjpjcmVhdGVCaWRpUnVuc0Zvckxp
bmUoY29uc3QgSXRlcmF0b3ImIGVuZCwgVmlzCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCi0gICAgICAgIC8vIHNldCBtX3N0YXR1cy5sYXN0IGFzIG5lZWRlZC4KLSAgICAgICAgc3dp
dGNoIChkaXJDdXJyZW50KSB7Ci0gICAgICAgICAgICBjYXNlIEV1cm9wZWFuTnVtYmVyVGVybWlu
YXRvcjoKLSAgICAgICAgICAgICAgICBpZiAobV9zdGF0dXMubGFzdCAhPSBFdXJvcGVhbk51bWJl
cikKLSAgICAgICAgICAgICAgICAgICAgbV9zdGF0dXMubGFzdCA9IEV1cm9wZWFuTnVtYmVyVGVy
bWluYXRvcjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRXVyb3Bl
YW5OdW1iZXJTZXBhcmF0b3I6Ci0gICAgICAgICAgICBjYXNlIENvbW1vbk51bWJlclNlcGFyYXRv
cjoKLSAgICAgICAgICAgIGNhc2UgU2VnbWVudFNlcGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2Ug
V2hpdGVTcGFjZU5ldXRyYWw6Ci0gICAgICAgICAgICBjYXNlIE90aGVyTmV1dHJhbDoKLSAgICAg
ICAgICAgICAgICBzd2l0Y2gobV9zdGF0dXMubGFzdCkgewotICAgICAgICAgICAgICAgICAgICBj
YXNlIExlZnRUb1JpZ2h0OgotICAgICAgICAgICAgICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0Ogot
ICAgICAgICAgICAgICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0QXJhYmljOgotICAgICAgICAgICAg
ICAgICAgICBjYXNlIEV1cm9wZWFuTnVtYmVyOgotICAgICAgICAgICAgICAgICAgICBjYXNlIEFy
YWJpY051bWJlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdHVzLmxhc3QgPSBkaXJD
dXJyZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXR1cy5sYXN0ID0gT3Ro
ZXJOZXV0cmFsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIE5vblNwYWNpbmdNYXJrOgotICAgICAgICAgICAgY2FzZSBCb3Vu
ZGFyeU5ldXRyYWw6Ci0gICAgICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0RW1iZWRkaW5nOiAKLSAg
ICAgICAgICAgIGNhc2UgTGVmdFRvUmlnaHRFbWJlZGRpbmc6IAotICAgICAgICAgICAgY2FzZSBS
aWdodFRvTGVmdE92ZXJyaWRlOiAKLSAgICAgICAgICAgIGNhc2UgTGVmdFRvUmlnaHRPdmVycmlk
ZTogCi0gICAgICAgICAgICBjYXNlIFBvcERpcmVjdGlvbmFsRm9ybWF0OgotICAgICAgICAgICAg
ICAgIC8vIGlnbm9yZSB0aGVzZQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBFdXJvcGVhbk51bWJlcjoKLSAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgbV9zdGF0dXMubGFzdCA9IGRpckN1
cnJlbnQ7Ci0gICAgICAgIH0KLQorICAgICAgICB1cGRhdGVTdGF0dXNMYXN0RnJvbUN1cnJlbnRE
aXJlY3Rpb24oZGlyQ3VycmVudCk7CiAgICAgICAgIGxhc3QgPSBjdXJyZW50OwogCiAgICAgICAg
IGlmIChlbXB0eVJ1bikgewpAQCAtOTM2LDQ4ICs5ODEsNyBAQCB2b2lkIEJpZGlSZXNvbHZlcjxJ
dGVyYXRvciwgUnVuPjo6Y3JlYXRlQmlkaVJ1bnNGb3JMaW5lKGNvbnN0IEl0ZXJhdG9yJiBlbmQs
IFZpcwogICAgIH0KIAogICAgIG1fbG9naWNhbGx5TGFzdFJ1biA9IG1fbGFzdFJ1bjsKLQotICAg
IC8vIHJlb3JkZXIgbGluZSBhY2NvcmRpbmcgdG8gcnVuIHN0cnVjdHVyZS4uLgotICAgIC8vIGZp
cnN0IGZpbmQgaGlnaGVzdCBhbmQgbG93ZXN0IGxldmVscwotICAgIHVuc2lnbmVkIGNoYXIgbGV2
ZWxMb3cgPSAxMjg7Ci0gICAgdW5zaWduZWQgY2hhciBsZXZlbEhpZ2ggPSAwOwotICAgIFJ1biog
ciA9IGZpcnN0UnVuKCk7Ci0gICAgd2hpbGUgKHIpIHsKLSAgICAgICAgaWYgKHItPm1fbGV2ZWwg
PiBsZXZlbEhpZ2gpCi0gICAgICAgICAgICBsZXZlbEhpZ2ggPSByLT5tX2xldmVsOwotICAgICAg
ICBpZiAoci0+bV9sZXZlbCA8IGxldmVsTG93KQotICAgICAgICAgICAgbGV2ZWxMb3cgPSByLT5t
X2xldmVsOwotICAgICAgICByID0gci0+bmV4dCgpOwotICAgIH0KLQotICAgIC8vIGltcGxlbWVu
dHMgcmVvcmRlcmluZyBvZiB0aGUgbGluZSAoTDIgYWNjb3JkaW5nIHRvIEJpZGkgc3BlYyk6Ci0g
ICAgLy8gTDIuIEZyb20gdGhlIGhpZ2hlc3QgbGV2ZWwgZm91bmQgaW4gdGhlIHRleHQgdG8gdGhl
IGxvd2VzdCBvZGQgbGV2ZWwgb24gZWFjaCBsaW5lLAotICAgIC8vIHJldmVyc2UgYW55IGNvbnRp
Z3VvdXMgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBhdCB0aGF0IGxldmVsIG9yIGhp
Z2hlci4KLQotICAgIC8vIHJldmVyc2luZyBpcyBvbmx5IGRvbmUgdXAgdG8gdGhlIGxvd2VzdCBv
ZGQgbGV2ZWwKLSAgICBpZiAoIShsZXZlbExvdyAlIDIpKQotICAgICAgICBsZXZlbExvdysrOwot
Ci0gICAgdW5zaWduZWQgY291bnQgPSBydW5Db3VudCgpIC0gMTsKLQotICAgIHdoaWxlIChsZXZl
bEhpZ2ggPj0gbGV2ZWxMb3cpIHsKLSAgICAgICAgdW5zaWduZWQgaSA9IDA7Ci0gICAgICAgIFJ1
biogY3VyclJ1biA9IGZpcnN0UnVuKCk7Ci0gICAgICAgIHdoaWxlIChpIDwgY291bnQpIHsKLSAg
ICAgICAgICAgIHdoaWxlIChpIDwgY291bnQgJiYgY3VyclJ1biAmJiBjdXJyUnVuLT5tX2xldmVs
IDwgbGV2ZWxIaWdoKSB7Ci0gICAgICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAgICAgIGN1
cnJSdW4gPSBjdXJyUnVuLT5uZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bnNp
Z25lZCBzdGFydCA9IGk7Ci0gICAgICAgICAgICB3aGlsZSAoaSA8PSBjb3VudCAmJiBjdXJyUnVu
ICYmIGN1cnJSdW4tPm1fbGV2ZWwgPj0gbGV2ZWxIaWdoKSB7Ci0gICAgICAgICAgICAgICAgaSsr
OwotICAgICAgICAgICAgICAgIGN1cnJSdW4gPSBjdXJyUnVuLT5uZXh0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB1bnNpZ25lZCBlbmQgPSBpIC0gMTsKLSAgICAgICAgICAgIHJldmVy
c2VSdW5zKHN0YXJ0LCBlbmQpOwotICAgICAgICB9Ci0gICAgICAgIGxldmVsSGlnaC0tOwotICAg
IH0KKyAgICByZW9yZGVyUnVuc0Zyb21MZXZlbHMoKTsKICAgICBlbmRPZkxpbmUgPSBJdGVyYXRv
cigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRl
cmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCmluZGV4
IGYyNjlmMTc5ODAwMjE0ODE3NmQ0ZTRmNjA4NTBlZTQ4ZGZkZmJlZDAuLjBhMjQwNWVmMjU1MWYw
YTBlMGZhM2FlYWY4NjIyZWEwZDExOTcwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVJdGVyYXRvci5oCkBAIC00OSw2ICs0OSwyMSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAorICAgIHZvaWQgY2xlYXIoKSB7IG1vdmVUbygwLCAwKTsgfQorCisgICAgdm9pZCBtb3ZlVG9T
dGFydE9mKFJlbmRlck9iamVjdCogb2JqZWN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG9iamVj
dCk7CisgICAgICAgIG1vdmVUbyhvYmplY3QsIDApOworICAgIH0KKworICAgIHZvaWQgbW92ZVRv
KFJlbmRlck9iamVjdCogb2JqZWN0LCB1bnNpZ25lZCBvZmZzZXQsIGludCBuZXh0QnJlYWsgPSAt
MSkKKyAgICB7CisgICAgICAgIG1fb2JqID0gb2JqZWN0OworICAgICAgICBtX3BvcyA9IG9mZnNl
dDsKKyAgICAgICAgbV9uZXh0QnJlYWthYmxlUG9zaXRpb24gPSBuZXh0QnJlYWs7CisgICAgfQor
CiAgICAgdm9pZCBpbmNyZW1lbnQoSW5saW5lQmlkaVJlc29sdmVyKiByZXNvbHZlciA9IDApOwog
ICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKIApAQCAtNzEsNiArODYsMzggQEAgaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBJbmxpbmVJdGVyYXRvciYgaXQxLCBjb25zdCBJbmxpbmVJdGVyYXRv
ciYgaXQyKQogICAgIHJldHVybiBpdDEubV9wb3MgIT0gaXQyLm1fcG9zIHx8IGl0MS5tX29iaiAh
PSBpdDIubV9vYmo7CiB9CiAKK3N0YXRpYyBpbmxpbmUgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24g
ZW1iZWRDaGFyRnJvbURpcmVjdGlvbihUZXh0RGlyZWN0aW9uIGRpciwgRVVuaWNvZGVCaWRpIHVu
aWNvZGVCaWRpKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CisgICAgaWYg
KHVuaWNvZGVCaWRpID09IEVtYmVkKQorICAgICAgICByZXR1cm4gZGlyID09IFJUTCA/IFJpZ2h0
VG9MZWZ0RW1iZWRkaW5nIDogTGVmdFRvUmlnaHRFbWJlZGRpbmc7CisgICAgcmV0dXJuIGRpciA9
PSBSVEwgPyBSaWdodFRvTGVmdE92ZXJyaWRlIDogTGVmdFRvUmlnaHRPdmVycmlkZTsKK30KKwor
c3RhdGljIGlubGluZSB2b2lkIG5vdGlmeVJlc29sdmVyRW50ZXJlZE9iamVjdChJbmxpbmVCaWRp
UmVzb2x2ZXIqIHJlc29sdmVyLCBSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIXJl
c29sdmVyIHx8ICFvYmplY3QgfHwgIW9iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOworICAg
IEVVbmljb2RlQmlkaSB1bmljb2RlQmlkaSA9IHN0eWxlLT51bmljb2RlQmlkaSgpOworICAgIGlm
ICh1bmljb2RlQmlkaSA9PSBVQk5vcm1hbCkKKyAgICAgICAgcmV0dXJuOworICAgIHJlc29sdmVy
LT5lbWJlZChlbWJlZENoYXJGcm9tRGlyZWN0aW9uKHN0eWxlLT5kaXJlY3Rpb24oKSwgdW5pY29k
ZUJpZGkpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeVJlc29sdmVyV2lsbEV4aXRP
YmplY3QoSW5saW5lQmlkaVJlc29sdmVyKiByZXNvbHZlciwgUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgaWYgKCFyZXNvbHZlciB8fCAhb2JqZWN0LT5pc1JlbmRlcklubGluZSgpKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKG9iamVjdC0+c3R5bGUoKS0+dW5pY29kZUJpZGkoKSA9PSBV
Qk5vcm1hbCkKKyAgICAgICAgcmV0dXJuOworICAgIHJlc29sdmVyLT5lbWJlZChXVEY6OlVuaWNv
ZGU6OlBvcERpcmVjdGlvbmFsRm9ybWF0KTsKK30KKworLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24g
aXMgbWlzbGVhZGluZ2x5IG5hbWVkLiBJdCBoYXMgbGl0dGxlIHRvIGRvIHdpdGggYmlkaS4KKy8v
IFRoaXMgZnVuY3Rpb24gd2lsbCBpdGVyYXRlIG92ZXIgaW5saW5lcyB3aXRoaW4gYSBibG9jaywg
b3B0aW9uYWxseSBub3RpZnlpbmcKKy8vIGEgYmlkaSByZXNvbHZlciBhcyBpdCBlbnRlcnMvZXhp
dHMgaW5saW5lcyAoc28gaXQgY2FuIHB1c2gvcG9wIGVtYmVkZGluZyBsZXZlbHMpLgogc3RhdGlj
IGlubGluZSBSZW5kZXJPYmplY3QqIGJpZGlOZXh0KFJlbmRlckJsb2NrKiBibG9jaywgUmVuZGVy
T2JqZWN0KiBjdXJyZW50LCBJbmxpbmVCaWRpUmVzb2x2ZXIqIHJlc29sdmVyID0gMCwgYm9vbCBz
a2lwSW5saW5lcyA9IHRydWUsIGJvb2wqIGVuZE9mSW5saW5lUHRyID0gMCkKIHsKICAgICBSZW5k
ZXJPYmplY3QqIG5leHQgPSAwOwpAQCAtODEsMTYgKzEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVu
ZGVyT2JqZWN0KiBiaWRpTmV4dChSZW5kZXJCbG9jayogYmxvY2ssIFJlbmRlck9iamVjdCogY3Vy
cmVudCwKICAgICAgICAgbmV4dCA9IDA7CiAgICAgICAgIGlmICghb2xkRW5kT2ZJbmxpbmUgJiYg
IWN1cnJlbnQtPmlzRmxvYXRpbmcoKSAmJiAhY3VycmVudC0+aXNSZXBsYWNlZCgpICYmICFjdXJy
ZW50LT5pc1Bvc2l0aW9uZWQoKSAmJiAhY3VycmVudC0+aXNUZXh0KCkpIHsKICAgICAgICAgICAg
IG5leHQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7Ci0gICAgICAgICAgICBpZiAobmV4dCAmJiBy
ZXNvbHZlciAmJiBuZXh0LT5pc1JlbmRlcklubGluZSgpKSB7Ci0gICAgICAgICAgICAgICAgRVVu
aWNvZGVCaWRpIHViID0gbmV4dC0+c3R5bGUoKS0+dW5pY29kZUJpZGkoKTsKLSAgICAgICAgICAg
ICAgICBpZiAodWIgIT0gVUJOb3JtYWwpIHsKLSAgICAgICAgICAgICAgICAgICAgVGV4dERpcmVj
dGlvbiBkaXIgPSBuZXh0LT5zdHlsZSgpLT5kaXJlY3Rpb24oKTsKLSAgICAgICAgICAgICAgICAg
ICAgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24gZCA9ICh1YiA9PSBFbWJlZAotICAgICAgICAgICAg
ICAgICAgICAgICAgPyAoZGlyID09IFJUTCA/IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnRFbWJl
ZGRpbmcgOiBXVEY6OlVuaWNvZGU6OkxlZnRUb1JpZ2h0RW1iZWRkaW5nKQotICAgICAgICAgICAg
ICAgICAgICAgICAgOiAoZGlyID09IFJUTCA/IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnRPdmVy
cmlkZSA6IFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHRPdmVycmlkZSkpOwotICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlci0+ZW1iZWQoZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgbm90aWZ5UmVzb2x2ZXJFbnRlcmVkT2JqZWN0KHJlc29sdmVyLCBu
ZXh0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbmV4dCkgewpAQCAtMTAxLDI0ICsxMzks
MTQgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGJpZGlOZXh0KFJlbmRlckJsb2NrKiBi
bG9jaywgUmVuZGVyT2JqZWN0KiBjdXJyZW50LAogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9IGJsb2NrKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKHJlc29sdmVyICYmIGN1cnJlbnQtPmlzUmVuZGVySW5saW5lKCkgJiYgY3VycmVudC0+c3R5
bGUoKS0+dW5pY29kZUJpZGkoKSAhPSBVQk5vcm1hbCkKLSAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZXItPmVtYmVkKFdURjo6VW5pY29kZTo6UG9wRGlyZWN0aW9uYWxGb3JtYXQpOworICAgICAg
ICAgICAgICAgIG5vdGlmeVJlc29sdmVyV2lsbEV4aXRPYmplY3QocmVzb2x2ZXIsIGN1cnJlbnQp
OwogCiAgICAgICAgICAgICAgICAgbmV4dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKG5leHQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVy
ICYmIG5leHQtPmlzUmVuZGVySW5saW5lKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEVV
bmljb2RlQmlkaSB1YiA9IG5leHQtPnN0eWxlKCktPnVuaWNvZGVCaWRpKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodWIgIT0gVUJOb3JtYWwpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUZXh0RGlyZWN0aW9uIGRpciA9IG5leHQtPnN0eWxlKCktPmRpcmVjdGlvbigpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VW5pY29kZTo6RGlyZWN0aW9uIGQgPSAo
dWIgPT0gRW1iZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZGlyID09IFJU
TCA/IFdURjo6VW5pY29kZTo6UmlnaHRUb0xlZnRFbWJlZGRpbmc6IFdURjo6VW5pY29kZTo6TGVm
dFRvUmlnaHRFbWJlZGRpbmcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRp
ciA9PSBSVEwgPyBXVEY6OlVuaWNvZGU6OlJpZ2h0VG9MZWZ0T3ZlcnJpZGUgOiBXVEY6OlVuaWNv
ZGU6OkxlZnRUb1JpZ2h0T3ZlcnJpZGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvbHZlci0+ZW1iZWQoZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5UmVzb2x2ZXJFbnRlcmVkT2Jq
ZWN0KHJlc29sdmVyLCBuZXh0KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgY3VycmVudCA9
IGN1cnJlbnQtPnBhcmVudCgpOwogICAgICAgICAgICAgICAgIGlmICghc2tpcElubGluZXMgJiYg
Y3VycmVudCAmJiBjdXJyZW50ICE9IGJsb2NrICYmIGN1cnJlbnQtPmlzUmVuZGVySW5saW5lKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGN1cnJlbnQ7CkBAIC0xNDgsMTkgKzE3Niwx
MCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogYmlkaUZpcnN0KFJlbmRlckJsb2NrKiBi
bG9jaywgSW5saW5lQmlkaVJlc29sdmVyKiByZQogewogICAgIGlmICghYmxvY2stPmZpcnN0Q2hp
bGQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgCisKICAgICBSZW5kZXJPYmplY3QqIG8gPSBi
bG9jay0+Zmlyc3RDaGlsZCgpOwogICAgIGlmIChvLT5pc1JlbmRlcklubGluZSgpKSB7Ci0gICAg
ICAgIGlmIChyZXNvbHZlcikgewotICAgICAgICAgICAgRVVuaWNvZGVCaWRpIHViID0gby0+c3R5
bGUoKS0+dW5pY29kZUJpZGkoKTsKLSAgICAgICAgICAgIGlmICh1YiAhPSBVQk5vcm1hbCkgewot
ICAgICAgICAgICAgICAgIFRleHREaXJlY3Rpb24gZGlyID0gby0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCk7Ci0gICAgICAgICAgICAgICAgV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24gZCA9ICh1YiA9PSBF
bWJlZAotICAgICAgICAgICAgICAgICAgICA/IChkaXIgPT0gUlRMID8gV1RGOjpVbmljb2RlOjpS
aWdodFRvTGVmdEVtYmVkZGluZyA6IFdURjo6VW5pY29kZTo6TGVmdFRvUmlnaHRFbWJlZGRpbmcp
Ci0gICAgICAgICAgICAgICAgICAgIDogKGRpciA9PSBSVEwgPyBXVEY6OlVuaWNvZGU6OlJpZ2h0
VG9MZWZ0T3ZlcnJpZGUgOiBXVEY6OlVuaWNvZGU6OkxlZnRUb1JpZ2h0T3ZlcnJpZGUpKTsKLSAg
ICAgICAgICAgICAgICByZXNvbHZlci0+ZW1iZWQoZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KKyAgICAgICAgbm90aWZ5UmVzb2x2ZXJFbnRlcmVkT2JqZWN0KHJlc29sdmVyLCBvKTsKICAg
ICAgICAgaWYgKHNraXBJbmxpbmVzICYmIG8tPmZpcnN0Q2hpbGQoKSkKICAgICAgICAgICAgIG8g
PSBiaWRpTmV4dChibG9jaywgbywgcmVzb2x2ZXIsIHNraXBJbmxpbmVzKTsKICAgICAgICAgZWxz
ZSB7CkBAIC0xODUsMTYgKzIwNCwxMSBAQCBpbmxpbmUgdm9pZCBJbmxpbmVJdGVyYXRvcjo6aW5j
cmVtZW50KElubGluZUJpZGlSZXNvbHZlciogcmVzb2x2ZXIpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAobV9vYmotPmlzVGV4dCgpKSB7CiAgICAgICAgIG1fcG9zKys7Ci0gICAgICAgIGlmICht
X3BvcyA+PSB0b1JlbmRlclRleHQobV9vYmopLT50ZXh0TGVuZ3RoKCkpIHsKLSAgICAgICAgICAg
IG1fb2JqID0gYmlkaU5leHQobV9ibG9jaywgbV9vYmosIHJlc29sdmVyKTsKLSAgICAgICAgICAg
IG1fcG9zID0gMDsKLSAgICAgICAgICAgIG1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0gLTE7Ci0g
ICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBtX29iaiA9IGJpZGlOZXh0KG1fYmxvY2ss
IG1fb2JqLCByZXNvbHZlcik7Ci0gICAgICAgIG1fcG9zID0gMDsKLSAgICAgICAgbV9uZXh0QnJl
YWthYmxlUG9zaXRpb24gPSAtMTsKKyAgICAgICAgaWYgKG1fcG9zIDwgdG9SZW5kZXJUZXh0KG1f
b2JqKS0+dGV4dExlbmd0aCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAvLyBi
aWRpTmV4dCBjYW4gcmV0dXJuIDAsIHNvIHVzZSBtb3ZlVG8gaW5zdGVhZCBvZiBtb3ZlVG9TdGFy
dE9mCisgICAgbW92ZVRvKGJpZGlOZXh0KG1fYmxvY2ssIG1fb2JqLCByZXNvbHZlciksIDApOwog
fQogCiBpbmxpbmUgYm9vbCBJbmxpbmVJdGVyYXRvcjo6YXRFbmQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBm
MmFiZmYyMDJiZmE1ZjY2Y2Q3YTQ0Y2VmNTA4YzE4YmZiZDliMmEwLi4wYzY3ZmJjMDRiNThkNzMz
NTQ2NmQ4Yzk5ZmFjOWNiNWVkMmMzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTUwNCw5ICsxNTA0LDcgQEAgc3Rh
dGljIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCogdGV4dCwgY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgQXRvbWljU3RyaW4KICAgICBVTlVTRURfUEFSQU0oaXNGaXhlZFBpdGNoKTsKICNl
bmRpZgogCi0gICAgbGluZUJyZWFrLm1fb2JqID0gdGV4dDsKLSAgICBsaW5lQnJlYWsubV9wb3Mg
PSBsYXN0U3BhY2UgKyBwcmVmaXhMZW5ndGg7Ci0gICAgbGluZUJyZWFrLm1fbmV4dEJyZWFrYWJs
ZVBvc2l0aW9uID0gbmV4dEJyZWFrYWJsZTsKKyAgICBsaW5lQnJlYWsubW92ZVRvKHRleHQsIGxh
c3RTcGFjZSArIHByZWZpeExlbmd0aCwgbmV4dEJyZWFrYWJsZSk7CiAgICAgaHlwaGVuYXRlZCA9
IHRydWU7CiB9CiAKQEAgLTE1NDYsNiArMTU0NCw4IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJs
b2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29s
CiAKICAgICBJbmxpbmVJdGVyYXRvciBsQnJlYWsgPSByZXNvbHZlci5wb3NpdGlvbigpOwogCisg
ICAgLy8gRklYTUU6IEl0IGlzIGVycm9yLXByb25lIHRvIHNwbGl0IHRoZSBwb3NpdGlvbiBvYmpl
Y3Qgb3V0IGxpa2UgdGhpcy4KKyAgICAvLyBUZWFjaCB0aGlzIGNvZGUgdG8gd29yayB3aXRoIG9i
amVjdHMgaW5zdGVhZCBvZiB0aGlzIHNwbGl0IHR1cGxlLgogICAgIFJlbmRlck9iamVjdCogbyA9
IHJlc29sdmVyLnBvc2l0aW9uKCkubV9vYmo7CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0ID0gbzsK
ICAgICB1bnNpZ25lZCBwb3MgPSByZXNvbHZlci5wb3NpdGlvbigpLm1fcG9zOwpAQCAtMTU4NCw5
ICsxNTg0LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFr
KElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgIAogICAgICAg
ICBpZiAoby0+aXNCUigpKSB7CiAgICAgICAgICAgICBpZiAodyArIHRtcFcgPD0gd2lkdGgpIHsK
LSAgICAgICAgICAgICAgICBsQnJlYWsubV9vYmogPSBvOwotICAgICAgICAgICAgICAgIGxCcmVh
ay5tX3BvcyA9IDA7Ci0gICAgICAgICAgICAgICAgbEJyZWFrLm1fbmV4dEJyZWFrYWJsZVBvc2l0
aW9uID0gLTE7CisgICAgICAgICAgICAgICAgbEJyZWFrLm1vdmVUb1N0YXJ0T2Yobyk7CiAgICAg
ICAgICAgICAgICAgbEJyZWFrLmluY3JlbWVudCgpOwogCiAgICAgICAgICAgICAgICAgLy8gQSA8
YnI+IGFsd2F5cyBicmVha3MgYSBsaW5lLCBzbyBkb24ndCBsZXQgdGhlIGxpbmUgYmUgY29sbGFw
c2VkCkBAIC0xNjg1LDkgKzE2ODMsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6Zmlu
ZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbAogICAgICAg
ICAgICAgaWYgKChhdXRvV3JhcCB8fCBSZW5kZXJTdHlsZTo6YXV0b1dyYXAobGFzdFdTKSkgJiYg
KCFvLT5pc0ltYWdlKCkgfHwgYWxsb3dJbWFnZXNUb0JyZWFrKSkgewogICAgICAgICAgICAgICAg
IHcgKz0gdG1wVzsKICAgICAgICAgICAgICAgICB0bXBXID0gMDsKLSAgICAgICAgICAgICAgICBs
QnJlYWsubV9vYmogPSBvOwotICAgICAgICAgICAgICAgIGxCcmVhay5tX3BvcyA9IDA7Ci0gICAg
ICAgICAgICAgICAgbEJyZWFrLm1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0gLTE7CisgICAgICAg
ICAgICAgICAgbEJyZWFrLm1vdmVUb1N0YXJ0T2Yobyk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGlmIChpZ25vcmluZ1NwYWNlcykKQEAgLTE3NTgsOSArMTc1NCw3IEBAIElubGluZUl0
ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXIm
IHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICBpZiAodC0+aXNXb3JkQnJlYWsoKSkgewogICAg
ICAgICAgICAgICAgIHcgKz0gdG1wVzsKICAgICAgICAgICAgICAgICB0bXBXID0gMDsKLSAgICAg
ICAgICAgICAgICBsQnJlYWsubV9vYmogPSBvOwotICAgICAgICAgICAgICAgIGxCcmVhay5tX3Bv
cyA9IDA7Ci0gICAgICAgICAgICAgICAgbEJyZWFrLm1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0g
LTE7CisgICAgICAgICAgICAgICAgbEJyZWFrLm1vdmVUb1N0YXJ0T2Yobyk7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKCFsZW4pOwogICAgICAgICAgICAgfQogCkBAIC0xODU2LDkgKzE4NTAsNyBA
QCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlk
aVJlc29sdmVyJiByZXNvbHZlciwgYm9vbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IGFkZGl0aW9uYWwgd2hpdGVzcGFjZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dyArIHRtcFcgKyBjaGFyV2lkdGggPiB3aWR0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lV2FzVG9vV2lkZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxCcmVhay5tX29iaiA9IG87Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxCcmVhay5tX3BvcyA9IHBvczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbEJy
ZWFrLm1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0gbmV4dEJyZWFrYWJsZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLm1vdmVUbyhvLCBwb3MsIG5leHRCcmVha2FibGUp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwVHJhaWxpbmdXaGl0ZXNwYWNl
KGxCcmVhaywgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTg5
Nyw5ICsxODg5LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJy
ZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5lSXRlcmF0b3Io
MCwgbywgcG9zIC0gMSkpOyAvLyBTdG9wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRk
TWlkcG9pbnQobGluZU1pZHBvaW50U3RhdGUsIElubGluZUl0ZXJhdG9yKDAsIG8sIHBvcykpOyAv
LyBTdGFydAogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgbEJyZWFrLm1fb2JqID0gbzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5tX3Bv
cyA9IHBvczsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5tX25leHRCcmVha2FibGVQ
b3NpdGlvbiA9IG5leHRCcmVha2FibGU7CisgICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsu
bW92ZVRvKG8sIHBvcywgbmV4dEJyZWFrYWJsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBs
QnJlYWsuaW5jcmVtZW50KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0xpbmVC
cm9rZUNsZWFubHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxCcmVh
azsKQEAgLTE5MDksOSArMTg5OSw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5k
TmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAg
ICAgICAgICAgICAgICAgICB3ICs9IHRtcFc7CiAgICAgICAgICAgICAgICAgICAgICAgICB3cmFw
VyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXBXID0gMDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGxCcmVhay5tX29iaiA9IG87Ci0gICAgICAgICAgICAgICAgICAgICAgICBsQnJl
YWsubV9wb3MgPSBwb3M7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubV9uZXh0QnJl
YWthYmxlUG9zaXRpb24gPSBuZXh0QnJlYWthYmxlOworICAgICAgICAgICAgICAgICAgICAgICAg
bEJyZWFrLm1vdmVUbyhvLCBwb3MsIG5leHRCcmVha2FibGUpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gQXV0by13cmFwcGluZyB0ZXh0IHNob3VsZCBub3Qgd3JhcCBpbiB0aGUgbWlkZGxl
IG9mIGEgd29yZCBvbmNlIGl0IGhhcyBoYWQgYW4KICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IG9wcG9ydHVuaXR5IHRvIGJyZWFrIGFmdGVyIGEgd29yZC4KICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrV29yZHMgPSBmYWxzZTsKQEAgLTE5MjAsOSArMTkwOCw3IEBAIElubGluZUl0ZXJh
dG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJl
c29sdmVyLCBib29sCiAgICAgICAgICAgICAgICAgICAgIGlmIChtaWRXb3JkQnJlYWspIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoaXMgYXMgYSBicmVha2FibGUgcG9z
aXRpb24gaW4gY2FzZQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkaW5nIHRoZSBlbmQg
d2lkdGggZm9yY2VzIGEgYnJlYWsuCi0gICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubV9v
YmogPSBvOwotICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLm1fcG9zID0gcG9zOwotICAg
ICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLm1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uID0gbmV4
dEJyZWFrYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5tb3ZlVG8obywgcG9z
LCBuZXh0QnJlYWthYmxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1pZFdvcmRCcmVhayAm
PSAoYnJlYWtXb3JkcyB8fCBicmVha0FsbCk7CiAgICAgICAgICAgICAgICAgICAgIH0KIApAQCAt
MTk1OSwxMSArMTk0NSw4IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExp
bmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50Q2hhcmFjdGVySXNXUyAmJiBwcmV2
aW91c0NoYXJhY3RlcklzV1MpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG9XcmFwICYm
IG8tPnN0eWxlKCktPmJyZWFrT25seUFmdGVyV2hpdGVTcGFjZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBsQnJlYWsubV9vYmogPSBvOwotICAgICAgICAgICAgICAgICAgICAgICAgbEJy
ZWFrLm1fcG9zID0gcG9zOwotICAgICAgICAgICAgICAgICAgICAgICAgbEJyZWFrLm1fbmV4dEJy
ZWFrYWJsZVBvc2l0aW9uID0gbmV4dEJyZWFrYWJsZTsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBpZiAoYXV0b1dyYXAgJiYgby0+c3R5bGUoKS0+YnJlYWtPbmx5
QWZ0ZXJXaGl0ZVNwYWNlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubW92ZVRv
KG8sIHBvcywgbmV4dEJyZWFrYWJsZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZVdoaXRlU3BhY2UgJiYgY3VycmVudENo
YXJhY3RlcklzU3BhY2UgJiYgIWlnbm9yaW5nU3BhY2VzKQpAQCAtMjAyNSw5ICsyMDA4LDcgQEAg
SW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlS
ZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wKICAgICAgICAgICAgICAgICAgICAgaWYgKGNhblBsYWNl
T25MaW5lICYmIGNoZWNrRm9yQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHcgKz0g
dG1wVzsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcFcgPSAwOwotICAgICAgICAgICAgICAg
ICAgICAgICAgbEJyZWFrLm1fb2JqID0gbmV4dDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxC
cmVhay5tX3BvcyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsQnJlYWsubV9uZXh0QnJl
YWthYmxlUG9zaXRpb24gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxCcmVhay5tb3Zl
VG9TdGFydE9mKG5leHQpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQpAQCAtMjA1Nyw5ICsyMDM4LDcgQEAgSW5saW5lSXRlcmF0b3IgUmVu
ZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIs
IGJvb2wKICAgICAgICAgICAgIGlmIChsYXN0LT5pc1JlcGxhY2VkKCkgJiYgYXV0b1dyYXAgJiYg
KCFsYXN0LT5pc0ltYWdlKCkgfHwgYWxsb3dJbWFnZXNUb0JyZWFrKSAmJiAoIWxhc3QtPmlzTGlz
dE1hcmtlcigpIHx8IHRvUmVuZGVyTGlzdE1hcmtlcihsYXN0KS0+aXNJbnNpZGUoKSkpIHsKICAg
ICAgICAgICAgICAgICB3ICs9IHRtcFc7CiAgICAgICAgICAgICAgICAgdG1wVyA9IDA7Ci0gICAg
ICAgICAgICAgICAgbEJyZWFrLm1fb2JqID0gbmV4dDsKLSAgICAgICAgICAgICAgICBsQnJlYWsu
bV9wb3MgPSAwOwotICAgICAgICAgICAgICAgIGxCcmVhay5tX25leHRCcmVha2FibGVQb3NpdGlv
biA9IC0xOworICAgICAgICAgICAgICAgIGxCcmVhay5tb3ZlVG9TdGFydE9mKG5leHQpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTIwNzYsMTEgKzIwNTUsOCBAQCBJbmxpbmVJdGVy
YXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiBy
ZXNvbHZlciwgYm9vbAogICAgIH0KIAogICAgIAotICAgIGlmICh3ICsgdG1wVyA8PSB3aWR0aCB8
fCBsYXN0V1MgPT0gTk9XUkFQKSB7Ci0gICAgICAgIGxCcmVhay5tX29iaiA9IDA7Ci0gICAgICAg
IGxCcmVhay5tX3BvcyA9IDA7Ci0gICAgICAgIGxCcmVhay5tX25leHRCcmVha2FibGVQb3NpdGlv
biA9IC0xOwotICAgIH0KKyAgICBpZiAodyArIHRtcFcgPD0gd2lkdGggfHwgbGFzdFdTID09IE5P
V1JBUCkKKyAgICAgICAgbEJyZWFrLmNsZWFyKCk7CiAKICBlbmQ6CiAgICAgaWYgKGxCcmVhayA9
PSByZXNvbHZlci5wb3NpdGlvbigpICYmICghbEJyZWFrLm1fb2JqIHx8ICFsQnJlYWsubV9vYmot
PmlzQlIoKSkpIHsKQEAgLTIwODgsMjAgKzIwNjQsMTcgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVy
QmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJv
b2wKICAgICAgICAgaWYgKHN0eWxlKCktPndoaXRlU3BhY2UoKSA9PSBQUkUpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBEb24ndCByZWFsbHkgdW5kZXJzdGFuZCB0aGlzIGNhc2UuCiAgICAgICAg
ICAgICBpZiAocG9zICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgY2FsbCBtb3ZlVG8gd2hpY2ggd291bGQgY2xlYXIgbV9uZXh0QnJlYWthYmxlUG9zaXRpb24K
KyAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgYXMtaXMgaXMgbGlrZWx5IHdyb25nLgogICAg
ICAgICAgICAgICAgIGxCcmVhay5tX29iaiA9IG87CiAgICAgICAgICAgICAgICAgbEJyZWFrLm1f
cG9zID0gcG9zIC0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbEJy
ZWFrLm1fb2JqID0gbGFzdDsKLSAgICAgICAgICAgICAgICBsQnJlYWsubV9wb3MgPSBsYXN0LT5p
c1RleHQoKSA/IGxhc3QtPmxlbmd0aCgpIDogMDsKLSAgICAgICAgICAgICAgICBsQnJlYWsubV9u
ZXh0QnJlYWthYmxlUG9zaXRpb24gPSAtMTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIGxCcmVhay5tb3ZlVG8obGFzdCwgbGFzdC0+aXNUZXh0KCkg
PyBsYXN0LT5sZW5ndGgoKSA6IDApOwogICAgICAgICB9IGVsc2UgaWYgKGxCcmVhay5tX29iaikg
ewogICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciBicmVhayBpbiB0aGUgbWlkZGxlIG9mIGEgd29y
ZCBpZiB3ZSBjYW4gaGVscCBpdC4KICAgICAgICAgICAgIC8vIFRoZXJlJ3Mgbm8gcm9vbSBhdCBh
bGwuIFdlIGp1c3QgaGF2ZSB0byBiZSBvbiB0aGlzIGxpbmUsCiAgICAgICAgICAgICAvLyBldmVu
IHRob3VnaCB3ZSdsbCBzcGlsbCBvdXQuCi0gICAgICAgICAgICBsQnJlYWsubV9vYmogPSBvOwot
ICAgICAgICAgICAgbEJyZWFrLm1fcG9zID0gcG9zOwotICAgICAgICAgICAgbEJyZWFrLm1fbmV4
dEJyZWFrYWJsZVBvc2l0aW9uID0gLTE7CisgICAgICAgICAgICBsQnJlYWsubW92ZVRvKG8sIHBv
cyk7CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87389</attachid>
            <date>2011-03-29 12:16:14 -0700</date>
            <delta_ts>2011-03-29 21:13:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-57341-20110329211612.patch</filename>
            <type>text/plain</type>
            <size>4719</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNjUzNGEwMTc2NzViMWVh
MTFjZDg0ZmQzZDIzZTI3MmFiNjk2YTI3Li5kNTUwZDg5OGM4OTVjNDQ5NzdmMzI3NGQ4ZTNhM2Jk
YjQyM2YzNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDMtMjkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNwbGl0IG1vcmUgbG9naWMgb3V0IGZyb20gY3JlYXRlQmlkaVJ1
bnNGb3JMaW5lIGZvciByZWFkYWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTczNDEKKworICAgICAgICBJIG1hcmtlZCByZW9yZGVyUnVuc0Zy
b21MZXZlbHMgaW5saW5lLCBidXQgaXQgcHJvYmFibHkgZG9lc24ndCBhY3R1YWxseSBuZWVkIHRv
IChvciB3YW50IHRvKSBiZS4KKyAgICAgICAgVGhpcyBsb3BzIGFub3RoZXIgbGFyZ2UgaHVuayBv
ZmYgb2YgcmVvcmRlclJ1bnNGcm9tTGV2ZWxzIGZ1cnRoZXIgcmVkdWNpbmcgdGhlIHNpemUgYW5k
IGNvbXBsZXhpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6OjpyZW9yZGVyUnVuc0Zyb21MZXZlbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6OjpjcmVhdGVCaWRpUnVuc0ZvckxpbmUpOgorCisyMDExLTAzLTI5ICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CiAKICAgICAgICAgU3RhcnQgdG8gY2xlYW4gdXAgQmlkaVJlc29sdmVyOjpjcmVhdGVCaWRpUnVu
c0ZvckxpbmUgc28gdGhhdCBtZXJlIG1vcnRhbHMgY2FuIHVuZGVyc3RhbmQgaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCmluZGV4IDM0MDQ1MjIwMjcwZjVj
MTA4NjcxMWE3NjJkNDFjZTEzMGQxN2ViOGUuLjBmMTI4OGVlMDMyYTQyYTI4ZTg3YmY1NjQ0OWNj
NTUwODdjMTljYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlk
aVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2
ZXIuaApAQCAtMjExLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja0RpcmVjdGlv
bkluTG93ZXJSYWlzZUVtYmVkZGluZ0xldmVsKCk7CiAKICAgICB2b2lkIHVwZGF0ZVN0YXR1c0xh
c3RGcm9tQ3VycmVudERpcmVjdGlvbihXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbik7CisgICAgdm9p
ZCByZW9yZGVyUnVuc0Zyb21MZXZlbHMoKTsKIAogICAgIFZlY3RvcjxXVEY6OlVuaWNvZGU6OkRp
cmVjdGlvbiwgOD4gbV9jdXJyZW50RXhwbGljaXRFbWJlZGRpbmdTZXF1ZW5jZTsKIH07CkBAIC01
NjQsNiArNTY1LDQzIEBAIGlubGluZSB2b2lkIEJpZGlSZXNvbHZlcjxJdGVyYXRvciwgUnVuPjo6
dXBkYXRlU3RhdHVzTGFzdEZyb21DdXJyZW50RGlyZWN0aW9uKFdUCiB9CiAKIHRlbXBsYXRlIDxj
bGFzcyBJdGVyYXRvciwgY2xhc3MgUnVuPgoraW5saW5lIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJh
dG9yLCBSdW4+OjpyZW9yZGVyUnVuc0Zyb21MZXZlbHMoKQoreworICAgIHVuc2lnbmVkIGNoYXIg
bGV2ZWxMb3cgPSAxMjg7CisgICAgdW5zaWduZWQgY2hhciBsZXZlbEhpZ2ggPSAwOworICAgIGZv
ciAoUnVuKiBydW4gPSBmaXJzdFJ1bigpOyBydW47IHJ1biA9IHJ1bi0+bmV4dCgpKSB7CisgICAg
ICAgIGxldmVsSGlnaCA9IHN0ZDo6bWF4KHJ1bi0+bGV2ZWwoKSwgbGV2ZWxIaWdoKTsKKyAgICAg
ICAgbGV2ZWxMb3cgPSBzdGQ6Om1pbihydW4tPmxldmVsKCksIGxldmVsTG93KTsKKyAgICB9CisK
KyAgICAvLyBUaGlzIGltcGxlbWVudHMgcmVvcmRlcmluZyBvZiB0aGUgbGluZSAoTDIgYWNjb3Jk
aW5nIHRvIEJpZGkgc3BlYyk6CisgICAgLy8gaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHI5
LyNMMgorICAgIC8vIEwyLiBGcm9tIHRoZSBoaWdoZXN0IGxldmVsIGZvdW5kIGluIHRoZSB0ZXh0
IHRvIHRoZSBsb3dlc3Qgb2RkIGxldmVsIG9uIGVhY2ggbGluZSwKKyAgICAvLyByZXZlcnNlIGFu
eSBjb250aWd1b3VzIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgYXQgdGhhdCBsZXZl
bCBvciBoaWdoZXIuCisKKyAgICAvLyBSZXZlcnNpbmcgaXMgb25seSBkb25lIHVwIHRvIHRoZSBs
b3dlc3Qgb2RkIGxldmVsLgorICAgIGlmICghKGxldmVsTG93ICUgMikpCisgICAgICAgIGxldmVs
TG93Kys7CisKKyAgICB1bnNpZ25lZCBjb3VudCA9IHJ1bkNvdW50KCkgLSAxOworCisgICAgd2hp
bGUgKGxldmVsSGlnaCA+PSBsZXZlbExvdykgeworICAgICAgICB1bnNpZ25lZCBpID0gMDsKKyAg
ICAgICAgUnVuKiBydW4gPSBmaXJzdFJ1bigpOworICAgICAgICB3aGlsZSAoaSA8IGNvdW50KSB7
CisgICAgICAgICAgICBmb3IgKDtpIDwgY291bnQgJiYgcnVuICYmIHJ1bi0+bGV2ZWwoKSA8IGxl
dmVsSGlnaDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1biA9IHJ1bi0+bmV4dCgpOworICAgICAg
ICAgICAgdW5zaWduZWQgc3RhcnQgPSBpOworICAgICAgICAgICAgZm9yICg7aSA8PSBjb3VudCAm
JiBydW4gJiYgcnVuLT5sZXZlbCgpID49IGxldmVsSGlnaDsgaSsrKQorICAgICAgICAgICAgICAg
IHJ1biA9IHJ1bi0+bmV4dCgpOworICAgICAgICAgICAgdW5zaWduZWQgZW5kID0gaSAtIDE7Cisg
ICAgICAgICAgICByZXZlcnNlUnVucyhzdGFydCwgZW5kKTsKKyAgICAgICAgfQorICAgICAgICBs
ZXZlbEhpZ2gtLTsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xhc3Mg
UnVuPgogdm9pZCBCaWRpUmVzb2x2ZXI8SXRlcmF0b3IsIFJ1bj46OmNyZWF0ZUJpZGlSdW5zRm9y
TGluZShjb25zdCBJdGVyYXRvciYgZW5kLCBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSBvdmVycmlk
ZSwgYm9vbCBoYXJkTGluZUJyZWFrKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNv
ZGU7CkBAIC05NDMsNDQgKzk4MSw3IEBAIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJhdG9yLCBSdW4+
OjpjcmVhdGVCaWRpUnVuc0ZvckxpbmUoY29uc3QgSXRlcmF0b3ImIGVuZCwgVmlzCiAgICAgfQog
CiAgICAgbV9sb2dpY2FsbHlMYXN0UnVuID0gbV9sYXN0UnVuOwotCi0gICAgLy8gcmVvcmRlciBs
aW5lIGFjY29yZGluZyB0byBydW4gc3RydWN0dXJlLi4uCi0gICAgLy8gZmlyc3QgZmluZCBoaWdo
ZXN0IGFuZCBsb3dlc3QgbGV2ZWxzCi0gICAgdW5zaWduZWQgY2hhciBsZXZlbExvdyA9IDEyODsK
LSAgICB1bnNpZ25lZCBjaGFyIGxldmVsSGlnaCA9IDA7Ci0gICAgZm9yIChSdW4qIHIgPSBmaXJz
dFJ1bigpOyByOyByID0gci0+bmV4dCgpKSB7Ci0gICAgICAgIGxldmVsSGlnaCA9IG1heChyLT5t
X2xldmVsLCBsZXZlbEhpZ2gpOwotICAgICAgICBsZXZlbExvdyA9IG1pbihyLT5tX2xldmVsLCBs
ZXZlbExvdyk7Ci0gICAgfQotCi0gICAgLy8gaW1wbGVtZW50cyByZW9yZGVyaW5nIG9mIHRoZSBs
aW5lIChMMiBhY2NvcmRpbmcgdG8gQmlkaSBzcGVjKToKLSAgICAvLyBMMi4gRnJvbSB0aGUgaGln
aGVzdCBsZXZlbCBmb3VuZCBpbiB0aGUgdGV4dCB0byB0aGUgbG93ZXN0IG9kZCBsZXZlbCBvbiBl
YWNoIGxpbmUsCi0gICAgLy8gcmV2ZXJzZSBhbnkgY29udGlndW91cyBzZXF1ZW5jZSBvZiBjaGFy
YWN0ZXJzIHRoYXQgYXJlIGF0IHRoYXQgbGV2ZWwgb3IgaGlnaGVyLgotCi0gICAgLy8gcmV2ZXJz
aW5nIGlzIG9ubHkgZG9uZSB1cCB0byB0aGUgbG93ZXN0IG9kZCBsZXZlbAotICAgIGlmICghKGxl
dmVsTG93ICUgMikpCi0gICAgICAgIGxldmVsTG93Kys7Ci0KLSAgICB1bnNpZ25lZCBjb3VudCA9
IHJ1bkNvdW50KCkgLSAxOwotCi0gICAgd2hpbGUgKGxldmVsSGlnaCA+PSBsZXZlbExvdykgewot
ICAgICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAgICAgUnVuKiBjdXJyUnVuID0gZmlyc3RSdW4o
KTsKLSAgICAgICAgd2hpbGUgKGkgPCBjb3VudCkgewotICAgICAgICAgICAgd2hpbGUgKGkgPCBj
b3VudCAmJiBjdXJyUnVuICYmIGN1cnJSdW4tPm1fbGV2ZWwgPCBsZXZlbEhpZ2gpIHsKLSAgICAg
ICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICAgICAgY3VyclJ1biA9IGN1cnJSdW4tPm5leHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0ID0gaTsKLSAgICAg
ICAgICAgIHdoaWxlIChpIDw9IGNvdW50ICYmIGN1cnJSdW4gJiYgY3VyclJ1bi0+bV9sZXZlbCA+
PSBsZXZlbEhpZ2gpIHsKLSAgICAgICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICAgICAgY3Vy
clJ1biA9IGN1cnJSdW4tPm5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVuc2ln
bmVkIGVuZCA9IGkgLSAxOwotICAgICAgICAgICAgcmV2ZXJzZVJ1bnMoc3RhcnQsIGVuZCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgbGV2ZWxIaWdoLS07Ci0gICAgfQorICAgIHJlb3JkZXJSdW5zRnJv
bUxldmVscygpOwogICAgIGVuZE9mTGluZSA9IEl0ZXJhdG9yKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87460</attachid>
            <date>2011-03-29 21:13:57 -0700</date>
            <delta_ts>2011-03-29 21:15:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-57341-20110330061354.patch</filename>
            <type>text/plain</type>
            <size>4675</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIzODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZWQ0OTQ4MmI3YTBlODM4
NmY3ZjIxOTk2YjMwZTExYTM4YmFmZWEzLi4zODM3NWQ1Yjg1OGJjMDNlZmI0MjRiZWQ2NTkyNDIx
ZTdiMDU5ZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNwbGl0IG1vcmUgbG9naWMgb3V0IGZyb20gY3JlYXRlQmlkaVJ1
bnNGb3JMaW5lIGZvciByZWFkYWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTczNDEKKworICAgICAgICBJIG1hcmtlZCByZW9yZGVyUnVuc0Zy
b21MZXZlbHMgaW5saW5lLCBidXQgaXQgcHJvYmFibHkgZG9lc24ndCBhY3R1YWxseSBuZWVkIHRv
IChvciB3YW50IHRvKSBiZS4KKyAgICAgICAgVGhpcyBsb3BzIGFub3RoZXIgbGFyZ2UgaHVuayBv
ZmYgb2YgcmVvcmRlclJ1bnNGcm9tTGV2ZWxzIGZ1cnRoZXIgcmVkdWNpbmcgdGhlIHNpemUgYW5k
IGNvbXBsZXhpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6OjpyZW9yZGVyUnVuc0Zyb21MZXZlbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6OjpjcmVhdGVCaWRpUnVuc0ZvckxpbmUpOgorCiAyMDExLTAzLTI5ICBEaW1pdHJpIEds
YXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBleHRy
YW5lb3VzIGRlY2xhcmF0aW9uIEkgYWNjaWRlbnRhbGx5IGFkZGVkIGluIHI4MjM3Ni4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oCmluZGV4IGE4ODRiZjdlZjg0
OTIzZDkzYzU2OThlYWMzNjhjYzU1NmE3ZjllMjAuLmI4MWQxOWQ1ZDA4YjgzZWY4ZDdhZDc0NjI3
ODhhM2M1MTAyZmI4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
QmlkaVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVz
b2x2ZXIuaApAQCAtMjExLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja0RpcmVj
dGlvbkluTG93ZXJSYWlzZUVtYmVkZGluZ0xldmVsKCk7CiAKICAgICB2b2lkIHVwZGF0ZVN0YXR1
c0xhc3RGcm9tQ3VycmVudERpcmVjdGlvbihXVEY6OlVuaWNvZGU6OkRpcmVjdGlvbik7CisgICAg
dm9pZCByZW9yZGVyUnVuc0Zyb21MZXZlbHMoKTsKIAogICAgIFZlY3RvcjxXVEY6OlVuaWNvZGU6
OkRpcmVjdGlvbiwgOD4gbV9jdXJyZW50RXhwbGljaXRFbWJlZGRpbmdTZXF1ZW5jZTsKIH07CkBA
IC01NjQsNiArNTY1LDQzIEBAIGlubGluZSB2b2lkIEJpZGlSZXNvbHZlcjxJdGVyYXRvciwgUnVu
Pjo6dXBkYXRlU3RhdHVzTGFzdEZyb21DdXJyZW50RGlyZWN0aW9uKFdUCiB9CiAKIHRlbXBsYXRl
IDxjbGFzcyBJdGVyYXRvciwgY2xhc3MgUnVuPgoraW5saW5lIHZvaWQgQmlkaVJlc29sdmVyPEl0
ZXJhdG9yLCBSdW4+OjpyZW9yZGVyUnVuc0Zyb21MZXZlbHMoKQoreworICAgIHVuc2lnbmVkIGNo
YXIgbGV2ZWxMb3cgPSAxMjg7CisgICAgdW5zaWduZWQgY2hhciBsZXZlbEhpZ2ggPSAwOworICAg
IGZvciAoUnVuKiBydW4gPSBmaXJzdFJ1bigpOyBydW47IHJ1biA9IHJ1bi0+bmV4dCgpKSB7Cisg
ICAgICAgIGxldmVsSGlnaCA9IHN0ZDo6bWF4KHJ1bi0+bGV2ZWwoKSwgbGV2ZWxIaWdoKTsKKyAg
ICAgICAgbGV2ZWxMb3cgPSBzdGQ6Om1pbihydW4tPmxldmVsKCksIGxldmVsTG93KTsKKyAgICB9
CisKKyAgICAvLyBUaGlzIGltcGxlbWVudHMgcmVvcmRlcmluZyBvZiB0aGUgbGluZSAoTDIgYWNj
b3JkaW5nIHRvIEJpZGkgc3BlYyk6CisgICAgLy8gaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMv
dHI5LyNMMgorICAgIC8vIEwyLiBGcm9tIHRoZSBoaWdoZXN0IGxldmVsIGZvdW5kIGluIHRoZSB0
ZXh0IHRvIHRoZSBsb3dlc3Qgb2RkIGxldmVsIG9uIGVhY2ggbGluZSwKKyAgICAvLyByZXZlcnNl
IGFueSBjb250aWd1b3VzIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgYXQgdGhhdCBs
ZXZlbCBvciBoaWdoZXIuCisKKyAgICAvLyBSZXZlcnNpbmcgaXMgb25seSBkb25lIHVwIHRvIHRo
ZSBsb3dlc3Qgb2RkIGxldmVsLgorICAgIGlmICghKGxldmVsTG93ICUgMikpCisgICAgICAgIGxl
dmVsTG93Kys7CisKKyAgICB1bnNpZ25lZCBjb3VudCA9IHJ1bkNvdW50KCkgLSAxOworCisgICAg
d2hpbGUgKGxldmVsSGlnaCA+PSBsZXZlbExvdykgeworICAgICAgICB1bnNpZ25lZCBpID0gMDsK
KyAgICAgICAgUnVuKiBydW4gPSBmaXJzdFJ1bigpOworICAgICAgICB3aGlsZSAoaSA8IGNvdW50
KSB7CisgICAgICAgICAgICBmb3IgKDtpIDwgY291bnQgJiYgcnVuICYmIHJ1bi0+bGV2ZWwoKSA8
IGxldmVsSGlnaDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1biA9IHJ1bi0+bmV4dCgpOworICAg
ICAgICAgICAgdW5zaWduZWQgc3RhcnQgPSBpOworICAgICAgICAgICAgZm9yICg7aSA8PSBjb3Vu
dCAmJiBydW4gJiYgcnVuLT5sZXZlbCgpID49IGxldmVsSGlnaDsgaSsrKQorICAgICAgICAgICAg
ICAgIHJ1biA9IHJ1bi0+bmV4dCgpOworICAgICAgICAgICAgdW5zaWduZWQgZW5kID0gaSAtIDE7
CisgICAgICAgICAgICByZXZlcnNlUnVucyhzdGFydCwgZW5kKTsKKyAgICAgICAgfQorICAgICAg
ICBsZXZlbEhpZ2gtLTsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBJdGVyYXRvciwgY2xh
c3MgUnVuPgogdm9pZCBCaWRpUmVzb2x2ZXI8SXRlcmF0b3IsIFJ1bj46OmNyZWF0ZUJpZGlSdW5z
Rm9yTGluZShjb25zdCBJdGVyYXRvciYgZW5kLCBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSBvdmVy
cmlkZSwgYm9vbCBoYXJkTGluZUJyZWFrKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVu
aWNvZGU7CkBAIC05NDMsNDQgKzk4MSw3IEBAIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJhdG9yLCBS
dW4+OjpjcmVhdGVCaWRpUnVuc0ZvckxpbmUoY29uc3QgSXRlcmF0b3ImIGVuZCwgVmlzCiAgICAg
fQogCiAgICAgbV9sb2dpY2FsbHlMYXN0UnVuID0gbV9sYXN0UnVuOwotCi0gICAgLy8gcmVvcmRl
ciBsaW5lIGFjY29yZGluZyB0byBydW4gc3RydWN0dXJlLi4uCi0gICAgLy8gZmlyc3QgZmluZCBo
aWdoZXN0IGFuZCBsb3dlc3QgbGV2ZWxzCi0gICAgdW5zaWduZWQgY2hhciBsZXZlbExvdyA9IDEy
ODsKLSAgICB1bnNpZ25lZCBjaGFyIGxldmVsSGlnaCA9IDA7Ci0gICAgZm9yIChSdW4qIHIgPSBm
aXJzdFJ1bigpOyByOyByID0gci0+bmV4dCgpKSB7Ci0gICAgICAgIGxldmVsSGlnaCA9IHN0ZDo6
bWF4KHItPm1fbGV2ZWwsIGxldmVsSGlnaCk7Ci0gICAgICAgIGxldmVsTG93ID0gc3RkOjptaW4o
ci0+bV9sZXZlbCwgbGV2ZWxMb3cpOwotICAgIH0KLQotICAgIC8vIGltcGxlbWVudHMgcmVvcmRl
cmluZyBvZiB0aGUgbGluZSAoTDIgYWNjb3JkaW5nIHRvIEJpZGkgc3BlYyk6Ci0gICAgLy8gTDIu
IEZyb20gdGhlIGhpZ2hlc3QgbGV2ZWwgZm91bmQgaW4gdGhlIHRleHQgdG8gdGhlIGxvd2VzdCBv
ZGQgbGV2ZWwgb24gZWFjaCBsaW5lLAotICAgIC8vIHJldmVyc2UgYW55IGNvbnRpZ3VvdXMgc2Vx
dWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBhdCB0aGF0IGxldmVsIG9yIGhpZ2hlci4KLQot
ICAgIC8vIHJldmVyc2luZyBpcyBvbmx5IGRvbmUgdXAgdG8gdGhlIGxvd2VzdCBvZGQgbGV2ZWwK
LSAgICBpZiAoIShsZXZlbExvdyAlIDIpKQotICAgICAgICBsZXZlbExvdysrOwotCi0gICAgdW5z
aWduZWQgY291bnQgPSBydW5Db3VudCgpIC0gMTsKLQotICAgIHdoaWxlIChsZXZlbEhpZ2ggPj0g
bGV2ZWxMb3cpIHsKLSAgICAgICAgdW5zaWduZWQgaSA9IDA7Ci0gICAgICAgIFJ1biogY3VyclJ1
biA9IGZpcnN0UnVuKCk7Ci0gICAgICAgIHdoaWxlIChpIDwgY291bnQpIHsKLSAgICAgICAgICAg
IHdoaWxlIChpIDwgY291bnQgJiYgY3VyclJ1biAmJiBjdXJyUnVuLT5tX2xldmVsIDwgbGV2ZWxI
aWdoKSB7Ci0gICAgICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAgICAgIGN1cnJSdW4gPSBj
dXJyUnVuLT5uZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bnNpZ25lZCBzdGFy
dCA9IGk7Ci0gICAgICAgICAgICB3aGlsZSAoaSA8PSBjb3VudCAmJiBjdXJyUnVuICYmIGN1cnJS
dW4tPm1fbGV2ZWwgPj0gbGV2ZWxIaWdoKSB7Ci0gICAgICAgICAgICAgICAgaSsrOwotICAgICAg
ICAgICAgICAgIGN1cnJSdW4gPSBjdXJyUnVuLT5uZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB1bnNpZ25lZCBlbmQgPSBpIC0gMTsKLSAgICAgICAgICAgIHJldmVyc2VSdW5zKHN0
YXJ0LCBlbmQpOwotICAgICAgICB9Ci0gICAgICAgIGxldmVsSGlnaC0tOwotICAgIH0KKyAgICBy
ZW9yZGVyUnVuc0Zyb21MZXZlbHMoKTsKICAgICBlbmRPZkxpbmUgPSBJdGVyYXRvcigpOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87461</attachid>
            <date>2011-03-29 21:15:12 -0700</date>
            <delta_ts>2011-03-29 21:55:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-57341-20110330061509.patch</filename>
            <type>text/plain</type>
            <size>4673</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIzODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZWQ0OTQ4MmI3YTBlODM4
NmY3ZjIxOTk2YjMwZTExYTM4YmFmZWEzLi44NWM2NzEyYzhkYmIxOTU3MTYzNWEyMGExMGZhZTVl
ZjBmMjU1YWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2Ug
Tml3YS4KKworICAgICAgICBTcGxpdCBtb3JlIGxvZ2ljIG91dCBmcm9tIGNyZWF0ZUJpZGlSdW5z
Rm9yTGluZSBmb3IgcmVhZGFiaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU3MzQxCisKKyAgICAgICAgSSBtYXJrZWQgcmVvcmRlclJ1bnNGcm9t
TGV2ZWxzIGlubGluZSwgYnV0IGl0IHByb2JhYmx5IGRvZXNuJ3QgYWN0dWFsbHkgbmVlZCB0byAo
b3Igd2FudCB0bykgYmUuCisgICAgICAgIFRoaXMgbG9wcyBhbm90aGVyIGxhcmdlIGh1bmsgb2Zm
IG9mIHJlb3JkZXJSdW5zRnJvbUxldmVscyBmdXJ0aGVyIHJlZHVjaW5nIHRoZSBzaXplIGFuZCBj
b21wbGV4aXR5LgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ojo6cmVvcmRlclJ1bnNGcm9tTGV2ZWxzKToKKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y3JlYXRlQmlkaVJ1bnNGb3JMaW5lKToKKwogMjAxMS0wMy0yOSAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgZXh0cmFu
ZW91cyBkZWNsYXJhdGlvbiBJIGFjY2lkZW50YWxseSBhZGRlZCBpbiByODIzNzYuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaAppbmRleCBhODg0YmY3ZWY4NDky
M2Q5M2M1Njk4ZWFjMzY4Y2M1NTZhN2Y5ZTIwLi5iODFkMTlkNWQwOGI4M2VmOGQ3YWQ3NDYyNzg4
YTNjNTEwMmZiOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0Jp
ZGlSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaVJlc29s
dmVyLmgKQEAgLTIxMSw2ICsyMTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tEaXJlY3Rp
b25Jbkxvd2VyUmFpc2VFbWJlZGRpbmdMZXZlbCgpOwogCiAgICAgdm9pZCB1cGRhdGVTdGF0dXNM
YXN0RnJvbUN1cnJlbnREaXJlY3Rpb24oV1RGOjpVbmljb2RlOjpEaXJlY3Rpb24pOworICAgIHZv
aWQgcmVvcmRlclJ1bnNGcm9tTGV2ZWxzKCk7CiAKICAgICBWZWN0b3I8V1RGOjpVbmljb2RlOjpE
aXJlY3Rpb24sIDg+IG1fY3VycmVudEV4cGxpY2l0RW1iZWRkaW5nU2VxdWVuY2U7CiB9OwpAQCAt
NTY0LDYgKzU2NSw0MyBAQCBpbmxpbmUgdm9pZCBCaWRpUmVzb2x2ZXI8SXRlcmF0b3IsIFJ1bj46
OnVwZGF0ZVN0YXR1c0xhc3RGcm9tQ3VycmVudERpcmVjdGlvbihXVAogfQogCiB0ZW1wbGF0ZSA8
Y2xhc3MgSXRlcmF0b3IsIGNsYXNzIFJ1bj4KK2lubGluZSB2b2lkIEJpZGlSZXNvbHZlcjxJdGVy
YXRvciwgUnVuPjo6cmVvcmRlclJ1bnNGcm9tTGV2ZWxzKCkKK3sKKyAgICB1bnNpZ25lZCBjaGFy
IGxldmVsTG93ID0gMTI4OworICAgIHVuc2lnbmVkIGNoYXIgbGV2ZWxIaWdoID0gMDsKKyAgICBm
b3IgKFJ1biogcnVuID0gZmlyc3RSdW4oKTsgcnVuOyBydW4gPSBydW4tPm5leHQoKSkgeworICAg
ICAgICBsZXZlbEhpZ2ggPSBzdGQ6Om1heChydW4tPmxldmVsKCksIGxldmVsSGlnaCk7CisgICAg
ICAgIGxldmVsTG93ID0gc3RkOjptaW4ocnVuLT5sZXZlbCgpLCBsZXZlbExvdyk7CisgICAgfQor
CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIHJlb3JkZXJpbmcgb2YgdGhlIGxpbmUgKEwyIGFjY29y
ZGluZyB0byBCaWRpIHNwZWMpOgorICAgIC8vIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3Ry
OS8jTDIKKyAgICAvLyBMMi4gRnJvbSB0aGUgaGlnaGVzdCBsZXZlbCBmb3VuZCBpbiB0aGUgdGV4
dCB0byB0aGUgbG93ZXN0IG9kZCBsZXZlbCBvbiBlYWNoIGxpbmUsCisgICAgLy8gcmV2ZXJzZSBh
bnkgY29udGlndW91cyBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGF0IHRoYXQgbGV2
ZWwgb3IgaGlnaGVyLgorCisgICAgLy8gUmV2ZXJzaW5nIGlzIG9ubHkgZG9uZSB1cCB0byB0aGUg
bG93ZXN0IG9kZCBsZXZlbC4KKyAgICBpZiAoIShsZXZlbExvdyAlIDIpKQorICAgICAgICBsZXZl
bExvdysrOworCisgICAgdW5zaWduZWQgY291bnQgPSBydW5Db3VudCgpIC0gMTsKKworICAgIHdo
aWxlIChsZXZlbEhpZ2ggPj0gbGV2ZWxMb3cpIHsKKyAgICAgICAgdW5zaWduZWQgaSA9IDA7Cisg
ICAgICAgIFJ1biogcnVuID0gZmlyc3RSdW4oKTsKKyAgICAgICAgd2hpbGUgKGkgPCBjb3VudCkg
eworICAgICAgICAgICAgZm9yICg7aSA8IGNvdW50ICYmIHJ1biAmJiBydW4tPmxldmVsKCkgPCBs
ZXZlbEhpZ2g7IGkrKykKKyAgICAgICAgICAgICAgICBydW4gPSBydW4tPm5leHQoKTsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIGZvciAoO2kgPD0gY291bnQg
JiYgcnVuICYmIHJ1bi0+bGV2ZWwoKSA+PSBsZXZlbEhpZ2g7IGkrKykKKyAgICAgICAgICAgICAg
ICBydW4gPSBydW4tPm5leHQoKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGVuZCA9IGkgLSAxOwor
ICAgICAgICAgICAgcmV2ZXJzZVJ1bnMoc3RhcnQsIGVuZCk7CisgICAgICAgIH0KKyAgICAgICAg
bGV2ZWxIaWdoLS07CisgICAgfQorfQorCit0ZW1wbGF0ZSA8Y2xhc3MgSXRlcmF0b3IsIGNsYXNz
IFJ1bj4KIHZvaWQgQmlkaVJlc29sdmVyPEl0ZXJhdG9yLCBSdW4+OjpjcmVhdGVCaWRpUnVuc0Zv
ckxpbmUoY29uc3QgSXRlcmF0b3ImIGVuZCwgVmlzdWFsRGlyZWN0aW9uT3ZlcnJpZGUgb3ZlcnJp
ZGUsIGJvb2wgaGFyZExpbmVCcmVhaykKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmlj
b2RlOwpAQCAtOTQzLDQ0ICs5ODEsNyBAQCB2b2lkIEJpZGlSZXNvbHZlcjxJdGVyYXRvciwgUnVu
Pjo6Y3JlYXRlQmlkaVJ1bnNGb3JMaW5lKGNvbnN0IEl0ZXJhdG9yJiBlbmQsIFZpcwogICAgIH0K
IAogICAgIG1fbG9naWNhbGx5TGFzdFJ1biA9IG1fbGFzdFJ1bjsKLQotICAgIC8vIHJlb3JkZXIg
bGluZSBhY2NvcmRpbmcgdG8gcnVuIHN0cnVjdHVyZS4uLgotICAgIC8vIGZpcnN0IGZpbmQgaGln
aGVzdCBhbmQgbG93ZXN0IGxldmVscwotICAgIHVuc2lnbmVkIGNoYXIgbGV2ZWxMb3cgPSAxMjg7
Ci0gICAgdW5zaWduZWQgY2hhciBsZXZlbEhpZ2ggPSAwOwotICAgIGZvciAoUnVuKiByID0gZmly
c3RSdW4oKTsgcjsgciA9IHItPm5leHQoKSkgewotICAgICAgICBsZXZlbEhpZ2ggPSBzdGQ6Om1h
eChyLT5tX2xldmVsLCBsZXZlbEhpZ2gpOwotICAgICAgICBsZXZlbExvdyA9IHN0ZDo6bWluKHIt
Pm1fbGV2ZWwsIGxldmVsTG93KTsKLSAgICB9Ci0KLSAgICAvLyBpbXBsZW1lbnRzIHJlb3JkZXJp
bmcgb2YgdGhlIGxpbmUgKEwyIGFjY29yZGluZyB0byBCaWRpIHNwZWMpOgotICAgIC8vIEwyLiBG
cm9tIHRoZSBoaWdoZXN0IGxldmVsIGZvdW5kIGluIHRoZSB0ZXh0IHRvIHRoZSBsb3dlc3Qgb2Rk
IGxldmVsIG9uIGVhY2ggbGluZSwKLSAgICAvLyByZXZlcnNlIGFueSBjb250aWd1b3VzIHNlcXVl
bmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgYXQgdGhhdCBsZXZlbCBvciBoaWdoZXIuCi0KLSAg
ICAvLyByZXZlcnNpbmcgaXMgb25seSBkb25lIHVwIHRvIHRoZSBsb3dlc3Qgb2RkIGxldmVsCi0g
ICAgaWYgKCEobGV2ZWxMb3cgJSAyKSkKLSAgICAgICAgbGV2ZWxMb3crKzsKLQotICAgIHVuc2ln
bmVkIGNvdW50ID0gcnVuQ291bnQoKSAtIDE7Ci0KLSAgICB3aGlsZSAobGV2ZWxIaWdoID49IGxl
dmVsTG93KSB7Ci0gICAgICAgIHVuc2lnbmVkIGkgPSAwOwotICAgICAgICBSdW4qIGN1cnJSdW4g
PSBmaXJzdFJ1bigpOwotICAgICAgICB3aGlsZSAoaSA8IGNvdW50KSB7Ci0gICAgICAgICAgICB3
aGlsZSAoaSA8IGNvdW50ICYmIGN1cnJSdW4gJiYgY3VyclJ1bi0+bV9sZXZlbCA8IGxldmVsSGln
aCkgewotICAgICAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAgICAgICBjdXJyUnVuID0gY3Vy
clJ1bi0+bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdW5zaWduZWQgc3RhcnQg
PSBpOwotICAgICAgICAgICAgd2hpbGUgKGkgPD0gY291bnQgJiYgY3VyclJ1biAmJiBjdXJyUnVu
LT5tX2xldmVsID49IGxldmVsSGlnaCkgewotICAgICAgICAgICAgICAgIGkrKzsKLSAgICAgICAg
ICAgICAgICBjdXJyUnVuID0gY3VyclJ1bi0+bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdW5zaWduZWQgZW5kID0gaSAtIDE7Ci0gICAgICAgICAgICByZXZlcnNlUnVucyhzdGFy
dCwgZW5kKTsKLSAgICAgICAgfQotICAgICAgICBsZXZlbEhpZ2gtLTsKLSAgICB9CisgICAgcmVv
cmRlclJ1bnNGcm9tTGV2ZWxzKCk7CiAgICAgZW5kT2ZMaW5lID0gSXRlcmF0b3IoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>