<?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>74558</bug_id>
          
          <creation_ts>2011-12-14 16:32:33 -0800</creation_ts>
          <short_desc>[chromium] DatabaseObserver needs threadsafe fixes and other clean-up.</short_desc>
          <delta_ts>2011-12-21 00:05:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>67942</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>darin</cc>
    
    <cc>dimich</cc>
    
    <cc>dslomov</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>521443</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-14 16:32:33 -0800</bug_when>
    <thetext>See summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521448</commentid>
    <comment_count>1</comment_count>
      <attachid>119324</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-14 16:36:43 -0800</bug_when>
    <thetext>Created attachment 119324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521561</commentid>
    <comment_count>2</comment_count>
      <attachid>119324</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-12-14 18:27:14 -0800</bug_when>
    <thetext>Comment on attachment 119324
Patch

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

&gt; Source/WebKit/chromium/src/DatabaseObserver.cpp:90
&gt; +        m_workerLoaderProxy-&gt;postTaskForModeToWorkerContext(

do we follow this style in WebKit or should it be in one long line?

&gt; LayoutTests/http/tests/workers/interrupt-database-sync-open-crash.html:8
&gt; +var workers = new Array(30);

why 30 workers and 10 iterations? Would be nice to add a comment on the number selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521586</commentid>
    <comment_count>3</comment_count>
      <attachid>119360</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-14 19:41:49 -0800</bug_when>
    <thetext>Created attachment 119360
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521588</commentid>
    <comment_count>4</comment_count>
      <attachid>119361</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-14 19:42:46 -0800</bug_when>
    <thetext>Created attachment 119361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521681</commentid>
    <comment_count>5</comment_count>
      <attachid>119361</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 22:51:37 -0800</bug_when>
    <thetext>Comment on attachment 119361
Patch for landing

Clearing flags on attachment: 119361

Committed r102894: &lt;http://trac.webkit.org/changeset/102894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521682</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-14 22:51:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523721</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-18 22:18:22 -0800</bug_when>
    <thetext>The test you landed with this patch is failing on Mac builds because there is no expected result. But when I put in an expected result, I get different results on different runs. It seems the output is nondeterministic. How is this supposed to work with the test machinery?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523756</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-18 23:11:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; The test you landed with this patch is failing on Mac builds because there is no expected result.
Yeah, I realized that after I landed it and then started to modify it.

But I didn&apos;t realize it was causing a failure.

&gt; But when I put in an expected result, I get different results on different runs. It seems the output is nondeterministic. How is this supposed to work with the test machinery?

I see. It is the exception. I should put in a handler for exceptions (since it isn&apos;t important) and causes the indeterminate output when it is unhandled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523757</commentid>
    <comment_count>9</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-18 23:12:48 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; The test you landed with this patch is failing on Mac builds because there is no expected result.
&gt; Yeah, I realized that after I landed it and then started to modify it.
&gt; 
&gt; But I didn&apos;t realize it was causing a failure.
&gt; 
&gt; &gt; But when I put in an expected result, I get different results on different runs. It seems the output is nondeterministic. How is this supposed to work with the test machinery?
&gt; 
&gt; I see. It is the exception. I should put in a handler for exceptions (since it isn&apos;t important) and causes the indeterminate output when it is unhandled.

btw, I&apos;m off tomorrow but I&apos;m around on Tuesday. I&apos;ll see if I can fix this tomorrow night or on Tuesday.

If you want a fix before then, feel free to roll out my fix and I&apos;ll land it all again with a result that is determinate. Sorry I can&apos;t handler it sooner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525140</commentid>
    <comment_count>10</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-21 00:05:44 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; The test you landed with this patch is failing on Mac builds because there is no expected result. But when I put in an expected result, I get different results on different runs. It seems the output is nondeterministic. How is this supposed to work with the test machinery?

Skipped the test for now as I didn&apos;t figure out a quick fix (r103394).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119324</attachid>
            <date>2011-12-14 16:36:43 -0800</date>
            <delta_ts>2011-12-14 19:41:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74558-20111214163642.patch</filename>
            <type>text/plain</type>
            <size>9959</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU3NTBjNjg4MTkzZDg1YWM1ZWRiMzkxMzhiYTU3ZDk3YWIyYjI4YWEuLjA4NTdkYjJlYjgxMzhl
ZDMxYjNjZjUxNmEwM2U5NjZlZmFlNDBlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTEtMTItMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRGF0YWJhc2VPYnNlcnZlciBuZWVkcyB0aHJlYWRz
YWZlIGZpeGVzIGFuZCBvdGhlciBjbGVhbi11cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWlub3IgY2xlYW4gdXAgdGhyb3VnaG91dDogUmVtb3ZlZCB1
bm5lY2Vzc2FyeSBXVEYgcHJlZml4IGluIG1hbnkKKyAgICAgICAgb2YgdGhlc2UgcGxhY2VzIGFu
ZCB1bm5lY2Vzc2FyeSBTdHJpbmcoKS4KKworICAgICAgICAqIHNyYy9EYXRhYmFzZU9ic2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlOjpz
aWduYWxDb21wbGV0ZWQpOiBHZXQgcmlkIG9mCisgICAgICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nl
c3Mgc28gdGhhdCAidGhpcyIgZ2V0IHJlZiBjb3VudGVkIGFuZCByZW1vdmUgbW9kZSBmcm9tIGJl
aW5nCisgICAgICAgIGEgbWVtYmVyIHZhcmlhYmxlIHNpbmNlIGEgU3RyaW5nIGluIGEgVGhyZWFk
U2FmZVJlZkNvdW50ZWQgY2xhc3MgaXMgYmFkLgorICAgICAgICAoV2ViS2l0OjpBbGxvd0RhdGFi
YXNlTWFpblRocmVhZEJyaWRnZTo6QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U6OmFsbG93
RGF0YWJhc2VUYXNrKTogUGFzcyB0aHJvdWdoIG1vZGUKKyAgICAgICAgYW5kIG1pbm9yIGNvZGUg
Y2xlYW5pbmcgdG8gZG8gb25seSBvbmUgY2FsbCB0byBzaWduYWxDb21wbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OmFsbG93RGF0YWJhc2VGb3JXb3JrZXIpOiBKdXN0IHJlbW92ZWQgdW5uZWNjZXNz
YXJ5IFN0cmluZygpLgorCiAyMDExLTEyLTA5ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIGNocm9taXVtOiB2aXN1YWwgc3R1ZGlvIHByb2plY3RzIGFyZSBi
dXN0ZWQgd2hlbiBidWlsZF93ZWJraXRfZXhlc19mcm9tX3dlYmtpdF9neXA9PTAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGFiYXNlT2JzZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAKaW5kZXggZTVmOTkw
OTA2ODQ3ZTgyYmY0ZmJmMDA3MzM4ZDgwNzg1Zjc5YzU2MS4uMGRmZjJmYjRlZTJmNTFkZGZiYjZi
MTAzYzQ4MjVmMTdhNjBjZGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRGF0YWJhc2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RGF0YWJhc2VPYnNlcnZlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIg
YWxsb3dEYXRhYmFzZU1vZGVbXSA9ICJhbGxvd0RhdGFiYXNlTW9kZSI7CiAvLyBjYWxsIGJhY2sg
dG8gdGhlIHdvcmtlciBjb250ZXh0LgogY2xhc3MgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlk
Z2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRC
cmlkZ2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbGxvd0RhdGFiYXNlTWFp
blRocmVhZEJyaWRnZT4gY3JlYXRlKFdlYkNvcmU6OldvcmtlckxvYWRlclByb3h5KiB3b3JrZXJM
b2FkZXJQcm94eSwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUsIE5ld1dlYkNvbW1vbldvcmtlckNs
aWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBu
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1h
dGVkU2l6ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJy
aWRnZT4gY3JlYXRlKFdlYkNvcmU6OldvcmtlckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94
eSwgY29uc3QgU3RyaW5nJiBtb2RlLCBOZXdXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNs
aWVudCwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2Uod29ya2Vy
TG9hZGVyUHJveHksIG1vZGUsIGNvbW1vbkNsaWVudCwgZnJhbWUsIG5hbWUsIGRpc3BsYXlOYW1l
LCBlc3RpbWF0ZWRTaXplKSk7CiAgICAgfQpAQCAtODIsMzMgKzgyLDMxIEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBtYWluIHRocmVhZC4K
LSAgICB2b2lkIHNpZ25hbENvbXBsZXRlZChib29sIHJlc3VsdCkKKyAgICB2b2lkIHNpZ25hbENv
bXBsZXRlZChjb25zdCBTdHJpbmcmIG1vZGUsIGJvb2wgcmVzdWx0KQogICAgIHsKICAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgICAgICBpZiAobV93b3JrZXJMb2FkZXJQ
cm94eSkKLSAgICAgICAgICAgIG1fd29ya2VyTG9hZGVyUHJveHktPnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyQ29udGV4dCgKLSAgICAgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmRpZENv
bXBsZXRlLCBXZWJDb3JlOjpBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpLCByZXN1bHQpLCAK
LSAgICAgICAgICAgICAgICBtX21vZGUpOworICAgICAgICBpZiAoIW1fd29ya2VyTG9hZGVyUHJv
eHkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fd29ya2VyTG9hZGVyUHJveHktPnBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dCgKKyAgICAgICAgICAgIGNyZWF0ZUNhbGxiYWNr
VGFzaygmZGlkQ29tcGxldGUsIHRoaXMsIHJlc3VsdCksCisgICAgICAgICAgICBtb2RlKTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UoV2ViQ29y
ZTo6V29ya2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5LCBjb25zdCBXVEY6OlN0cmlu
ZyYgbW9kZSwgTmV3V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNw
bGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQorICAgIEFsbG93RGF0YWJhc2VN
YWluVGhyZWFkQnJpZGdlKFdlYkNvcmU6OldvcmtlckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQ
cm94eSwgY29uc3QgU3RyaW5nJiBtb2RlLCBOZXdXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1v
bkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKICAgICAgICAgOiBt
X3dvcmtlckxvYWRlclByb3h5KHdvcmtlckxvYWRlclByb3h5KQotICAgICAgICAsIG1fbW9kZSht
b2RlKQogICAgIHsKICAgICAgICAgV2ViV29ya2VyQmFzZTo6ZGlzcGF0Y2hUYXNrVG9NYWluVGhy
ZWFkKAotICAgICAgICAgICAgY3JlYXRlQ2FsbGJhY2tUYXNrKCZhbGxvd0RhdGFiYXNlVGFzaywg
V2ViQ29yZTo6QWxsb3dDcm9zc1RocmVhZEFjY2Vzcyhjb21tb25DbGllbnQpLAorICAgICAgICAg
ICAgY3JlYXRlQ2FsbGJhY2tUYXNrKCZhbGxvd0RhdGFiYXNlVGFzaywgbW9kZSwgV2ViQ29yZTo6
QWxsb3dDcm9zc1RocmVhZEFjY2Vzcyhjb21tb25DbGllbnQpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkNvcmU6OkFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoZnJhbWUpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhuYW1lKSwgU3RyaW5nKGRpc3BsYXlO
YW1lKSwgZXN0aW1hdGVkU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJD
b3JlOjpBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcykpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGFs
bG93RGF0YWJhc2VUYXNrKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IE5ld1dlYkNvbW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUs
IGNvbnN0IFdURjo6U3RyaW5nIG5hbWUsIGNvbnN0IFdURjo6U3RyaW5nIGRpc3BsYXlOYW1lLCB1
bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5U
aHJlYWRCcmlkZ2U+IGJyaWRnZSkKKyAgICBzdGF0aWMgdm9pZCBhbGxvd0RhdGFiYXNlVGFzayhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcgbW9k
ZSwgTmV3V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nIG5hbWUsIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZSwgdW5zaWduZWQg
bG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJp
ZGdlPiBicmlkZ2UpCiAgICAgewotICAgICAgICBpZiAoY29tbW9uQ2xpZW50KQotICAgICAgICAg
ICAgYnJpZGdlLT5zaWduYWxDb21wbGV0ZWQoY29tbW9uQ2xpZW50LT5hbGxvd0RhdGFiYXNlKGZy
YW1lLCBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBicmlkZ2UtPnNpZ25hbENvbXBsZXRlZChmYWxzZSk7CisgICAgICAgIGJvb2wg
YWxsb3dEYXRhYmFzZSA9IGNvbW1vbkNsaWVudCA/IGNvbW1vbkNsaWVudC0+YWxsb3dEYXRhYmFz
ZShmcmFtZSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpIDogZmFsc2U7CisgICAg
ICAgIGJyaWRnZS0+c2lnbmFsQ29tcGxldGVkKG1vZGUsIGFsbG93RGF0YWJhc2UpOwogICAgIH0K
IAogICAgIHN0YXRpYyB2b2lkIGRpZENvbXBsZXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+
IGJyaWRnZSwgYm9vbCByZXN1bHQpCkBAIC0xMTksNyArMTE3LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcmVzdWx0OwogICAgIE11dGV4IG1fbXV0ZXg7CiAgICAgV2ViQ29yZTo6V29ya2VyTG9h
ZGVyUHJveHkqIG1fd29ya2VyTG9hZGVyUHJveHk7Ci0gICAgV1RGOjpTdHJpbmcgbV9tb2RlOwog
fTsKIAogYm9vbCBhbGxvd0RhdGFiYXNlRm9yV29ya2VyKE5ld1dlYkNvbW1vbldvcmtlckNsaWVu
dCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXpl
KQpAQCAtMTM0LDcgKzEzMSw3IEBAIGJvb2wgYWxsb3dEYXRhYmFzZUZvcldvcmtlcihOZXdXZWJD
b21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyCiAgICAgU3RyaW5n
IG1vZGUgPSBhbGxvd0RhdGFiYXNlTW9kZTsKICAgICBtb2RlLmFwcGVuZChTdHJpbmc6Om51bWJl
cihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpKTsKIAotICAgIFJlZlB0cjxBbGxvd0RhdGFiYXNl
TWFpblRocmVhZEJyaWRnZT4gYnJpZGdlID0gQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U6
OmNyZWF0ZSh3b3JrZXJMb2FkZXJQcm94eSwgbW9kZSwgY29tbW9uQ2xpZW50LCBmcmFtZSwgU3Ry
aW5nKG5hbWUpLCBTdHJpbmcoZGlzcGxheU5hbWUpLCBlc3RpbWF0ZWRTaXplKTsKKyAgICBSZWZQ
dHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IGJyaWRnZSA9IEFsbG93RGF0YWJhc2VN
YWluVGhyZWFkQnJpZGdlOjpjcmVhdGUod29ya2VyTG9hZGVyUHJveHksIG1vZGUsIGNvbW1vbkNs
aWVudCwgZnJhbWUsIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKIAogICAgIC8v
IEVpdGhlciB0aGUgYnJpZGdlIHJldHVybnMsIG9yIHRoZSBxdWV1ZSBnZXRzIHRlcm1pbmF0ZWQu
CiAgICAgaWYgKHJ1bkxvb3AucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQsIG1vZGUpID09IE1lc3Nh
Z2VRdWV1ZVRlcm1pbmF0ZWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZjdlNGZmYjgwNjAzYjliNTVjYjc4OGUzNTZh
NGU1Y2FkMDJkMTRlLi5kZmY1NjllOTg2YzBiMzgzMDg0MzAzNzNlY2MxZmZiMzM5YmQ1MGI3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTItMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRGF0YWJhc2VPYnNlcnZlciBuZWVkcyB0
aHJlYWRzYWZlIGZpeGVzIGFuZCBvdGhlciBjbGVhbi11cC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHdoaWNoIHdvdWxkIGZhaWwg
d2l0aG91dCBzb21lIG9mIHRoZXNlIGZpeGVzLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL2ludGVycnVwdC1kYXRhYmFzZS1zeW5jLW9wZW4tY3Jhc2guaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNlcy9vcGVuLWRhdGFiYXNlLXN5bmMuanM6
IEFkZGVkLgorICAgICAgICAob25tZXNzYWdlKToKKwogMjAxMS0xMi0wOSAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIEFkZCB0
ZXN0IGZvciBkZWxpdmVyLWF0LWVuZC1vZi10YXNrIHNlbWFudGljcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL2ludGVycnVwdC1kYXRhYmFzZS1zeW5jLW9wZW4t
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9pbnRlcnJ1cHQtZGF0
YWJhc2Utc3luYy1vcGVuLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg4ZGQ3M2U0NmU2NDM0YmVl
ZDYwNGRmNzE4YTJlYzA1YzU1MTNhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9pbnRlcnJ1cHQtZGF0YWJhc2Utc3luYy1vcGVuLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSw3MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSdyZXNvdXJjZXMv
d29ya2VyLXV0aWwuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciByZW1haW5pbmdJdGVyYXRp
b25zID0gMTA7Cit2YXIgd29ya2Vyc1N0YXJ0ZWQ7Cit2YXIgd29ya2Vyc0Nsb3NlZDsKK3ZhciB3
b3JrZXJzID0gbmV3IEFycmF5KDMwKTsKKworZnVuY3Rpb24gbmV4dEl0ZXJhdGlvbigpCit7Cisg
ICAgbG9nKCdSZW1haW5pbmcgaXRlcmF0aW9uczogJyArICByZW1haW5pbmdJdGVyYXRpb25zKTsK
KyAgICB3YWl0VW50aWxXb3JrZXJUaHJlYWRzRXhpdChzdGFydFdvcmtlcnMpCit9CisKK2Z1bmN0
aW9uIHN0YXJ0V29ya2VycygpCit7CisgICAgaWYgKCFyZW1haW5pbmdJdGVyYXRpb25zKSB7Cisg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZW1haW5pbmdJdGVy
YXRpb25zLS07CisKKyAgICB3b3JrZXJzU3RhcnRlZCA9IDA7CisgICAgd29ya2Vyc0Nsb3NlZCA9
IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgIHdvcmtlcnNbaV0gPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvb3Blbi1kYXRhYmFzZS1zeW5j
LmpzP2FyZz0nICsgaSkKKyAgICAgICAgd29ya2Vyc1tpXS5vbm1lc3NhZ2UgPSB3YWl0Rm9yQWxs
V29ya2Vyc1RvU3RhcnQ7CisgICAgfQorfQorCisvLyBEbyBvdXIgYmVzdCB0byB0cnkgdG8gaW50
ZXJydXB0IHRoZSBkYXRhYnNlIG9wZW4KKy8vIGNhbGwgYnkgd2FpdGluZyBmb3IgdGhlIHdvcmtl
ciB0byBzdGFydCBhbmQgdGhlbgorLy8gdGVsbGluZyBpdCB0byBkbyB0aGUgb3BlbiBkYXRhYmFz
ZSBjYWxsIChhbmQKKy8vIHRoZW4gdGVybWluYXRlIHRoZSB3b3JrZXIpLgorZnVuY3Rpb24gd2Fp
dEZvckFsbFdvcmtlcnNUb1N0YXJ0KCkKK3sKKyAgICB3b3JrZXJzU3RhcnRlZCsrOworICAgIGlm
ICh3b3JrZXJzU3RhcnRlZCA8IHdvcmtlcnMubGVuZ3RoKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmtlcnMubGVuZ3RoOyArK2kpCisgICAgICAgIHdvcmtl
cnNbaV0ucG9zdE1lc3NhZ2UoJ29wZW5EYXRhYmFzZVN5bmMnKTsKKworICAgIHNldFRpbWVvdXQo
J2Nsb3NlV29ya2VyKCknLCAwKTsKK30KKworZnVuY3Rpb24gY2xvc2VXb3JrZXIoKQoreworICAg
IHdvcmtlcnNbd29ya2Vyc0Nsb3NlZF0udGVybWluYXRlKCk7CisgICAgd29ya2Vyc0Nsb3NlZCsr
OworICAgIGlmICh3b3JrZXJzQ2xvc2VkIDwgd29ya2Vycy5sZW5ndGgpCisgICAgICAgIHNldFRp
bWVvdXQoJ2Nsb3NlV29ya2VyKCknLCAzKTsKKyAgICBlbHNlCisgICAgICAgIG5leHRJdGVyYXRp
b24oKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9
CisgICAgbmV4dEl0ZXJhdGlvbigpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9J3J1blRlc3QoKSc+Cis8ZGl2IGlkPSdyZXN1bHQnPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2Vz
L29wZW4tZGF0YWJhc2Utc3luYy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9y
ZXNvdXJjZXMvb3Blbi1kYXRhYmFzZS1zeW5jLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlN2JlOTQxYmU5NDMy
MGE2ZjNhOWY3M2M3MjIyMDM2MGM2NjY1NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL29wZW4tZGF0YWJhc2Utc3luYy5qcwpAQCAt
MCwwICsxLDcgQEAKK3Bvc3RNZXNzYWdlKCdzdGFydGVkJyk7CisKK29ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2dCkKK3sKKyAgICBpZiAoZXZ0LmRhdGEgPT0gJ29wZW5EYXRhYmFzZVN5bmMnKQorICAg
ICAgICBvcGVuRGF0YWJhc2VTeW5jKCcnLCAnJywgJycsIDEpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119360</attachid>
            <date>2011-12-14 19:41:49 -0800</date>
            <delta_ts>2011-12-14 19:42:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74558-20111214194148.patch</filename>
            <type>text/plain</type>
            <size>10272</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU3NTBjNjg4MTkzZDg1YWM1ZWRiMzkxMzhiYTU3ZDk3YWIyYjI4YWEuLjYwYjc5OTc4ZjE3NTEx
MzAzN2Y1ZDljMjEyZjc3ZGU5MzNjN2UyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTEtMTItMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRGF0YWJhc2VPYnNlcnZlciBuZWVkcyB0aHJlYWRz
YWZlIGZpeGVzIGFuZCBvdGhlciBjbGVhbi11cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcG9ydGFudCBwYXJ0IG9mIHRoaXMgZml4IGlzIHRo
ZSByZW1vdmFsIG9mIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3Mgc28KKyAgICAgICAgdGhhdCByZWYg
Y291bnRpbmcgaGFwcGVucyBhcHByb3ByaWF0ZWx5LgorCisgICAgICAgIE1pbm9yIGNsZWFuIHVw
IHRocm91Z2hvdXQ6IFJlbW92ZWQgdW5uZWNlc3NhcnkgV1RGIHByZWZpeCBpbiBtYW55CisgICAg
ICAgIG9mIHRoZXNlIHBsYWNlcyBhbmQgdW5uZWNlc3NhcnkgU3RyaW5nKCkuCisKKyAgICAgICAg
KiBzcmMvRGF0YWJhc2VPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFsbG93RGF0YWJh
c2VNYWluVGhyZWFkQnJpZGdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBbGxvd0RhdGFi
YXNlTWFpblRocmVhZEJyaWRnZTo6c2lnbmFsQ29tcGxldGVkKTogR2V0IHJpZCBvZgorICAgICAg
ICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzIHNvIHRoYXQgInRoaXMiIGdldCByZWYgY291bnRlZCBh
bmQgcmVtb3ZlIG1vZGUgZnJvbSBiZWluZworICAgICAgICBhIG1lbWJlciB2YXJpYWJsZSBzaW5j
ZSBhIFN0cmluZyBpbiBhIFRocmVhZFNhZmVSZWZDb3VudGVkIGNsYXNzIGlzIGJhZC4KKyAgICAg
ICAgKFdlYktpdDo6QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U6OkFsbG93RGF0YWJhc2VN
YWluVGhyZWFkQnJpZGdlKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkFsbG93RGF0YWJhc2VN
YWluVGhyZWFkQnJpZGdlOjphbGxvd0RhdGFiYXNlVGFzayk6IFBhc3MgdGhyb3VnaCBtb2RlCisg
ICAgICAgIGFuZCBtaW5vciBjb2RlIGNsZWFuaW5nIHRvIGRvIG9ubHkgb25lIGNhbGwgdG8gc2ln
bmFsQ29tcGxldGVkLgorICAgICAgICAoV2ViS2l0OjphbGxvd0RhdGFiYXNlRm9yV29ya2VyKTog
SnVzdCByZW1vdmVkIHVubmVjZXNzYXJ5IFN0cmluZygpJ3MuCisKIDIwMTEtMTItMDkgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgY2hyb21pdW06IHZpc3Vh
bCBzdHVkaW8gcHJvamVjdHMgYXJlIGJ1c3RlZCB3aGVuIGJ1aWxkX3dlYmtpdF9leGVzX2Zyb21f
d2Via2l0X2d5cD09MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0
YWJhc2VPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9i
c2VydmVyLmNwcAppbmRleCBlNWY5OTA5MDY4NDdlODJiZjRmYmYwMDczMzhkODA3ODVmNzljNTYx
Li4xODdiNTVlODI2MTBlOTE5ZWM5M2M1ZmI4MmQ2MThlNmNjNTk4NzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2VydmVyLmNwcApAQCAtNjQsNyArNjQs
NyBAQCBzdGF0aWMgY29uc3QgY2hhciBhbGxvd0RhdGFiYXNlTW9kZVtdID0gImFsbG93RGF0YWJh
c2VNb2RlIjsKIC8vIGNhbGwgYmFjayB0byB0aGUgd29ya2VyIGNvbnRleHQuCiBjbGFzcyBBbGxv
d0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxB
bGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlPiBjcmVhdGUoV2ViQ29yZTo6V29y
a2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5LCBjb25zdCBXVEY6OlN0cmluZyYgbW9k
ZSwgTmV3V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFs
bG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlPiBjcmVhdGUoV2ViQ29yZTo6V29ya2VyTG9hZGVy
UHJveHkqIHdvcmtlckxvYWRlclByb3h5LCBjb25zdCBTdHJpbmcmIG1vZGUsIE5ld1dlYkNvbW1v
bldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0
ZWRTaXplKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbGxvd0RhdGFiYXNl
TWFpblRocmVhZEJyaWRnZSh3b3JrZXJMb2FkZXJQcm94eSwgbW9kZSwgY29tbW9uQ2xpZW50LCBm
cmFtZSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKICAgICB9CkBAIC04Miwz
MyArODIsMjkgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludm9r
ZWQgb24gdGhlIG1haW4gdGhyZWFkLgotICAgIHZvaWQgc2lnbmFsQ29tcGxldGVkKGJvb2wgcmVz
dWx0KQorICAgIHZvaWQgc2lnbmFsQ29tcGxldGVkKGNvbnN0IFN0cmluZyYgbW9kZSwgYm9vbCBy
ZXN1bHQpCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7Ci0gICAg
ICAgIGlmIChtX3dvcmtlckxvYWRlclByb3h5KQotICAgICAgICAgICAgbV93b3JrZXJMb2FkZXJQ
cm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KAotICAgICAgICAgICAgICAgIGNy
ZWF0ZUNhbGxiYWNrVGFzaygmZGlkQ29tcGxldGUsIFdlYkNvcmU6OkFsbG93Q3Jvc3NUaHJlYWRB
Y2Nlc3ModGhpcyksIHJlc3VsdCksIAotICAgICAgICAgICAgICAgIG1fbW9kZSk7CisgICAgICAg
IGlmICghbV93b3JrZXJMb2FkZXJQcm94eSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV93b3JrZXJMb2FkZXJQcm94eS0+cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0
ZUNhbGxiYWNrVGFzaygmZGlkQ29tcGxldGUsIHRoaXMsIHJlc3VsdCksIG1vZGUpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZShXZWJDb3JlOjpX
b3JrZXJMb2FkZXJQcm94eSogd29ya2VyTG9hZGVyUHJveHksIGNvbnN0IFdURjo6U3RyaW5nJiBt
b2RlLCBOZXdXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZy
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRpc3BsYXlO
YW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCisgICAgQWxsb3dEYXRhYmFzZU1haW5U
aHJlYWRCcmlkZ2UoV2ViQ29yZTo6V29ya2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5
LCBjb25zdCBTdHJpbmcmIG1vZGUsIE5ld1dlYkNvbW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xp
ZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQogICAgICAgICA6IG1fd29y
a2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVyUHJveHkpCi0gICAgICAgICwgbV9tb2RlKG1vZGUp
CiAgICAgewogICAgICAgICBXZWJXb3JrZXJCYXNlOjpkaXNwYXRjaFRhc2tUb01haW5UaHJlYWQo
Ci0gICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmFsbG93RGF0YWJhc2VUYXNrLCBXZWJD
b3JlOjpBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGNvbW1vbkNsaWVudCksCisgICAgICAgICAgICBj
cmVhdGVDYWxsYmFja1Rhc2soJmFsbG93RGF0YWJhc2VUYXNrLCBtb2RlLCBXZWJDb3JlOjpBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKGNvbW1vbkNsaWVudCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViQ29yZTo6QWxsb3dDcm9zc1RocmVhZEFjY2VzcyhmcmFtZSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKG5hbWUpLCBTdHJpbmcoZGlzcGxheU5hbWUp
LCBlc3RpbWF0ZWRTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6
OkFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3ModGhpcykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzKSk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgYWxsb3dE
YXRhYmFzZVRhc2soV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTmV3
V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFtZSwgY29u
c3QgV1RGOjpTdHJpbmcgbmFtZSwgY29uc3QgV1RGOjpTdHJpbmcgZGlzcGxheU5hbWUsIHVuc2ln
bmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRocmVh
ZEJyaWRnZT4gYnJpZGdlKQorICAgIHN0YXRpYyB2b2lkIGFsbG93RGF0YWJhc2VUYXNrKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyBtb2RlLCBO
ZXdXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcgbmFtZSwgY29uc3QgU3RyaW5nIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25n
IGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+
IGJyaWRnZSkKICAgICB7Ci0gICAgICAgIGlmIChjb21tb25DbGllbnQpCi0gICAgICAgICAgICBi
cmlkZ2UtPnNpZ25hbENvbXBsZXRlZChjb21tb25DbGllbnQtPmFsbG93RGF0YWJhc2UoZnJhbWUs
IG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGJyaWRnZS0+c2lnbmFsQ29tcGxldGVkKGZhbHNlKTsKKyAgICAgICAgYm9vbCBhbGxv
d0RhdGFiYXNlID0gY29tbW9uQ2xpZW50ID8gY29tbW9uQ2xpZW50LT5hbGxvd0RhdGFiYXNlKGZy
YW1lLCBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkgOiBmYWxzZTsKKyAgICAgICAg
YnJpZGdlLT5zaWduYWxDb21wbGV0ZWQobW9kZSwgYWxsb3dEYXRhYmFzZSk7CiAgICAgfQogCiAg
ICAgc3RhdGljIHZvaWQgZGlkQ29tcGxldGUoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gYnJp
ZGdlLCBib29sIHJlc3VsdCkKQEAgLTExOSw3ICsxMTUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9yZXN1bHQ7CiAgICAgTXV0ZXggbV9tdXRleDsKICAgICBXZWJDb3JlOjpXb3JrZXJMb2FkZXJQ
cm94eSogbV93b3JrZXJMb2FkZXJQcm94eTsKLSAgICBXVEY6OlN0cmluZyBtX21vZGU7CiB9Owog
CiBib29sIGFsbG93RGF0YWJhc2VGb3JXb3JrZXIoTmV3V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBj
b21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCkBA
IC0xMzQsNyArMTI5LDcgQEAgYm9vbCBhbGxvd0RhdGFiYXNlRm9yV29ya2VyKE5ld1dlYkNvbW1v
bldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnIKICAgICBTdHJpbmcgbW9k
ZSA9IGFsbG93RGF0YWJhc2VNb2RlOwogICAgIG1vZGUuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHJ1
bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSkpOwogCi0gICAgUmVmUHRyPEFsbG93RGF0YWJhc2VNYWlu
VGhyZWFkQnJpZGdlPiBicmlkZ2UgPSBBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZTo6Y3Jl
YXRlKHdvcmtlckxvYWRlclByb3h5LCBtb2RlLCBjb21tb25DbGllbnQsIGZyYW1lLCBTdHJpbmco
bmFtZSksIFN0cmluZyhkaXNwbGF5TmFtZSksIGVzdGltYXRlZFNpemUpOworICAgIFJlZlB0cjxB
bGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gYnJpZGdlID0gQWxsb3dEYXRhYmFzZU1haW5U
aHJlYWRCcmlkZ2U6OmNyZWF0ZSh3b3JrZXJMb2FkZXJQcm94eSwgbW9kZSwgY29tbW9uQ2xpZW50
LCBmcmFtZSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpOwogCiAgICAgLy8gRWl0
aGVyIHRoZSBicmlkZ2UgcmV0dXJucywgb3IgdGhlIHF1ZXVlIGdldHMgdGVybWluYXRlZC4KICAg
ICBpZiAocnVuTG9vcC5ydW5Jbk1vZGUod29ya2VyQ29udGV4dCwgbW9kZSkgPT0gTWVzc2FnZVF1
ZXVlVGVybWluYXRlZCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmN2U0ZmZiODA2MDNiOWI1NWNiNzg4ZTM1NmE0ZTVj
YWQwMmQxNGUuLmRmZjU2OWU5ODZjMGIzODMwODQzMDM3M2VjYzFmZmIzMzliZDUwYjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0xNCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBEYXRhYmFzZU9ic2VydmVyIG5lZWRzIHRocmVh
ZHNhZmUgZml4ZXMgYW5kIG90aGVyIGNsZWFuLXVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3Qgd2hpY2ggd291bGQgZmFpbCB3aXRo
b3V0IHNvbWUgb2YgdGhlc2UgZml4ZXMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMv
aW50ZXJydXB0LWRhdGFiYXNlLXN5bmMtb3Blbi1jcmFzaC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL29wZW4tZGF0YWJhc2Utc3luYy5qczogQWRk
ZWQuCisgICAgICAgIChvbm1lc3NhZ2UpOgorCiAyMDExLTEyLTA5ICBBZGFtIEtsZWluICA8YWRh
bWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtNdXRhdGlvbk9ic2VydmVyc10gQWRkIHRlc3Qg
Zm9yIGRlbGl2ZXItYXQtZW5kLW9mLXRhc2sgc2VtYW50aWNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvaW50ZXJydXB0LWRhdGFiYXNlLXN5bmMtb3Blbi1jcmFz
aC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL2ludGVycnVwdC1kYXRhYmFz
ZS1zeW5jLW9wZW4tY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTU1NzI2NzJiOWI3ODFmYTM1ZDQ0
ZGFiYTZmZjExMGE3ZjdmMDdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL2ludGVycnVwdC1kYXRhYmFzZS1zeW5jLW9wZW4tY3Jhc2guaHRtbApAQCAt
MCwwICsxLDc2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9J3Jlc291cmNlcy93b3Jr
ZXItdXRpbC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHdvcmtlcnNTdGFydGVkOwordmFy
IHdvcmtlcnNDbG9zZWQ7CisKKy8vIERvIHRoZSB0ZXN0IDEwIHRpbWVzIGJlY2F1c2UgdGhlIGNy
YXNoIGRpZG4ndCBoYXBwZW4gZXZlcnkgdGltZSwgYnV0CisvLyBpdCBoYXBwZW4gd2l0aCBhIGhp
Z2ggZGVncmVlIG9mIGNvbmZpZGVuY2UgaW4gMTAgaXRlcmF0aW9ucy4KK3ZhciByZW1haW5pbmdJ
dGVyYXRpb25zID0gMTA7CisvLyAzMCB3b3JrZXJzIHNlZW1lZCB0byBjYXVzZSB0aGUgY3Jhc2gg
dG8gaGFwcGVuIGZyZXF1ZW50bHkuCit2YXIgd29ya2VycyA9IG5ldyBBcnJheSgzMCk7CisKK2Z1
bmN0aW9uIG5leHRJdGVyYXRpb24oKQoreworICAgIGxvZygnUmVtYWluaW5nIGl0ZXJhdGlvbnM6
ICcgKyAgcmVtYWluaW5nSXRlcmF0aW9ucyk7CisgICAgd2FpdFVudGlsV29ya2VyVGhyZWFkc0V4
aXQoc3RhcnRXb3JrZXJzKQorfQorCitmdW5jdGlvbiBzdGFydFdvcmtlcnMoKQoreworICAgIGlm
ICghcmVtYWluaW5nSXRlcmF0aW9ucykgeworICAgICAgICBkb25lKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgcmVtYWluaW5nSXRlcmF0aW9ucy0tOworCisgICAgd29ya2Vyc1N0YXJ0
ZWQgPSAwOworICAgIHdvcmtlcnNDbG9zZWQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
d29ya2Vycy5sZW5ndGg7ICsraSkgeworICAgICAgICB3b3JrZXJzW2ldID0gbmV3IFdvcmtlcign
cmVzb3VyY2VzL29wZW4tZGF0YWJhc2Utc3luYy5qcz9hcmc9JyArIGkpCisgICAgICAgIHdvcmtl
cnNbaV0ub25tZXNzYWdlID0gd2FpdEZvckFsbFdvcmtlcnNUb1N0YXJ0OworICAgIH0KK30KKwor
Ly8gRG8gb3VyIGJlc3QgdG8gdHJ5IHRvIGludGVycnVwdCB0aGUgZGF0YWJzZSBvcGVuCisvLyBj
YWxsIGJ5IHdhaXRpbmcgZm9yIHRoZSB3b3JrZXIgdG8gc3RhcnQgYW5kIHRoZW4KKy8vIHRlbGxp
bmcgaXQgdG8gZG8gdGhlIG9wZW4gZGF0YWJhc2UgY2FsbCAoYW5kCisvLyB0aGVuIHRlcm1pbmF0
ZSB0aGUgd29ya2VyKS4KK2Z1bmN0aW9uIHdhaXRGb3JBbGxXb3JrZXJzVG9TdGFydCgpCit7Cisg
ICAgd29ya2Vyc1N0YXJ0ZWQrKzsKKyAgICBpZiAod29ya2Vyc1N0YXJ0ZWQgPCB3b3JrZXJzLmxl
bmd0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JrZXJz
Lmxlbmd0aDsgKytpKQorICAgICAgICB3b3JrZXJzW2ldLnBvc3RNZXNzYWdlKCdvcGVuRGF0YWJh
c2VTeW5jJyk7CisKKyAgICBzZXRUaW1lb3V0KCdjbG9zZVdvcmtlcigpJywgMCk7Cit9CisKK2Z1
bmN0aW9uIGNsb3NlV29ya2VyKCkKK3sKKyAgICB3b3JrZXJzW3dvcmtlcnNDbG9zZWRdLnRlcm1p
bmF0ZSgpOworICAgIHdvcmtlcnNDbG9zZWQrKzsKKyAgICBpZiAod29ya2Vyc0Nsb3NlZCA8IHdv
cmtlcnMubGVuZ3RoKQorICAgICAgICBzZXRUaW1lb3V0KCdjbG9zZVdvcmtlcigpJywgMyk7Cisg
ICAgZWxzZQorICAgICAgICBuZXh0SXRlcmF0aW9uKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
KQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIG5leHRJdGVyYXRpb24oKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdydW5UZXN0KCknPgorPGRpdiBpZD0ncmVz
dWx0Jz4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNlcy9vcGVuLWRhdGFiYXNlLXN5bmMuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL29wZW4tZGF0YWJhc2Utc3luYy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZTdiZTk0MWJlOTQzMjBhNmYzYTlmNzNjNzIyMjAzNjBjNjY2NTVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Jlc291cmNl
cy9vcGVuLWRhdGFiYXNlLXN5bmMuanMKQEAgLTAsMCArMSw3IEBACitwb3N0TWVzc2FnZSgnc3Rh
cnRlZCcpOworCitvbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpCit7CisgICAgaWYgKGV2dC5kYXRh
ID09ICdvcGVuRGF0YWJhc2VTeW5jJykKKyAgICAgICAgb3BlbkRhdGFiYXNlU3luYygnJywgJycs
ICcnLCAxKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119361</attachid>
            <date>2011-12-14 19:42:46 -0800</date>
            <delta_ts>2011-12-14 22:51:37 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74558-20111214194245.patch</filename>
            <type>text/plain</type>
            <size>10268</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU3NTBjNjg4MTkzZDg1YWM1ZWRiMzkxMzhiYTU3ZDk3YWIyYjI4YWEuLjQ3NWZjNTVlZWU0NGE3
ZTBmNThjNDhlNjc2NzE1NzllYTgxMWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTEtMTItMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRGF0YWJhc2VPYnNlcnZlciBuZWVkcyB0aHJlYWRz
YWZlIGZpeGVzIGFuZCBvdGhlciBjbGVhbi11cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5
IFRpdG92LgorCisgICAgICAgIFRoZSBpbXBvcnRhbnQgcGFydCBvZiB0aGlzIGZpeCBpcyB0aGUg
cmVtb3ZhbCBvZiBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzIHNvCisgICAgICAgIHRoYXQgcmVmIGNv
dW50aW5nIGhhcHBlbnMgYXBwcm9wcmlhdGVseS4KKworICAgICAgICBNaW5vciBjbGVhbiB1cCB0
aHJvdWdob3V0OiBSZW1vdmVkIHVubmVjZXNzYXJ5IFdURiBwcmVmaXggaW4gbWFueQorICAgICAg
ICBvZiB0aGVzZSBwbGFjZXMgYW5kIHVubmVjZXNzYXJ5IFN0cmluZygpLgorCisgICAgICAgICog
c3JjL0RhdGFiYXNlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBbGxvd0RhdGFiYXNl
TWFpblRocmVhZEJyaWRnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6QWxsb3dEYXRhYmFz
ZU1haW5UaHJlYWRCcmlkZ2U6OnNpZ25hbENvbXBsZXRlZCk6IEdldCByaWQgb2YKKyAgICAgICAg
QWxsb3dDcm9zc1RocmVhZEFjY2VzcyBzbyB0aGF0ICJ0aGlzIiBnZXQgcmVmIGNvdW50ZWQgYW5k
IHJlbW92ZSBtb2RlIGZyb20gYmVpbmcKKyAgICAgICAgYSBtZW1iZXIgdmFyaWFibGUgc2luY2Ug
YSBTdHJpbmcgaW4gYSBUaHJlYWRTYWZlUmVmQ291bnRlZCBjbGFzcyBpcyBiYWQuCisgICAgICAg
IChXZWJLaXQ6OkFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlOjpBbGxvd0RhdGFiYXNlTWFp
blRocmVhZEJyaWRnZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpBbGxvd0RhdGFiYXNlTWFp
blRocmVhZEJyaWRnZTo6YWxsb3dEYXRhYmFzZVRhc2spOiBQYXNzIHRocm91Z2ggbW9kZQorICAg
ICAgICBhbmQgbWlub3IgY29kZSBjbGVhbmluZyB0byBkbyBvbmx5IG9uZSBjYWxsIHRvIHNpZ25h
bENvbXBsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6YWxsb3dEYXRhYmFzZUZvcldvcmtlcik6IEp1
c3QgcmVtb3ZlZCB1bm5lY2Vzc2FyeSBTdHJpbmcoKSdzLgorCiAyMDExLTEyLTA5ICBEaXJrIFBy
YW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNocm9taXVtOiB2aXN1YWwg
c3R1ZGlvIHByb2plY3RzIGFyZSBidXN0ZWQgd2hlbiBidWlsZF93ZWJraXRfZXhlc19mcm9tX3dl
YmtpdF9neXA9PTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGFi
YXNlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0YWJhc2VPYnNl
cnZlci5jcHAKaW5kZXggZTVmOTkwOTA2ODQ3ZTgyYmY0ZmJmMDA3MzM4ZDgwNzg1Zjc5YzU2MS4u
MTg3YjU1ZTgyNjEwZTkxOWVjOTNjNWZiODJkNjE4ZTZjYzU5ODczNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAKQEAgLTY0LDcgKzY0LDcg
QEAgc3RhdGljIGNvbnN0IGNoYXIgYWxsb3dEYXRhYmFzZU1vZGVbXSA9ICJhbGxvd0RhdGFiYXNl
TW9kZSI7CiAvLyBjYWxsIGJhY2sgdG8gdGhlIHdvcmtlciBjb250ZXh0LgogY2xhc3MgQWxsb3dE
YXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWxs
b3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gY3JlYXRlKFdlYkNvcmU6Oldvcmtl
ckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94eSwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUs
IE5ld1dlYkNvbW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUs
IGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUs
IHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbGxv
d0RhdGFiYXNlTWFpblRocmVhZEJyaWRnZT4gY3JlYXRlKFdlYkNvcmU6OldvcmtlckxvYWRlclBy
b3h5KiB3b3JrZXJMb2FkZXJQcm94eSwgY29uc3QgU3RyaW5nJiBtb2RlLCBOZXdXZWJDb21tb25X
b3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVk
U2l6ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWxsb3dEYXRhYmFzZU1h
aW5UaHJlYWRCcmlkZ2Uod29ya2VyTG9hZGVyUHJveHksIG1vZGUsIGNvbW1vbkNsaWVudCwgZnJh
bWUsIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAgICAgfQpAQCAtODIsMzMg
KzgyLDI5IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZva2Vk
IG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICB2b2lkIHNpZ25hbENvbXBsZXRlZChib29sIHJlc3Vs
dCkKKyAgICB2b2lkIHNpZ25hbENvbXBsZXRlZChjb25zdCBTdHJpbmcmIG1vZGUsIGJvb2wgcmVz
dWx0KQogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgICAg
ICBpZiAobV93b3JrZXJMb2FkZXJQcm94eSkKLSAgICAgICAgICAgIG1fd29ya2VyTG9hZGVyUHJv
eHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dCgKLSAgICAgICAgICAgICAgICBjcmVh
dGVDYWxsYmFja1Rhc2soJmRpZENvbXBsZXRlLCBXZWJDb3JlOjpBbGxvd0Nyb3NzVGhyZWFkQWNj
ZXNzKHRoaXMpLCByZXN1bHQpLCAKLSAgICAgICAgICAgICAgICBtX21vZGUpOworICAgICAgICBp
ZiAoIW1fd29ya2VyTG9hZGVyUHJveHkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
d29ya2VyTG9hZGVyUHJveHktPnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVD
YWxsYmFja1Rhc2soJmRpZENvbXBsZXRlLCB0aGlzLCByZXN1bHQpLCBtb2RlKTsKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2UoV2ViQ29yZTo6V29y
a2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5LCBjb25zdCBXVEY6OlN0cmluZyYgbW9k
ZSwgTmV3V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQorICAgIEFsbG93RGF0YWJhc2VNYWluVGhy
ZWFkQnJpZGdlKFdlYkNvcmU6OldvcmtlckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94eSwg
Y29uc3QgU3RyaW5nJiBtb2RlLCBOZXdXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNsaWVu
dCwgV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKICAgICAgICAgOiBtX3dvcmtl
ckxvYWRlclByb3h5KHdvcmtlckxvYWRlclByb3h5KQotICAgICAgICAsIG1fbW9kZShtb2RlKQog
ICAgIHsKICAgICAgICAgV2ViV29ya2VyQmFzZTo6ZGlzcGF0Y2hUYXNrVG9NYWluVGhyZWFkKAot
ICAgICAgICAgICAgY3JlYXRlQ2FsbGJhY2tUYXNrKCZhbGxvd0RhdGFiYXNlVGFzaywgV2ViQ29y
ZTo6QWxsb3dDcm9zc1RocmVhZEFjY2Vzcyhjb21tb25DbGllbnQpLAorICAgICAgICAgICAgY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZhbGxvd0RhdGFiYXNlVGFzaywgbW9kZSwgV2ViQ29yZTo6QWxsb3dD
cm9zc1RocmVhZEFjY2Vzcyhjb21tb25DbGllbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkNvcmU6OkFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoZnJhbWUpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhuYW1lKSwgU3RyaW5nKGRpc3BsYXlOYW1lKSwg
ZXN0aW1hdGVkU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpB
bGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcykpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGFsbG93RGF0
YWJhc2VUYXNrKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5ld1dl
YkNvbW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IFdURjo6U3RyaW5nIG5hbWUsIGNvbnN0IFdURjo6U3RyaW5nIGRpc3BsYXlOYW1lLCB1bnNpZ25l
ZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRC
cmlkZ2U+IGJyaWRnZSkKKyAgICBzdGF0aWMgdm9pZCBhbGxvd0RhdGFiYXNlVGFzayhXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcgbW9kZSwgTmV3
V2ViQ29tbW9uV29ya2VyQ2xpZW50KiBjb21tb25DbGllbnQsIFdlYkZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nIG5hbWUsIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPEFsbG93RGF0YWJhc2VNYWluVGhyZWFkQnJpZGdlPiBi
cmlkZ2UpCiAgICAgewotICAgICAgICBpZiAoY29tbW9uQ2xpZW50KQotICAgICAgICAgICAgYnJp
ZGdlLT5zaWduYWxDb21wbGV0ZWQoY29tbW9uQ2xpZW50LT5hbGxvd0RhdGFiYXNlKGZyYW1lLCBu
YW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBicmlkZ2UtPnNpZ25hbENvbXBsZXRlZChmYWxzZSk7CisgICAgICAgIGJvb2wgYWxsb3dE
YXRhYmFzZSA9IGNvbW1vbkNsaWVudCA/IGNvbW1vbkNsaWVudC0+YWxsb3dEYXRhYmFzZShmcmFt
ZSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpIDogZmFsc2U7CisgICAgICAgIGJy
aWRnZS0+c2lnbmFsQ29tcGxldGVkKG1vZGUsIGFsbG93RGF0YWJhc2UpOwogICAgIH0KIAogICAg
IHN0YXRpYyB2b2lkIGRpZENvbXBsZXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8QWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IGJyaWRn
ZSwgYm9vbCByZXN1bHQpCkBAIC0xMTksNyArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cmVzdWx0OwogICAgIE11dGV4IG1fbXV0ZXg7CiAgICAgV2ViQ29yZTo6V29ya2VyTG9hZGVyUHJv
eHkqIG1fd29ya2VyTG9hZGVyUHJveHk7Ci0gICAgV1RGOjpTdHJpbmcgbV9tb2RlOwogfTsKIAog
Ym9vbCBhbGxvd0RhdGFiYXNlRm9yV29ya2VyKE5ld1dlYkNvbW1vbldvcmtlckNsaWVudCogY29t
bW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3Qg
V2ViU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQpAQCAt
MTM0LDcgKzEyOSw3IEBAIGJvb2wgYWxsb3dEYXRhYmFzZUZvcldvcmtlcihOZXdXZWJDb21tb25X
b3JrZXJDbGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyCiAgICAgU3RyaW5nIG1vZGUg
PSBhbGxvd0RhdGFiYXNlTW9kZTsKICAgICBtb2RlLmFwcGVuZChTdHJpbmc6Om51bWJlcihydW5M
b29wLmNyZWF0ZVVuaXF1ZUlkKCkpKTsKIAotICAgIFJlZlB0cjxBbGxvd0RhdGFiYXNlTWFpblRo
cmVhZEJyaWRnZT4gYnJpZGdlID0gQWxsb3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U6OmNyZWF0
ZSh3b3JrZXJMb2FkZXJQcm94eSwgbW9kZSwgY29tbW9uQ2xpZW50LCBmcmFtZSwgU3RyaW5nKG5h
bWUpLCBTdHJpbmcoZGlzcGxheU5hbWUpLCBlc3RpbWF0ZWRTaXplKTsKKyAgICBSZWZQdHI8QWxs
b3dEYXRhYmFzZU1haW5UaHJlYWRCcmlkZ2U+IGJyaWRnZSA9IEFsbG93RGF0YWJhc2VNYWluVGhy
ZWFkQnJpZGdlOjpjcmVhdGUod29ya2VyTG9hZGVyUHJveHksIG1vZGUsIGNvbW1vbkNsaWVudCwg
ZnJhbWUsIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKIAogICAgIC8vIEVpdGhl
ciB0aGUgYnJpZGdlIHJldHVybnMsIG9yIHRoZSBxdWV1ZSBnZXRzIHRlcm1pbmF0ZWQuCiAgICAg
aWYgKHJ1bkxvb3AucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQsIG1vZGUpID09IE1lc3NhZ2VRdWV1
ZVRlcm1pbmF0ZWQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZjdlNGZmYjgwNjAzYjliNTVjYjc4OGUzNTZhNGU1Y2Fk
MDJkMTRlLi4wM2E3Yzg3ODhkZmRkN2NhMjQ2ZDJjM2JmMDZjZWUwN2UwZTdlNTI0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTItMTQgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRGF0YWJhc2VPYnNlcnZlciBuZWVkcyB0aHJlYWRz
YWZlIGZpeGVzIGFuZCBvdGhlciBjbGVhbi11cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5
IFRpdG92LgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB3aGljaCB3b3VsZCBmYWlsIHdpdGhvdXQg
c29tZSBvZiB0aGVzZSBmaXhlcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9pbnRl
cnJ1cHQtZGF0YWJhc2Utc3luYy1vcGVuLWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJjZXMvb3Blbi1kYXRhYmFzZS1zeW5jLmpzOiBBZGRlZC4K
KyAgICAgICAgKG9ubWVzc2FnZSk6CisKIDIwMTEtMTItMDkgIEFkYW0gS2xlaW4gIDxhZGFta0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW011dGF0aW9uT2JzZXJ2ZXJzXSBBZGQgdGVzdCBmb3Ig
ZGVsaXZlci1hdC1lbmQtb2YtdGFzayBzZW1hbnRpY3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9pbnRlcnJ1cHQtZGF0YWJhc2Utc3luYy1vcGVuLWNyYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvaW50ZXJydXB0LWRhdGFiYXNlLXN5
bmMtb3Blbi1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNTU3MjY3MmI5Yjc4MWZhMzVkNDRkYWJh
NmZmMTEwYTdmN2YwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvaW50ZXJydXB0LWRhdGFiYXNlLXN5bmMtb3Blbi1jcmFzaC5odG1sCkBAIC0wLDAg
KzEsNzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0ncmVzb3VyY2VzL3dvcmtlci11
dGlsLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd29ya2Vyc1N0YXJ0ZWQ7Cit2YXIgd29y
a2Vyc0Nsb3NlZDsKKworLy8gRG8gdGhlIHRlc3QgMTAgdGltZXMgYmVjYXVzZSB0aGUgY3Jhc2gg
ZGlkbid0IGhhcHBlbiBldmVyeSB0aW1lLCBidXQKKy8vIGl0IGhhcHBlbiB3aXRoIGEgaGlnaCBk
ZWdyZWUgb2YgY29uZmlkZW5jZSBpbiAxMCBpdGVyYXRpb25zLgordmFyIHJlbWFpbmluZ0l0ZXJh
dGlvbnMgPSAxMDsKKy8vIDMwIHdvcmtlcnMgc2VlbWVkIHRvIGNhdXNlIHRoZSBjcmFzaCB0byBo
YXBwZW4gZnJlcXVlbnRseS4KK3ZhciB3b3JrZXJzID0gbmV3IEFycmF5KDMwKTsKKworZnVuY3Rp
b24gbmV4dEl0ZXJhdGlvbigpCit7CisgICAgbG9nKCdSZW1haW5pbmcgaXRlcmF0aW9uczogJyAr
ICByZW1haW5pbmdJdGVyYXRpb25zKTsKKyAgICB3YWl0VW50aWxXb3JrZXJUaHJlYWRzRXhpdChz
dGFydFdvcmtlcnMpCit9CisKK2Z1bmN0aW9uIHN0YXJ0V29ya2VycygpCit7CisgICAgaWYgKCFy
ZW1haW5pbmdJdGVyYXRpb25zKSB7CisgICAgICAgIGRvbmUoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICByZW1haW5pbmdJdGVyYXRpb25zLS07CisKKyAgICB3b3JrZXJzU3RhcnRlZCA9
IDA7CisgICAgd29ya2Vyc0Nsb3NlZCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jr
ZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHdvcmtlcnNbaV0gPSBuZXcgV29ya2VyKCdyZXNv
dXJjZXMvb3Blbi1kYXRhYmFzZS1zeW5jLmpzP2FyZz0nICsgaSkKKyAgICAgICAgd29ya2Vyc1tp
XS5vbm1lc3NhZ2UgPSB3YWl0Rm9yQWxsV29ya2Vyc1RvU3RhcnQ7CisgICAgfQorfQorCisvLyBE
byBvdXIgYmVzdCB0byB0cnkgdG8gaW50ZXJydXB0IHRoZSBkYXRhYnNlIG9wZW4KKy8vIGNhbGwg
Ynkgd2FpdGluZyBmb3IgdGhlIHdvcmtlciB0byBzdGFydCBhbmQgdGhlbgorLy8gdGVsbGluZyBp
dCB0byBkbyB0aGUgb3BlbiBkYXRhYmFzZSBjYWxsIChhbmQKKy8vIHRoZW4gdGVybWluYXRlIHRo
ZSB3b3JrZXIpLgorZnVuY3Rpb24gd2FpdEZvckFsbFdvcmtlcnNUb1N0YXJ0KCkKK3sKKyAgICB3
b3JrZXJzU3RhcnRlZCsrOworICAgIGlmICh3b3JrZXJzU3RhcnRlZCA8IHdvcmtlcnMubGVuZ3Ro
KQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmtlcnMubGVu
Z3RoOyArK2kpCisgICAgICAgIHdvcmtlcnNbaV0ucG9zdE1lc3NhZ2UoJ29wZW5EYXRhYmFzZVN5
bmMnKTsKKworICAgIHNldFRpbWVvdXQoJ2Nsb3NlV29ya2VyKCknLCAwKTsKK30KKworZnVuY3Rp
b24gY2xvc2VXb3JrZXIoKQoreworICAgIHdvcmtlcnNbd29ya2Vyc0Nsb3NlZF0udGVybWluYXRl
KCk7CisgICAgd29ya2Vyc0Nsb3NlZCsrOworICAgIGlmICh3b3JrZXJzQ2xvc2VkIDwgd29ya2Vy
cy5sZW5ndGgpCisgICAgICAgIHNldFRpbWVvdXQoJ2Nsb3NlV29ya2VyKCknLCAzKTsKKyAgICBl
bHNlCisgICAgICAgIG5leHRJdGVyYXRpb24oKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgbmV4dEl0ZXJhdGlvbigpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRlc3QoKSc+Cis8ZGl2IGlkPSdyZXN1bHQn
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL29wZW4tZGF0YWJhc2Utc3luYy5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9yZXNvdXJjZXMvb3Blbi1kYXRhYmFzZS1zeW5jLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFlN2JlOTQxYmU5NDMyMGE2ZjNhOWY3M2M3MjIyMDM2MGM2NjY1NWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvcmVzb3VyY2VzL29w
ZW4tZGF0YWJhc2Utc3luYy5qcwpAQCAtMCwwICsxLDcgQEAKK3Bvc3RNZXNzYWdlKCdzdGFydGVk
Jyk7CisKK29ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkKK3sKKyAgICBpZiAoZXZ0LmRhdGEgPT0g
J29wZW5EYXRhYmFzZVN5bmMnKQorICAgICAgICBvcGVuRGF0YWJhc2VTeW5jKCcnLCAnJywgJycs
IDEpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>