<?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>101327</bug_id>
          
          <creation_ts>2012-11-06 02:43:05 -0800</creation_ts>
          <short_desc>[Qt][WTR] TestController::platformRunUntil should not do busy waiting</short_desc>
          <delta_ts>2012-11-22 01:45:30 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>hausmann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759456</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-06 02:43:05 -0800</bug_when>
    <thetext>My problem is that WebKitTestRunner use too much CPU so it really overloads my system. I believe one reason is that the current implementation of platformRunUntil is actually busy waiting for events. Until an event triggers it is continously calling into processEvents (without the WaitForMoreEvents flag). Instead we should allow waiting for events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759533</commentid>
    <comment_count>1</comment_count>
      <attachid>172552</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-06 04:43:31 -0800</bug_when>
    <thetext>Created attachment 172552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759537</commentid>
    <comment_count>2</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-06 04:51:25 -0800</bug_when>
    <thetext>Here is some data about the effect.

test: time run-webkit-tests -2 --no-show-results --no-retry-failures --no-new-test-results LayoutTests/compositing

ref:
real    9m33.580s
user    4m40.298s
sys     3m55.207s

patched:
real    0m27.776s
user    0m7.044s
sys     0m6.040s

Note that this is an extreme situation, somehow the compositing tests shows the affect much more than others (currently), the affect is not always that much. Btw I repeated this test once again and the results were the same so I&apos;m quite sure 
it&apos;s not about some variance of the workload of my system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761777</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-08 07:36:57 -0800</bug_when>
    <thetext>I found a single example where the difference is huge: LayoutTests/compositing/overflow/overflow-positioning.html. Honestly I don&apos;t why this test is so slow with the current runUntil implementations while others are not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764183</commentid>
    <comment_count>4</comment_count>
      <attachid>173599</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-12 02:48:02 -0800</bug_when>
    <thetext>Created attachment 173599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766516</commentid>
    <comment_count>5</comment_count>
      <attachid>173599</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-11-13 23:53:40 -0800</bug_when>
    <thetext>Comment on attachment 173599
Patch

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

&gt; Tools/WebKitTestRunner/qt/TestControllerQt.cpp:62
&gt; +    QTimer timer;

This could also be implemented using a QBasicTimer, removing the need for Q_OBJECT and moc inclusion.

&gt; Tools/WebKitTestRunner/qt/TestControllerQt.cpp:67
&gt; +Q_GLOBAL_STATIC(RunLoopContext, g_loopContext);

I still think that it would be cleaner if this was a member variable of TestController instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766701</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-14 03:08:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 173599 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173599&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/qt/TestControllerQt.cpp:62
&gt; &gt; +    QTimer timer;
&gt; 
&gt; This could also be implemented using a QBasicTimer, removing the need for Q_OBJECT and moc inclusion.

How? I still need a QObject with a custom timerEvent override if I use a QBasicTimer, no?

&gt; 
&gt; &gt; Tools/WebKitTestRunner/qt/TestControllerQt.cpp:67
&gt; &gt; +Q_GLOBAL_STATIC(RunLoopContext, g_loopContext);
&gt; 
&gt; I still think that it would be cleaner if this was a member variable of TestController instead.

Ok, than let&apos;s do another round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766793</commentid>
    <comment_count>7</comment_count>
      <attachid>174138</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-14 05:44:21 -0800</bug_when>
    <thetext>Created attachment 174138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770479</commentid>
    <comment_count>8</comment_count>
      <attachid>174914</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-19 01:40:04 -0800</bug_when>
    <thetext>Created attachment 174914
Patch

fixed changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770606</commentid>
    <comment_count>9</comment_count>
      <attachid>174914</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-19 04:37:06 -0800</bug_when>
    <thetext>Comment on attachment 174914
Patch

Attachment 174914 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14908160

New failing tests:
inspector/profiler/heap-snapshot.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772996</commentid>
    <comment_count>10</comment_count>
      <attachid>174914</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-11-21 08:25:21 -0800</bug_when>
    <thetext>Comment on attachment 174914
Patch

I like this approach, but the call to platformDestroy() is missing, as briefly mentioned on IRC :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773313</commentid>
    <comment_count>11</comment_count>
      <attachid>175526</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-21 14:46:26 -0800</bug_when>
    <thetext>Created attachment 175526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773732</commentid>
    <comment_count>12</comment_count>
      <attachid>175526</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-22 01:45:26 -0800</bug_when>
    <thetext>Comment on attachment 175526
Patch

Clearing flags on attachment: 175526

Committed r135496: &lt;http://trac.webkit.org/changeset/135496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773733</commentid>
    <comment_count>13</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-11-22 01:45:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172552</attachid>
            <date>2012-11-06 04:43:31 -0800</date>
            <delta_ts>2012-11-12 02:47:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101327-20121106134135.patch</filename>
            <type>text/plain</type>
            <size>3356</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzNhN2IxMTEwNTMwNmFiYTBiMzk1MGFmNWQwMTkxNzRl
OGVlYzUyZS4uMGU1MDljMDM3ZmI0MmRhMjdkNDFhN2M4ZmVjMmZjNzg2ODRlMGM0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0
IEBACiAyMDEyLTExLTA2ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAor
ICAgICAgICBbUXRdW1dUUl0gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxk
IG5vdCBkbyBidXN5IHdhaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTMyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF2b2lkIGJ1c3kgd2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVu
VW50aWwuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQu
Y3BwOgorICAgICAgICAoV1RSOjpSdW5Mb29wQ29udGV4dDo6UnVuTG9vcENvbnRleHQpOgorICAg
ICAgICAoUnVuTG9vcENvbnRleHQpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6Om5vdGlmeURvbmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1SdW5VbnRpbCk6CisgICAgICAgIFVzZSBhIFFFdmVudExvb3AgdG8gaW1wbGVtZW50
IHRoZSBydW4gbG9vcC4gVGhpcyBpcyB0aGUgYXBwcm9wcmlhdGUgQVBJCisgICAgICAgIHRvIHB1
c2ggdGhlIFdhaXRGb3JNb3JlRXZlbnRzIGZsYWcgdG8gUUNvcmVBcHBsaWNhdGlvbjo6cHJvY2Vz
c0V2ZW50cworICAgICAgICBhbmQgYWxzbyBiZWluZyBhYmxlIHRvIGV4aXQgdGhlIGxvb3AgaWYg
d2UgaGF2ZSB0aW1lZCBvdXQuCisKKzIwMTItMTEtMDYgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6
c0B3ZWJraXQub3JnPgorCiAgICAgICAgIER1bXBSZW5kZXJUcmVlIHNob3VsZCBoYXZlIC0tcGl4
ZWwtdGVzdHMgb3B0aW9uIGFnYWluCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODY0OAogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0
Q29udHJvbGxlclF0LmNwcAppbmRleCAwNGRkYjhiNzYxY2VlM2I2YTMwZTNkNDc0NWY3NzViYmQ3
MWJhZDZhLi5jYTlmNWQ0YjkxY2EzYzYzYWNmNzBiOGNlN2E3ZGE3YmVmNjY4MDg4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTM3LDE1
ICszNywzMSBAQAogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRTGlicmFyeT4KICNp
bmNsdWRlIDxRT2JqZWN0PgotI2luY2x1ZGUgPHFxdWlja3dlYnZpZXdfcC5oPgorI2luY2x1ZGUg
PFFUaW1lcj4KICNpbmNsdWRlIDxRdEdsb2JhbD4KKyNpbmNsdWRlIDxxcXVpY2t3ZWJ2aWV3X3Au
aD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKK3N0cnVjdCBSdW5Mb29wQ29udGV4dCB7CisgICAg
UnVuTG9vcENvbnRleHQoKQorICAgIHsKKyAgICAgICAgdGltZXIuc2V0U2luZ2xlU2hvdCh0cnVl
KTsKKyAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgmdGltZXIsIFNJR05BTCh0aW1lb3V0KCkpLCAm
ZXZlbnRMb29wLCBTTE9UKHF1aXQoKSkpOworICAgIH0KKworICAgIFFFdmVudExvb3AgZXZlbnRM
b29wOworICAgIFFUaW1lciB0aW1lcjsKK307CisKK1FfR0xPQkFMX1NUQVRJQyhSdW5Mb29wQ29u
dGV4dCwgZ19sb29wQ29udGV4dCk7CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUo
KQogeworICAgIGdfbG9vcENvbnRleHQoKS0+dGltZXIuc3RvcCgpOworICAgIGdfbG9vcENvbnRl
eHQoKS0+ZXZlbnRMb29wLmV4aXQoKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKQEAgLTU1LDIxICs3MSwxNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVu
dGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCiB7Ci0gICAgaWYgKHFnZXRlbnYo
IlFUX1dFQktJVDJfREVCVUciKSA9PSAiMSIgfHwgdGltZW91dCA9PSBtX25vVGltZW91dCkgewot
ICAgICAgICAvLyBOZXZlciB0aW1lb3V0IGlmIHdlIGFyZSBkZWJ1Z2dpbmcgb3Igbm90IG1lYW50
IHRvIHRpbWVvdXQuCi0gICAgICAgIHdoaWxlICghY29uZGl0aW9uKQotICAgICAgICAgICAgUUNv
cmVBcHBsaWNhdGlvbjo6cHJvY2Vzc0V2ZW50cyhRRXZlbnRMb29wOjpFeGNsdWRlVXNlcklucHV0
RXZlbnRzLCA1MCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgVU5VU0VEX1BBUkFNKGNv
bmRpdGlvbik7CiAKLSAgICBpbnQgdGltZW91dEluTVNlY3MgPSB0aW1lb3V0ICogMTAwMDsKLSAg
ICBRRWxhcHNlZFRpbWVyIHRpbWVyOwotICAgIHRpbWVyLnN0YXJ0KCk7Ci0gICAgd2hpbGUgKCFj
b25kaXRpb24pIHsKLSAgICAgICAgaWYgKHRpbWVyLmVsYXBzZWQoKSA+IHRpbWVvdXRJbk1TZWNz
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNz
RXZlbnRzKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMsIHRpbWVvdXRJbk1TZWNz
IC0gdGltZXIuZWxhcHNlZCgpKTsKKyAgICBRX0FTU0VSVCghZ19sb29wQ29udGV4dCgpLT5ldmVu
dExvb3AuaXNSdW5uaW5nKCkpOworCisgICAgY29uc3QgYm9vbCBzaG91bGRUaW1lb3V0ID0gIShx
Z2V0ZW52KCJRVF9XRUJLSVQyX0RFQlVHIikgPT0gIjEiIHx8IHRpbWVvdXQgPT0gbV9ub1RpbWVv
dXQpOworICAgIGlmIChzaG91bGRUaW1lb3V0KSB7CisgICAgICAgIGNvbnN0IGludCB0aW1lb3V0
SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOworICAgICAgICBnX2xvb3BDb250ZXh0KCktPnRpbWVy
LnN0YXJ0KHRpbWVvdXRJbk1TZWNzKTsKICAgICB9CisKKyAgICBnX2xvb3BDb250ZXh0KCktPmV2
ZW50TG9vcC5leGVjKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMpOwogfQogCiBz
dGF0aWMgYm9vbCBpc0V4aXN0aW5nTGlicmFyeShjb25zdCBRU3RyaW5nJiBwYXRoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173599</attachid>
            <date>2012-11-12 02:48:02 -0800</date>
            <delta_ts>2012-11-14 03:08:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101327-20121112114600.patch</filename>
            <type>text/plain</type>
            <size>5110</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjkzYWU2NDRiMmRiMmIwNDhmZTg0ZDhjMDljMDgwNmEz
NTVkZDg0NC4uMjA4ODA1MDMxNTA3N2VjODZhMmNjYmJjMWVmYmRkM2M0YjI2ZWVkYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEyLTExLTEyICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbUXRdW1dUUl0gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxk
IG5vdCBkbyBidXN5IHdhaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTMyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF2b2lkIGJ1c3kgd2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVu
VW50aWwgd2hpbGUgbWFraW5nCisgICAgICAgIHN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBiZWhh
dmlvciBvZiBtb2RhbCBldmVudCBsb29wcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
cXQvVGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChSdW5Mb29wQ29udGV4dCk6IEEgaGVs
cGVyIGNsYXNzIHRvIHN0b3JlIG91ciBhZGRpdGlvbmFsIHN0YXRlIGFib3V0CisgICAgICAgIGV2
ZW50IGxvb3BzLiBJIG1hZGUgaXQgYSBzZXBhcmF0ZSBzaW5nbGV0b24gdG8gYXZvaWQgdG9vIG11
Y2ggcGxhdGZvcm0KKyAgICAgICAgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlsIGluIHRo
ZSBoZWFkZXIuCisgICAgICAgIChXVFI6OlJ1bkxvb3BDb250ZXh0OjpSdW5Mb29wQ29udGV4dCk6
CisgICAgICAgIChXVFI6OlJ1bkxvb3BDb250ZXh0Ojp0aW1lckZpcmVkKToKKyAgICAgICAgKFdU
Uik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwpOgorICAgICAgICBVc2UgYSBR
RXZlbnRMb29wIHRvIGltcGxlbWVudCB0aGUgcnVuIGxvb3AuIFRoaXMgaXMgdGhlIGFwcHJvcHJp
YXRlIEFQSQorICAgICAgICB0byBwdXNoIHRoZSBXYWl0Rm9yTW9yZUV2ZW50cyBmbGFnIHRvIFFD
b3JlQXBwbGljYXRpb246OnByb2Nlc3NFdmVudHMKKyAgICAgICAgYW5kIGFsc28gYmVpbmcgYWJs
ZSB0byBleGl0IHRoZSBsb29wIGlmIHdlIGhhdmUgdGltZWQgb3V0LgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwpOgorCiAyMDEyLTExLTA4ICBTbGF2b21pciBLYXNsZXYg
IDxza2FzbGV2QGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBEdW1wUmVuZGVyVHJl
ZSBmaXggZm9yIGNhbnZhcyBpbiBzb2Z0d2FyZSBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggMDRkZGI4Yjc2MWNlZTNi
NmEzMGUzZDQ3NDVmNzc1YmJkNzFiYWQ2YS4uZTAzN2U4NmEzNmQzZDNmMzAyNmI5NmMyNThiMzY4
MjdiZjFmOThiMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29u
dHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9s
bGVyUXQuY3BwCkBAIC0zNywxNSArMzcsNTcgQEAKICNpbmNsdWRlIDxRRmlsZUluZm8+CiAjaW5j
bHVkZSA8UUxpYnJhcnk+CiAjaW5jbHVkZSA8UU9iamVjdD4KLSNpbmNsdWRlIDxxcXVpY2t3ZWJ2
aWV3X3AuaD4KKyNpbmNsdWRlIDxRVGltZXI+CiAjaW5jbHVkZSA8UXRHbG9iYWw+CisjaW5jbHVk
ZSA8cXF1aWNrd2Vidmlld19wLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdUUiB7CiAKK3N0cnVjdCBSdW5Mb29wQ29udGV4dCA6IHB1YmxpYyBRT2JqZWN0
IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFJ1bkxvb3BDb250ZXh0KCkKKyAgICAgICAg
OiBydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcoZmFsc2UpCisgICAgeworICAgICAgICB0aW1lci5z
ZXRTaW5nbGVTaG90KHRydWUpOworICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lH
TkFMKHRpbWVvdXQoKSksIHRoaXMsIFNMT1QodGltZXJGaXJlZCgpKSk7CisgICAgfQorcHVibGlj
IFFfU0xPVFM6CisgICAgdm9pZCB0aW1lckZpcmVkKCk7CitwdWJsaWM6CisgICAgUUV2ZW50TG9v
cCBydW5VbnRpbExvb3A7CisgICAgUVRpbWVyIHRpbWVyOworICAgIFFFdmVudExvb3AgbW9kYWxM
b29wOworICAgIGJvb2wgcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nOworfTsKKworUV9HTE9CQUxf
U1RBVElDKFJ1bkxvb3BDb250ZXh0LCBnX2xvb3BDb250ZXh0KTsKKwordm9pZCBSdW5Mb29wQ29u
dGV4dDo6dGltZXJGaXJlZCgpCit7CisgICAgaWYgKG1vZGFsTG9vcC5pc1J1bm5pbmcoKSkgewor
ICAgICAgICBydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcgPSB0cnVlOworICAgICAgICBtb2RhbExv
b3AuZXhpdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcnVuVW50aWxMb29wLmV4
aXQoKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSgpCiB7CisgICAgUnVu
TG9vcENvbnRleHQqIGxvb3BDb250ZXh0ID0gZ19sb29wQ29udGV4dCgpOworICAgIGlmIChsb29w
Q29udGV4dC0+bW9kYWxMb29wLmlzUnVubmluZygpKSB7CisgICAgICAgIC8vIFdhaXQgZm9yIHRo
ZSBtb2RhbCBsb29wIGZpcnN0LiBXZSBvbmx5IGtpbGwgaXQgaWYgd2UgdGltZW91dC4KKyAgICAg
ICAgbG9vcENvbnRleHQtPnJ1blVudGlsTG9vcENsb3NlUGVuZGluZyA9IHRydWU7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBsb29wQ29udGV4dC0+dGltZXIuc3RvcCgpOworICAgIGxv
b3BDb250ZXh0LT5ydW5VbnRpbExvb3AuZXhpdCgpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQpAQCAtNTUsMjEgKzk3LDE4IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkKIHsKLSAgICBpZiAo
cWdldGVudigiUVRfV0VCS0lUMl9ERUJVRyIpID09ICIxIiB8fCB0aW1lb3V0ID09IG1fbm9UaW1l
b3V0KSB7Ci0gICAgICAgIC8vIE5ldmVyIHRpbWVvdXQgaWYgd2UgYXJlIGRlYnVnZ2luZyBvciBu
b3QgbWVhbnQgdG8gdGltZW91dC4KLSAgICAgICAgd2hpbGUgKCFjb25kaXRpb24pCi0gICAgICAg
ICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNzRXZlbnRzKFFFdmVudExvb3A6OkV4Y2x1ZGVV
c2VySW5wdXRFdmVudHMsIDUwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBVTlVTRURf
UEFSQU0oY29uZGl0aW9uKTsKIAotICAgIGludCB0aW1lb3V0SW5NU2VjcyA9IHRpbWVvdXQgKiAx
MDAwOwotICAgIFFFbGFwc2VkVGltZXIgdGltZXI7Ci0gICAgdGltZXIuc3RhcnQoKTsKLSAgICB3
aGlsZSAoIWNvbmRpdGlvbikgewotICAgICAgICBpZiAodGltZXIuZWxhcHNlZCgpID4gdGltZW91
dEluTVNlY3MpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFFDb3JlQXBwbGljYXRpb246
OnByb2Nlc3NFdmVudHMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cywgdGltZW91
dEluTVNlY3MgLSB0aW1lci5lbGFwc2VkKCkpOworICAgIFJ1bkxvb3BDb250ZXh0KiBsb29wQ29u
dGV4dCA9IGdfbG9vcENvbnRleHQoKTsKKyAgICBRX0FTU0VSVCghbG9vcENvbnRleHQtPnJ1blVu
dGlsTG9vcC5pc1J1bm5pbmcoKSk7CisKKyAgICBjb25zdCBib29sIHNob3VsZFRpbWVvdXQgPSAh
KHFnZXRlbnYoIlFUX1dFQktJVDJfREVCVUciKSA9PSAiMSIgfHwgdGltZW91dCA9PSBtX25vVGlt
ZW91dCk7CisgICAgaWYgKHNob3VsZFRpbWVvdXQpIHsKKyAgICAgICAgY29uc3QgaW50IHRpbWVv
dXRJbk1TZWNzID0gdGltZW91dCAqIDEwMDA7CisgICAgICAgIGxvb3BDb250ZXh0LT50aW1lci5z
dGFydCh0aW1lb3V0SW5NU2Vjcyk7CiAgICAgfQorCisgICAgbG9vcENvbnRleHQtPnJ1blVudGls
TG9vcC5leGVjKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMpOwogfQogCiBzdGF0
aWMgYm9vbCBpc0V4aXN0aW5nTGlicmFyeShjb25zdCBRU3RyaW5nJiBwYXRoKQpAQCAtMTEzLDkg
KzE1MiwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0
KCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3KiB2aWV3
KQogewotICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotICAgIHZpZXctPnNldE1vZGFsRXZlbnRM
b29wKCZldmVudExvb3ApOwotICAgIGV2ZW50TG9vcC5leGVjKFFFdmVudExvb3A6OkV4Y2x1ZGVV
c2VySW5wdXRFdmVudHMpOworICAgIFJ1bkxvb3BDb250ZXh0KiBsb29wQ29udGV4dCA9IGdfbG9v
cENvbnRleHQoKTsKKyAgICB2aWV3LT5zZXRNb2RhbEV2ZW50TG9vcCgmbG9vcENvbnRleHQtPm1v
ZGFsTG9vcCk7CisgICAgbG9vcENvbnRleHQtPm1vZGFsTG9vcC5leGVjKFFFdmVudExvb3A6OkV4
Y2x1ZGVVc2VySW5wdXRFdmVudHMpOworCisgICAgaWYgKGxvb3BDb250ZXh0LT5ydW5VbnRpbExv
b3BDbG9zZVBlbmRpbmcpCisgICAgICAgIGxvb3BDb250ZXh0LT5ydW5VbnRpbExvb3AuZXhpdCgp
OwogfQogCiBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZv
clRlc3RpbmcoKQpAQCAtMTI0LDMgKzE2Niw1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGluZygpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdU
UgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXJRdC5tb2MiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174138</attachid>
            <date>2012-11-14 05:44:21 -0800</date>
            <delta_ts>2012-11-19 01:40:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101327-20121114144220.patch</filename>
            <type>text/plain</type>
            <size>10678</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmU2MTkyN2U2MmU1ZTA3NTRjYzNmMDFhMjI0M2QwMzIx
NjY1OGRjMi4uZDJiMTBlOTIyYjViMGEzMGM2YTM5ZDQyZDc3YWJiYjk3ZmYyYzIzOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcx
IEBACisyMDEyLTExLTE0ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbUXRdW1dUUl0gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxk
IG5vdCBkbyBidXN5IHdhaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTMyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF2b2lkIGJ1c3kgd2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVu
VW50aWwgd2hpbGUgbWFraW5nCisgICAgICAgIHN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBiZWhh
dmlvciBvZiBtb2RhbCBldmVudCBsb29wcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV1RSKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV1RSKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChX
VFIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHA6
CisgICAgICAgIChUZXN0Q29udHJvbGxlcjo6UnVuTG9vcCk6IEhlbHBlciBjbGFzcyB0byBoYW5k
bGUKKyAgICAgICAgdGhlIGV2ZW50IGxvb3AgbG9naWMKKyAgICAgICAgKFdUUik6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnJ1blVudGlsKTogVXNlIFFFdmVudExvb3AgdG8gaW1w
bGVtZW50CisgICAgICAgIHRoZSBydW4gbG9vcC4gVGhpcyBpcyB0aGUgYXBwcm9wcmlhdGUgQVBJ
IHRvIHB1c2ggdGhlIFdhaXRGb3JNb3JlRXZlbnRzCisgICAgICAgIGZsYWcgdG8gUUNvcmVBcHBs
aWNhdGlvbjo6cHJvY2Vzc0V2ZW50cyBhbmQgYWxzbyBiZWluZyBhYmxlIHRvIGV4aXQgdGhlCisg
ICAgICAgIGxvb3AgaWYgd2UgaGF2ZSB0aW1lZCBvdXQuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpSdW5Mb29wOjpub3RpZnlEb25lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OlJ1bkxvb3A6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
UnVuTG9vcDo6cnVuTW9kYWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bm90aWZ5
RG9uZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d2luL1Rlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChXVFIpOgorCisyMDEyLTExLTE0ICBCYWxhenMg
S2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdW1dUUl0gVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxkIG5vdCBkbyBidXN5IHdhaXRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTMyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF2b2lkIGJ1c3kg
d2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVuVW50aWwgd2hpbGUgbWFraW5nCisgICAg
ICAgIHN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBtb2RhbCBldmVudCBsb29w
cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RD
b250cm9sbGVyUXQuY3BwOgorICAgICAgICAoVGVzdENvbnRyb2xsZXI6OlJ1bkxvb3ApOiBIZWxw
ZXIgY2xhc3MgCisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpSdW5Mb29w
OjpydW5VbnRpbCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpub3Rp
ZnlEb25lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnRpbWVyRmly
ZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6UnVuTG9vcDo6cnVuTW9kYWwpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUnVuVW50aWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVu
TW9kYWwpOgorCiAyMDEyLTExLTE0ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5z
YW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBVcGRhdGUgdGhlIEVGTCBsaXN0
IG9mIGJvdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA1NmMz
YzQ3MDIwZTI3YzY5MDQ4OTlkY2FmZTY0MmVlMDJlNGFlODg3Li4zMzJlMzNiNzBjM2Q3N2M5Yzcz
ZmQ3OTU4YWJjNTQxMDc1NmI3NjZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCkBAIC05Miw2ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBydW5UZXN0KGNvbnN0
IGNoYXIqIHBhdGhPclVSTCk7CiAKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAg
IHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250
ZXh0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1l
b3V0KTsKICAgICB2b2lkIHBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZik7CkBAIC0xODIsNiArMTgzLDExIEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV2
ZW50U2VuZGVyUHJveHk+IG1fZXZlbnRTZW5kZXJQcm94eTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oUVQpCisgICAgY2xhc3MgUnVuTG9vcDsKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisjZW5k
aWYKKwogICAgIFdvcmtRdWV1ZU1hbmFnZXIgbV93b3JrUXVldWVNYW5hZ2VyOwogfTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCmluZGV4
IGY2ODM1MWQ3YjVhMjFiNzgyYjE4ZTU4MjIyNThkOTk0NzlkM2E1M2MuLjZmNTE0ZmYyZWY3NDBl
ZmRkZDFhMmE2ZTFlNGQ1MWY0OWI4MDM2MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHAKQEAgLTU3LDYgKzU3LDEwIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgfQogfQogCit2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCiB2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCiB7CiAg
ICAgaWYgKHRpbWVvdXQgPT0gbV9ub1RpbWVvdXQpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA5MGJkYjcyNzliMDJhZjMzMjc0
N2Q1MDFlYzMxYmI1NTZhNzA3ZjRjLi40YWViNjVmYzc3M2RhNjNjODI2MzVlNjc4YjUxYmE1NDc5
MTZiMmUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJv
bGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xs
ZXJHdGsuY3BwCkBAIC01NCw2ICs1NCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUluaXRpYWxpemUoKQogewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ry
b3koKQoreworfQorCiBzdGF0aWMgZ2Jvb2xlYW4gdGltZW91dENhbGxiYWNrKGdwb2ludGVyKQog
ewogICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTDogVGVzdENvbnRyb2xsZXJSdW5Mb29wIHRpbWVk
IG91dC5cbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENv
bnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxl
ck1hYy5tbQppbmRleCBhOWU5ZjMxOTBjMGM2MzY2ZWVmZmY4YWJjMWM2ZTQ4ODgzY2U2NDZlLi5k
NmQ5YWVmOTBjYTM5MGE0MDI4YmQxMDNkOTI1MjY2NWJmNTM1ZDBjIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNDAsNiArNDAsMTAg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7CiAgICAgTlNTdHJpbmcg
Km5zQnVuZGxlUGF0aCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5idW5kbGUiXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENv
bnRyb2xsZXJRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVy
UXQuY3BwCmluZGV4IDA0ZGRiOGI3NjFjZWUzYjZhMzBlM2Q0NzQ1Zjc3NWJiZDcxYmFkNmEuLjlk
MzUxNWM4MjMxYmE1MjgzNzk5OTJjZjhmZTY4N2FhZTJiZGIwZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzIsNDQgKzMyLDEwNiBA
QAogCiAjaW5jbHVkZSA8Y3N0ZGxpYj4KICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2lu
Y2x1ZGUgPFFFbGFwc2VkVGltZXI+CiAjaW5jbHVkZSA8UUV2ZW50TG9vcD4KICNpbmNsdWRlIDxR
RmlsZUluZm8+CiAjaW5jbHVkZSA8UUxpYnJhcnk+CiAjaW5jbHVkZSA8UU9iamVjdD4KLSNpbmNs
dWRlIDxxcXVpY2t3ZWJ2aWV3X3AuaD4KKyNpbmNsdWRlIDxRVGltZXI+CiAjaW5jbHVkZSA8UXRH
bG9iYWw+CisjaW5jbHVkZSA8cXF1aWNrd2Vidmlld19wLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVFIg
ewogCi12b2lkIFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK2NsYXNzIFRlc3RDb250cm9s
bGVyOjpSdW5Mb29wIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6Cisg
ICAgUnVuTG9vcCgpOworCisgICAgdm9pZCBydW5VbnRpbChkb3VibGUgdGltZW91dCk7CisgICAg
dm9pZCBub3RpZnlEb25lKCk7CisgICAgdm9pZCBydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKTsK
K3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgdGltZXJGaXJlZCgpOworcHJpdmF0ZToKKyAgICBR
RXZlbnRMb29wIG1fcnVuVW50aWxMb29wOworICAgIFFFdmVudExvb3AgbV9tb2RhbExvb3A7Cisg
ICAgUVRpbWVyIG1fcnVuVW50aWxMb29wVGltZXI7CisgICAgYm9vbCBtX3J1blVudGlsTG9vcENs
b3NlUGVuZGluZzsKK307CisKK1Rlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpSdW5Mb29wKCkKKyAg
ICA6IG1fcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nKGZhbHNlKQogeworICAgIG1fcnVuVW50aWxM
b29wVGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsKKyAgICBRT2JqZWN0Ojpjb25uZWN0KCZtX3J1
blVudGlsTG9vcFRpbWVyLCBTSUdOQUwodGltZW91dCgpKSwgdGhpcywgU0xPVCh0aW1lckZpcmVk
KCkpKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnJ1blVudGlsKGRvdWJsZSB0aW1lb3V0KQogewot
ICAgIFFRdWlja1dlYlZpZXc6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAgIEFTU0VSVCghbV9y
dW5VbnRpbExvb3AuaXNSdW5uaW5nKCkpOworICAgIGlmICh0aW1lb3V0KSB7CisgICAgICAgIGNv
bnN0IGludCB0aW1lb3V0SW5NaWxsaVNlY3MgPSB0aW1lb3V0ICogMTAwMDsKKyAgICAgICAgbV9y
dW5VbnRpbExvb3BUaW1lci5zdGFydCh0aW1lb3V0SW5NaWxsaVNlY3MpOworICAgIH0KKyAgICBt
X3J1blVudGlsTG9vcC5leGVjKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMpOwog
fQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlv
biwgZG91YmxlIHRpbWVvdXQpCit2b2lkIFRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpub3RpZnlE
b25lKCkKIHsKLSAgICBpZiAocWdldGVudigiUVRfV0VCS0lUMl9ERUJVRyIpID09ICIxIiB8fCB0
aW1lb3V0ID09IG1fbm9UaW1lb3V0KSB7Ci0gICAgICAgIC8vIE5ldmVyIHRpbWVvdXQgaWYgd2Ug
YXJlIGRlYnVnZ2luZyBvciBub3QgbWVhbnQgdG8gdGltZW91dC4KLSAgICAgICAgd2hpbGUgKCFj
b25kaXRpb24pCi0gICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNzRXZlbnRzKFFF
dmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMsIDUwKTsKKyAgICBpZiAobV9tb2RhbExv
b3AuaXNSdW5uaW5nKCkpIHsKKyAgICAgICAgLy8gV2FpdCBmb3IgdGhlIG1vZGFsIGxvb3AgZmly
c3QuIFdlIG9ubHkga2lsbCBpdCBpZiB3ZSB0aW1lb3V0LgorICAgICAgICBtX3J1blVudGlsTG9v
cENsb3NlUGVuZGluZyA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQg
dGltZW91dEluTVNlY3MgPSB0aW1lb3V0ICogMTAwMDsKLSAgICBRRWxhcHNlZFRpbWVyIHRpbWVy
OwotICAgIHRpbWVyLnN0YXJ0KCk7Ci0gICAgd2hpbGUgKCFjb25kaXRpb24pIHsKLSAgICAgICAg
aWYgKHRpbWVyLmVsYXBzZWQoKSA+IHRpbWVvdXRJbk1TZWNzKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNzRXZlbnRzKFFFdmVudExvb3A6OkV4
Y2x1ZGVVc2VySW5wdXRFdmVudHMsIHRpbWVvdXRJbk1TZWNzIC0gdGltZXIuZWxhcHNlZCgpKTsK
KyAgICBtX3J1blVudGlsTG9vcFRpbWVyLnN0b3AoKTsKKyAgICBtX3J1blVudGlsTG9vcC5leGl0
KCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnRpbWVyRmlyZWQoKQorewor
ICAgIGlmIChtX21vZGFsTG9vcC5pc1J1bm5pbmcoKSkgeworICAgICAgICBtX3J1blVudGlsTG9v
cENsb3NlUGVuZGluZyA9IHRydWU7CisgICAgICAgIG1fbW9kYWxMb29wLmV4aXQoKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KKworICAgIG1fcnVuVW50aWxMb29wLmV4aXQoKTsKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6UnVuTG9vcDo6cnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3KiB2aWV3
KQoreworICAgIEFTU0VSVCghbV9tb2RhbExvb3AuaXNSdW5uaW5nKCkpOworICAgIHZpZXctPnNl
dE1vZGFsRXZlbnRMb29wKCZtX21vZGFsTG9vcCk7CisgICAgbV9tb2RhbExvb3AuZXhlYyhRRXZl
bnRMb29wOjpFeGNsdWRlVXNlcklucHV0RXZlbnRzKTsKKworICAgIGlmIChtX3J1blVudGlsTG9v
cENsb3NlUGVuZGluZykKKyAgICAgICAgbV9ydW5VbnRpbExvb3AuZXhpdCgpOworfQorCit2b2lk
IFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBtX3J1bkxvb3AtPm5vdGlmeURv
bmUoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sK
KyAgICBtX3J1bkxvb3AgPSBuZXcgUnVuTG9vcDsKKyAgICBRUXVpY2tXZWJWaWV3OjpwbGF0Zm9y
bUluaXRpYWxpemUoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95
KCkKK3sKKyAgICBkZWxldGUgbV9ydW5Mb29wOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7CisgICAg
VU5VU0VEX1BBUkFNKGNvbmRpdGlvbik7CisgICAgY29uc3QgYm9vbCBzaG91bGRUaW1lb3V0ID0g
IShxZ2V0ZW52KCJRVF9XRUJLSVQyX0RFQlVHIikgPT0gIjEiIHx8IHRpbWVvdXQgPT0gbV9ub1Rp
bWVvdXQpOworICAgIG1fcnVuTG9vcC0+cnVuVW50aWwoc2hvdWxkVGltZW91dCA/IHRpbWVvdXQg
OiAwKTsKIH0KIAogc3RhdGljIGJvb2wgaXNFeGlzdGluZ0xpYnJhcnkoY29uc3QgUVN0cmluZyYg
cGF0aCkKQEAgLTExMyw5ICsxNzUsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUlu
aXRpYWxpemVDb250ZXh0KCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZv
cm1XZWJWaWV3KiB2aWV3KQogewotICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotICAgIHZpZXct
PnNldE1vZGFsRXZlbnRMb29wKCZldmVudExvb3ApOwotICAgIGV2ZW50TG9vcC5leGVjKFFFdmVu
dExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMpOworICAgIHNoYXJlZCgpLm1fcnVuTG9vcC0+
cnVuTW9kYWwodmlldyk7CiB9CiAKIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUxpYnJhcnlQYXRoRm9yVGVzdGluZygpCkBAIC0xMjQsMyArMTg0LDUgQEAgY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV1RSCisKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlclF0Lm1vYyIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBi
YTRmNzUzYjQxNWVlOGM5Y2U4MGU3N2VmYWIxYWU3YmY2NTE0MmRjLi44ZjJlYWFmNDhmNGE5YjUz
MmMxNmJhNjI0ZGQ5ZjU2MmIxMWJkOTNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMjEsNiArMTIxLDEwIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgd2ViUHJvY2Vzc0NyYXNoaW5n
RXZlbnQgPSA6OkNyZWF0ZUV2ZW50QSgwLCBGQUxTRSwgRkFMU0UsIHdlYlByb2Nlc3NDcmFzaGlu
Z0V2ZW50TmFtZSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgp
Cit7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBh
dGgoKQogewogICAgIENGU3RyaW5nUmVmIGV4ZUNvbnRhaW5lclBhdGggPSBDRlVSTENvcHlGaWxl
U3lzdGVtUGF0aChDRlVSTENyZWF0ZUNvcHlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50KDAsIENG
QnVuZGxlQ29weUV4ZWN1dGFibGVVUkwoQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpKSwga0NGVVJM
V2luZG93c1BhdGhTdHlsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174914</attachid>
            <date>2012-11-19 01:40:04 -0800</date>
            <delta_ts>2012-11-21 14:46:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101327-20121119103748.patch</filename>
            <type>text/plain</type>
            <size>9620</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDBmMjc4NDgzMzcxZWIzNmMwNzE2Njc2MDQ3MDc4NWIy
NTc3NjAxMy4uNGEzYzhkNzY3ZGJkOTNlZjFjNzY1NjIwZDkzNDEyYzgwOWQzN2NiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDEyLTExLTE5ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbUXRdW1dUUl0gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxk
IG5vdCBkbyBidXN5IHdhaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTMyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF2b2lkIGJ1c3kgd2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVu
VW50aWwgd2hpbGUgbWFraW5nCisgICAgICAgIHN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBiZWhh
dmlvciBvZiBtb2RhbCBldmVudCBsb29wcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV1RSKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV1RSKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChX
VFIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHA6
CisgICAgICAgIChUZXN0Q29udHJvbGxlcjo6UnVuTG9vcCk6IEhlbHBlciBjbGFzcyB0byBoYW5k
bGUKKyAgICAgICAgdGhlIGV2ZW50IGxvb3AgbG9naWMKKyAgICAgICAgKFdUUik6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpSdW5Mb29wKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnJ1blVudGlsKTogVXNlIFFFdmVudExvb3AgdG8gaW1w
bGVtZW50CisgICAgICAgIHRoZSBydW4gbG9vcC4gVGhpcyBpcyB0aGUgYXBwcm9wcmlhdGUgQVBJ
IHRvIHB1c2ggdGhlIFdhaXRGb3JNb3JlRXZlbnRzCisgICAgICAgIGZsYWcgdG8gUUNvcmVBcHBs
aWNhdGlvbjo6cHJvY2Vzc0V2ZW50cyBhbmQgYWxzbyBiZWluZyBhYmxlIHRvIGV4aXQgdGhlCisg
ICAgICAgIGxvb3AgaWYgd2UgaGF2ZSB0aW1lZCBvdXQuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpSdW5Mb29wOjpub3RpZnlEb25lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OlJ1bkxvb3A6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
UnVuTG9vcDo6cnVuTW9kYWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bm90aWZ5
RG9uZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d2luL1Rlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChXVFIpOgorCiAyMDEyLTExLTE4ICBLeXVuZ1Rh
ZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE5vdCB0byBpbmNs
dWRlICJld2tfdmlld19wcml2YXRlLmgiIGluIFRvb2xzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggNTZjM2M0NzAyMGUyN2M2OTA0ODk5ZGNhZmU2NDJlZTAyZTRh
ZTg4Ny4uMzMyZTMzYjcwYzNkNzdjOWM3M2ZkNzk1OGFiYzU0MTA3NTZiNzY2YyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtOTIsNiArOTIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiBwYXRoT3JVUkwpOwogCiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpOwogICAgIHZvaWQgcGxhdGZvcm1SdW5VbnRp
bChib29sJiBkb25lLCBkb3VibGUgdGltZW91dCk7CiAgICAgdm9pZCBwbGF0Zm9ybURpZENvbW1p
dExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpOwpAQCAtMTgyLDYgKzE4MywxMSBA
QCBwcml2YXRlOgogICAgIE93blB0cjxFdmVudFNlbmRlclByb3h5PiBtX2V2ZW50U2VuZGVyUHJv
eHk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFFUKQorICAgIGNsYXNzIFJ1bkxvb3A7CisgICAg
UnVuTG9vcCogbV9ydW5Mb29wOworI2VuZGlmCisKICAgICBXb3JrUXVldWVNYW5hZ2VyIG1fd29y
a1F1ZXVlTWFuYWdlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
ZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rl
c3RDb250cm9sbGVyRWZsLmNwcAppbmRleCBmNjgzNTFkN2I1YTIxYjc4MmIxOGU1ODIyMjU4ZDk5
NDc5ZDNhNTNjLi42ZjUxNGZmMmVmNzQwZWZkZGQxYTJhNmUxZTRkNTFmNDliODAzNjE0IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCkBA
IC01Nyw2ICs1NywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQogICAgIH0KIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sK
K30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRp
b24sIGRvdWJsZSB0aW1lb3V0KQogewogICAgIGlmICh0aW1lb3V0ID09IG1fbm9UaW1lb3V0KSB7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0
ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAK
aW5kZXggOTBiZGI3Mjc5YjAyYWYzMzI3NDdkNTAxZWMzMWJiNTU2YTcwN2Y0Yy4uNGFlYjY1ZmM3
NzNkYTYzYzgyNjM1ZTY3OGI1MWJhNTQ3OTE2YjJlMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTQsNiArNTQsMTAgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KIAordm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwogc3RhdGljIGdib29sZWFuIHRp
bWVvdXRDYWxsYmFjayhncG9pbnRlcikKIHsKICAgICBmcHJpbnRmKHN0ZGVyciwgIkZBSUw6IFRl
c3RDb250cm9sbGVyUnVuTG9vcCB0aW1lZCBvdXQuXG4iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggM2I2OGEwMDczYmFlODVhZTE0
N2FlMzFlYzYwMWI5YzE4Yzc0NDEwYS4uZmJhZTI1NjE3ZGI5OTU0OWU4MjhhNDRkZGQ2NWM4NTc2
NWRkYjlmNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRy
b2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xs
ZXJNYWMubW0KQEAgLTQwLDYgKzQwLDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCiB7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJv
eSgpCit7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRs
ZVBhdGgoKQogewogICAgIE5TU3RyaW5nICpuc0J1bmRsZVBhdGggPSBbW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBidW5kbGVQYXRoXSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIl07CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCAwNGRkYjhiNzYxY2VlM2I2YTMw
ZTNkNDc0NWY3NzViYmQ3MWJhZDZhLi45ZDM1MTVjODIzMWJhNTI4Mzc5OTkyY2Y4ZmU2ODdhYWUy
YmRiMGQ5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9s
bGVyUXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJR
dC5jcHAKQEAgLTMyLDQ0ICszMiwxMDYgQEAKIAogI2luY2x1ZGUgPGNzdGRsaWI+CiAjaW5jbHVk
ZSA8UUNvcmVBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxRRWxhcHNlZFRpbWVyPgogI2luY2x1ZGUg
PFFFdmVudExvb3A+CiAjaW5jbHVkZSA8UUZpbGVJbmZvPgogI2luY2x1ZGUgPFFMaWJyYXJ5Pgog
I2luY2x1ZGUgPFFPYmplY3Q+Ci0jaW5jbHVkZSA8cXF1aWNrd2Vidmlld19wLmg+CisjaW5jbHVk
ZSA8UVRpbWVyPgogI2luY2x1ZGUgPFF0R2xvYmFsPgorI2luY2x1ZGUgPHFxdWlja3dlYnZpZXdf
cC5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5
RG9uZSgpCitjbGFzcyBUZXN0Q29udHJvbGxlcjo6UnVuTG9vcCA6IHB1YmxpYyBRT2JqZWN0IHsK
KyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFJ1bkxvb3AoKTsKKworICAgIHZvaWQgcnVuVW50
aWwoZG91YmxlIHRpbWVvdXQpOworICAgIHZvaWQgbm90aWZ5RG9uZSgpOworICAgIHZvaWQgcnVu
TW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHRpbWVy
RmlyZWQoKTsKK3ByaXZhdGU6CisgICAgUUV2ZW50TG9vcCBtX3J1blVudGlsTG9vcDsKKyAgICBR
RXZlbnRMb29wIG1fbW9kYWxMb29wOworICAgIFFUaW1lciBtX3J1blVudGlsTG9vcFRpbWVyOwor
ICAgIGJvb2wgbV9ydW5VbnRpbExvb3BDbG9zZVBlbmRpbmc7Cit9OworCitUZXN0Q29udHJvbGxl
cjo6UnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3J1blVudGlsTG9vcENsb3NlUGVuZGluZyhm
YWxzZSkKIHsKKyAgICBtX3J1blVudGlsTG9vcFRpbWVyLnNldFNpbmdsZVNob3QodHJ1ZSk7Cisg
ICAgUU9iamVjdDo6Y29ubmVjdCgmbV9ydW5VbnRpbExvb3BUaW1lciwgU0lHTkFMKHRpbWVvdXQo
KSksIHRoaXMsIFNMT1QodGltZXJGaXJlZCgpKSk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpydW5V
bnRpbChkb3VibGUgdGltZW91dCkKIHsKLSAgICBRUXVpY2tXZWJWaWV3OjpwbGF0Zm9ybUluaXRp
YWxpemUoKTsKKyAgICBBU1NFUlQoIW1fcnVuVW50aWxMb29wLmlzUnVubmluZygpKTsKKyAgICBp
ZiAodGltZW91dCkgeworICAgICAgICBjb25zdCBpbnQgdGltZW91dEluTWlsbGlTZWNzID0gdGlt
ZW91dCAqIDEwMDA7CisgICAgICAgIG1fcnVuVW50aWxMb29wVGltZXIuc3RhcnQodGltZW91dElu
TWlsbGlTZWNzKTsKKyAgICB9CisgICAgbV9ydW5VbnRpbExvb3AuZXhlYyhRRXZlbnRMb29wOjpF
eGNsdWRlVXNlcklucHV0RXZlbnRzKTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1SdW5VbnRpbChib29sJiBjb25kaXRpb24sIGRvdWJsZSB0aW1lb3V0KQordm9pZCBUZXN0Q29u
dHJvbGxlcjo6UnVuTG9vcDo6bm90aWZ5RG9uZSgpCiB7Ci0gICAgaWYgKHFnZXRlbnYoIlFUX1dF
QktJVDJfREVCVUciKSA9PSAiMSIgfHwgdGltZW91dCA9PSBtX25vVGltZW91dCkgewotICAgICAg
ICAvLyBOZXZlciB0aW1lb3V0IGlmIHdlIGFyZSBkZWJ1Z2dpbmcgb3Igbm90IG1lYW50IHRvIHRp
bWVvdXQuCi0gICAgICAgIHdoaWxlICghY29uZGl0aW9uKQotICAgICAgICAgICAgUUNvcmVBcHBs
aWNhdGlvbjo6cHJvY2Vzc0V2ZW50cyhRRXZlbnRMb29wOjpFeGNsdWRlVXNlcklucHV0RXZlbnRz
LCA1MCk7CisgICAgaWYgKG1fbW9kYWxMb29wLmlzUnVubmluZygpKSB7CisgICAgICAgIC8vIFdh
aXQgZm9yIHRoZSBtb2RhbCBsb29wIGZpcnN0LiBXZSBvbmx5IGtpbGwgaXQgaWYgd2UgdGltZW91
dC4KKyAgICAgICAgbV9ydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaW50IHRpbWVvdXRJbk1TZWNzID0gdGltZW91dCAqIDEwMDA7
Ci0gICAgUUVsYXBzZWRUaW1lciB0aW1lcjsKLSAgICB0aW1lci5zdGFydCgpOwotICAgIHdoaWxl
ICghY29uZGl0aW9uKSB7Ci0gICAgICAgIGlmICh0aW1lci5lbGFwc2VkKCkgPiB0aW1lb3V0SW5N
U2VjcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6cHJv
Y2Vzc0V2ZW50cyhRRXZlbnRMb29wOjpFeGNsdWRlVXNlcklucHV0RXZlbnRzLCB0aW1lb3V0SW5N
U2VjcyAtIHRpbWVyLmVsYXBzZWQoKSk7CisgICAgbV9ydW5VbnRpbExvb3BUaW1lci5zdG9wKCk7
CisgICAgbV9ydW5VbnRpbExvb3AuZXhpdCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpS
dW5Mb29wOjp0aW1lckZpcmVkKCkKK3sKKyAgICBpZiAobV9tb2RhbExvb3AuaXNSdW5uaW5nKCkp
IHsKKyAgICAgICAgbV9ydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcgPSB0cnVlOworICAgICAgICBt
X21vZGFsTG9vcC5leGl0KCk7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX3J1blVu
dGlsTG9vcC5leGl0KCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnJ1bk1v
ZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykKK3sKKyAgICBBU1NFUlQoIW1fbW9kYWxMb29wLmlz
UnVubmluZygpKTsKKyAgICB2aWV3LT5zZXRNb2RhbEV2ZW50TG9vcCgmbV9tb2RhbExvb3ApOwor
ICAgIG1fbW9kYWxMb29wLmV4ZWMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cyk7
CisKKyAgICBpZiAobV9ydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcpCisgICAgICAgIG1fcnVuVW50
aWxMb29wLmV4aXQoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSgpCit7
CisgICAgbV9ydW5Mb29wLT5ub3RpZnlEb25lKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbV9ydW5Mb29wID0gbmV3IFJ1bkxvb3A7Cisg
ICAgUVF1aWNrV2ViVmlldzo6cGxhdGZvcm1Jbml0aWFsaXplKCk7Cit9CisKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCit7CisgICAgZGVsZXRlIG1fcnVuTG9vcDsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRpb24s
IGRvdWJsZSB0aW1lb3V0KQoreworICAgIFVOVVNFRF9QQVJBTShjb25kaXRpb24pOworICAgIGNv
bnN0IGJvb2wgc2hvdWxkVGltZW91dCA9ICEocWdldGVudigiUVRfV0VCS0lUMl9ERUJVRyIpID09
ICIxIiB8fCB0aW1lb3V0ID09IG1fbm9UaW1lb3V0KTsKKyAgICBtX3J1bkxvb3AtPnJ1blVudGls
KHNob3VsZFRpbWVvdXQgPyB0aW1lb3V0IDogMCk7CiB9CiAKIHN0YXRpYyBib29sIGlzRXhpc3Rp
bmdMaWJyYXJ5KGNvbnN0IFFTdHJpbmcmIHBhdGgpCkBAIC0xMTMsOSArMTc1LDcgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCiAKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykKIHsKLSAgICBRRXZlbnRM
b29wIGV2ZW50TG9vcDsKLSAgICB2aWV3LT5zZXRNb2RhbEV2ZW50TG9vcCgmZXZlbnRMb29wKTsK
LSAgICBldmVudExvb3AuZXhlYyhRRXZlbnRMb29wOjpFeGNsdWRlVXNlcklucHV0RXZlbnRzKTsK
KyAgICBzaGFyZWQoKS5tX3J1bkxvb3AtPnJ1bk1vZGFsKHZpZXcpOwogfQogCiBjb25zdCBjaGFy
KiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQpAQCAtMTI0
LDMgKzE4NCw1IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQ
YXRoRm9yVGVzdGluZygpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgorCisjaW5jbHVkZSAiVGVz
dENvbnRyb2xsZXJRdC5tb2MiCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dp
bi9UZXN0Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYmE0Zjc1M2I0MTVlZThjOWNlODBlNzdlZmFiMWFlN2Jm
NjUxNDJkYy4uOGYyZWFhZjQ4ZjRhOWI1MzJjMTZiYTYyNGRkOWY1NjJiMTFiZDkzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcApAQCAt
MTIxLDYgKzEyMSwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQogICAgIHdlYlByb2Nlc3NDcmFzaGluZ0V2ZW50ID0gOjpDcmVhdGVFdmVudEEoMCwgRkFMU0Us
IEZBTFNFLCB3ZWJQcm9jZXNzQ3Jhc2hpbmdFdmVudE5hbWUpOwogfQogCit2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpp
bml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQYXRoKCkKIHsKICAgICBDRlN0cmluZ1JlZiBleGVDb250
YWluZXJQYXRoID0gQ0ZVUkxDb3B5RmlsZVN5c3RlbVBhdGgoQ0ZVUkxDcmVhdGVDb3B5RGVsZXRp
bmdMYXN0UGF0aENvbXBvbmVudCgwLCBDRkJ1bmRsZUNvcHlFeGVjdXRhYmxlVVJMKENGQnVuZGxl
R2V0TWFpbkJ1bmRsZSgpKSksIGtDRlVSTFdpbmRvd3NQYXRoU3R5bGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175526</attachid>
            <date>2012-11-21 14:46:26 -0800</date>
            <delta_ts>2012-11-22 01:45:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101327-20121121234412.patch</filename>
            <type>text/plain</type>
            <size>10245</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjkyZGRmZjc4ZjkxYzA4YWE3MWIwOWVlNGUzNzgxZGQx
Yzg1Yzg2OC4uZTJhZjAyMDU1ZDI2NDhjMTJlMmUzNDMzZjRmNDkxMDFmNGQxNDJkZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDEyLTExLTIxICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbUXRdW1dUUl0gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwgc2hvdWxk
IG5vdCBkbyBidXN5IHdhaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTMyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEF2b2lkIGJ1c3kgd2FpdGluZyBmb3IgZXZlbnRzIGluIHBsYXRmb3JtUnVu
VW50aWwgd2hpbGUgbWFraW5nCisgICAgICAgIHN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBiZWhh
dmlvciBvZiBtb2RhbCBldmVudCBsb29wcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6flRlc3RD
b250cm9sbGVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6
CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9l
ZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdUUik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdUUik6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoVGVzdENv
bnRyb2xsZXI6OlJ1bkxvb3ApOiBIZWxwZXIgY2xhc3MgdG8gaGFuZGxlCisgICAgICAgIHRoZSBl
dmVudCBsb29wIGxvZ2ljCisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6UnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpS
dW5Mb29wOjpydW5VbnRpbCk6IFVzZSBRRXZlbnRMb29wIHRvIGltcGxlbWVudAorICAgICAgICB0
aGUgcnVuIGxvb3AuIFRoaXMgaXMgdGhlIGFwcHJvcHJpYXRlIEFQSSB0byBwdXNoIHRoZSBXYWl0
Rm9yTW9yZUV2ZW50cworICAgICAgICBmbGFnIHRvIFFDb3JlQXBwbGljYXRpb246OnByb2Nlc3NF
dmVudHMgYW5kIGFsc28gYmVpbmcgYWJsZSB0byBleGl0IHRoZQorICAgICAgICBsb29wIGlmIHdl
IGhhdmUgdGltZWQgb3V0LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6UnVuTG9vcDo6
bm90aWZ5RG9uZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjp0aW1l
ckZpcmVkKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlJ1bkxvb3A6OnJ1bk1vZGFs
KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUpOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnJ1bk1vZGFsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxl
cldpbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kp
OgorICAgICAgICAoV1RSKToKKwogMjAxMi0xMS0yMSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBDbGVhciBNb3VzZVByZXNzZWQgc3RhdGUgb24gY29udGV4
dCBtZW51IHRvIGF2b2lkIGluaXRpYXRpbmcgYSBkcmFnCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDE0NWMyNzA4NzQzM2M1OGM1MDA1ZWZiMGY2NjQ4OGE4
NDM1ZTMzZTguLjBlNDdmM2MyNDA1NzhhNDkxZjhlYzQzNWZjNGM2YzVlZjg1MmM3YjAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDksNiArMTA5LDcg
QEAgVGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAKIFRlc3RDb250cm9sbGVyOjp+VGVzdENvbnRyb2xsZXIoKQogeworICAgIHBsYXRm
b3JtRGVzdHJveSgpOwogfQogCiBzdGF0aWMgV0tSZWN0IGdldFdpbmRvd0ZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCmluZGV4IDU2YzNjNDcwMjBlMjdjNjkwNDg5OWRjYWZlNjQyZWUwMmU0YWU4
ODcuLjMzMmUzM2I3MGMzZDc3YzljNzNmZDc5NThhYmM1NDEwNzU2Yjc2NmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTkyLDYgKzkyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogcGF0aE9yVVJMKTsKIAogICAgIHZvaWQgcGxh
dGZvcm1Jbml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKICAgICB2b2lk
IHBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKTsKICAgICB2b2lkIHBsYXRmb3JtUnVuVW50aWwo
Ym9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQpOwogICAgIHZvaWQgcGxhdGZvcm1EaWRDb21taXRM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKTsKQEAgLTE4Miw2ICsxODMsMTEgQEAg
cHJpdmF0ZToKICAgICBPd25QdHI8RXZlbnRTZW5kZXJQcm94eT4gbV9ldmVudFNlbmRlclByb3h5
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkKKyAgICBjbGFzcyBSdW5Mb29wOworICAgIFJ1
bkxvb3AqIG1fcnVuTG9vcDsKKyNlbmRpZgorCiAgICAgV29ya1F1ZXVlTWFuYWdlciBtX3dvcmtR
dWV1ZU1hbmFnZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Vm
bC9UZXN0Q29udHJvbGxlckVmbC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0
Q29udHJvbGxlckVmbC5jcHAKaW5kZXggZjY4MzUxZDdiNWEyMWI3ODJiMThlNTgyMjI1OGQ5OTQ3
OWQzYTUzYy4uNmY1MTRmZjJlZjc0MGVmZGRkMWEyYTZlMWU0ZDUxZjQ5YjgwMzYxNCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcApAQCAt
NTcsNiArNTcsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
ICAgICB9CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCit7Cit9
CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9u
LCBkb3VibGUgdGltZW91dCkKIHsKICAgICBpZiAodGltZW91dCA9PSBtX25vVGltZW91dCkgewpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCmlu
ZGV4IDkwYmRiNzI3OWIwMmFmMzMyNzQ3ZDUwMWVjMzFiYjU1NmE3MDdmNGMuLjRhZWI2NWZjNzcz
ZGE2M2M4MjYzNWU2NzhiNTFiYTU0NzkxNmIyZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTU0LDYgKzU0LDEwIEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9CiAKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCit7Cit9CisKIHN0YXRpYyBnYm9vbGVhbiB0aW1l
b3V0Q2FsbGJhY2soZ3BvaW50ZXIpCiB7CiAgICAgZnByaW50ZihzdGRlcnIsICJGQUlMOiBUZXN0
Q29udHJvbGxlclJ1bkxvb3AgdGltZWQgb3V0LlxuIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDNiNjhhMDA3M2JhZTg1YWUxNDdh
ZTMxZWM2MDFiOWMxOGM3NDQxMGEuLmZiYWUyNTYxN2RiOTk1NDllODI4YTQ0ZGRkNjVjODU3NjVk
ZGI5ZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVy
TWFjLm1tCkBAIC00MCw2ICs0MCwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUlu
aXRpYWxpemUoKQogewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3ko
KQoreworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQ
YXRoKCkKIHsKICAgICBOU1N0cmluZyAqbnNCdW5kbGVQYXRoID0gW1tbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gYnVuZGxlUGF0aF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggMDRkZGI4Yjc2MWNlZTNiNmEzMGUz
ZDQ3NDVmNzc1YmJkNzFiYWQ2YS4uOWQzNTE1YzgyMzFiYTUyODM3OTk5MmNmOGZlNjg3YWFlMmJk
YjBkOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxl
clF0LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQu
Y3BwCkBAIC0zMiw0NCArMzIsMTA2IEBACiAKICNpbmNsdWRlIDxjc3RkbGliPgogI2luY2x1ZGUg
PFFDb3JlQXBwbGljYXRpb24+Ci0jaW5jbHVkZSA8UUVsYXBzZWRUaW1lcj4KICNpbmNsdWRlIDxR
RXZlbnRMb29wPgogI2luY2x1ZGUgPFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRTGlicmFyeT4KICNp
bmNsdWRlIDxRT2JqZWN0PgotI2luY2x1ZGUgPHFxdWlja3dlYnZpZXdfcC5oPgorI2luY2x1ZGUg
PFFUaW1lcj4KICNpbmNsdWRlIDxRdEdsb2JhbD4KKyNpbmNsdWRlIDxxcXVpY2t3ZWJ2aWV3X3Au
aD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURv
bmUoKQorY2xhc3MgVGVzdENvbnRyb2xsZXI6OlJ1bkxvb3AgOiBwdWJsaWMgUU9iamVjdCB7Cisg
ICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBSdW5Mb29wKCk7CisKKyAgICB2b2lkIHJ1blVudGls
KGRvdWJsZSB0aW1lb3V0KTsKKyAgICB2b2lkIG5vdGlmeURvbmUoKTsKKyAgICB2b2lkIHJ1bk1v
ZGFsKFBsYXRmb3JtV2ViVmlldyopOworcHVibGljIFFfU0xPVFM6CisgICAgdm9pZCB0aW1lckZp
cmVkKCk7Citwcml2YXRlOgorICAgIFFFdmVudExvb3AgbV9ydW5VbnRpbExvb3A7CisgICAgUUV2
ZW50TG9vcCBtX21vZGFsTG9vcDsKKyAgICBRVGltZXIgbV9ydW5VbnRpbExvb3BUaW1lcjsKKyAg
ICBib29sIG1fcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nOworfTsKKworVGVzdENvbnRyb2xsZXI6
OlJ1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV9ydW5VbnRpbExvb3BDbG9zZVBlbmRpbmcoZmFs
c2UpCiB7CisgICAgbV9ydW5VbnRpbExvb3BUaW1lci5zZXRTaW5nbGVTaG90KHRydWUpOworICAg
IFFPYmplY3Q6OmNvbm5lY3QoJm1fcnVuVW50aWxMb29wVGltZXIsIFNJR05BTCh0aW1lb3V0KCkp
LCB0aGlzLCBTTE9UKHRpbWVyRmlyZWQoKSkpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQordm9pZCBUZXN0Q29udHJvbGxlcjo6UnVuTG9vcDo6cnVuVW50
aWwoZG91YmxlIHRpbWVvdXQpCiB7Ci0gICAgUVF1aWNrV2ViVmlldzo6cGxhdGZvcm1Jbml0aWFs
aXplKCk7CisgICAgQVNTRVJUKCFtX3J1blVudGlsTG9vcC5pc1J1bm5pbmcoKSk7CisgICAgaWYg
KHRpbWVvdXQpIHsKKyAgICAgICAgY29uc3QgaW50IHRpbWVvdXRJbk1pbGxpU2VjcyA9IHRpbWVv
dXQgKiAxMDAwOworICAgICAgICBtX3J1blVudGlsTG9vcFRpbWVyLnN0YXJ0KHRpbWVvdXRJbk1p
bGxpU2Vjcyk7CisgICAgfQorICAgIG1fcnVuVW50aWxMb29wLmV4ZWMoUUV2ZW50TG9vcDo6RXhj
bHVkZVVzZXJJbnB1dEV2ZW50cyk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OlJ1bkxvb3A6Om5vdGlmeURvbmUoKQogewotICAgIGlmIChxZ2V0ZW52KCJRVF9XRUJL
SVQyX0RFQlVHIikgPT0gIjEiIHx8IHRpbWVvdXQgPT0gbV9ub1RpbWVvdXQpIHsKLSAgICAgICAg
Ly8gTmV2ZXIgdGltZW91dCBpZiB3ZSBhcmUgZGVidWdnaW5nIG9yIG5vdCBtZWFudCB0byB0aW1l
b3V0LgotICAgICAgICB3aGlsZSAoIWNvbmRpdGlvbikKLSAgICAgICAgICAgIFFDb3JlQXBwbGlj
YXRpb246OnByb2Nlc3NFdmVudHMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cywg
NTApOworICAgIGlmIChtX21vZGFsTG9vcC5pc1J1bm5pbmcoKSkgeworICAgICAgICAvLyBXYWl0
IGZvciB0aGUgbW9kYWwgbG9vcCBmaXJzdC4gV2Ugb25seSBraWxsIGl0IGlmIHdlIHRpbWVvdXQu
CisgICAgICAgIG1fcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGludCB0aW1lb3V0SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOwot
ICAgIFFFbGFwc2VkVGltZXIgdGltZXI7Ci0gICAgdGltZXIuc3RhcnQoKTsKLSAgICB3aGlsZSAo
IWNvbmRpdGlvbikgewotICAgICAgICBpZiAodGltZXIuZWxhcHNlZCgpID4gdGltZW91dEluTVNl
Y3MpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFFDb3JlQXBwbGljYXRpb246OnByb2Nl
c3NFdmVudHMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cywgdGltZW91dEluTVNl
Y3MgLSB0aW1lci5lbGFwc2VkKCkpOworICAgIG1fcnVuVW50aWxMb29wVGltZXIuc3RvcCgpOwor
ICAgIG1fcnVuVW50aWxMb29wLmV4aXQoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6UnVu
TG9vcDo6dGltZXJGaXJlZCgpCit7CisgICAgaWYgKG1fbW9kYWxMb29wLmlzUnVubmluZygpKSB7
CisgICAgICAgIG1fcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgbV9t
b2RhbExvb3AuZXhpdCgpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgbV9ydW5VbnRp
bExvb3AuZXhpdCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpSdW5Mb29wOjpydW5Nb2Rh
bChQbGF0Zm9ybVdlYlZpZXcqIHZpZXcpCit7CisgICAgQVNTRVJUKCFtX21vZGFsTG9vcC5pc1J1
bm5pbmcoKSk7CisgICAgdmlldy0+c2V0TW9kYWxFdmVudExvb3AoJm1fbW9kYWxMb29wKTsKKyAg
ICBtX21vZGFsTG9vcC5leGVjKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMpOwor
CisgICAgaWYgKG1fcnVuVW50aWxMb29wQ2xvc2VQZW5kaW5nKQorICAgICAgICBtX3J1blVudGls
TG9vcC5leGl0KCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQorewor
ICAgIG1fcnVuTG9vcC0+bm90aWZ5RG9uZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG1fcnVuTG9vcCA9IG5ldyBSdW5Mb29wOworICAg
IFFRdWlja1dlYlZpZXc6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpOworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworICAgIGRlbGV0ZSBtX3J1bkxvb3A7Cit9CisK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBk
b3VibGUgdGltZW91dCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29uZGl0aW9uKTsKKyAgICBjb25z
dCBib29sIHNob3VsZFRpbWVvdXQgPSAhKHFnZXRlbnYoIlFUX1dFQktJVDJfREVCVUciKSA9PSAi
MSIgfHwgdGltZW91dCA9PSBtX25vVGltZW91dCk7CisgICAgbV9ydW5Mb29wLT5ydW5VbnRpbChz
aG91bGRUaW1lb3V0ID8gdGltZW91dCA6IDApOwogfQogCiBzdGF0aWMgYm9vbCBpc0V4aXN0aW5n
TGlicmFyeShjb25zdCBRU3RyaW5nJiBwYXRoKQpAQCAtMTEzLDkgKzE3NSw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKQogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqIHZpZXcpCiB7Ci0gICAgUUV2ZW50TG9v
cCBldmVudExvb3A7Ci0gICAgdmlldy0+c2V0TW9kYWxFdmVudExvb3AoJmV2ZW50TG9vcCk7Ci0g
ICAgZXZlbnRMb29wLmV4ZWMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cyk7Cisg
ICAgc2hhcmVkKCkubV9ydW5Mb29wLT5ydW5Nb2RhbCh2aWV3KTsKIH0KIAogY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKQEAgLTEyNCwz
ICsxODQsNSBAQCBjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0
aEZvclRlc3RpbmcoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKKworI2luY2x1ZGUgIlRlc3RD
b250cm9sbGVyUXQubW9jIgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4v
VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENv
bnRyb2xsZXJXaW4uY3BwCmluZGV4IGJhNGY3NTNiNDE1ZWU4YzljZTgwZTc3ZWZhYjFhZTdiZjY1
MTQyZGMuLjhmMmVhYWY0OGY0YTliNTMyYzE2YmE2MjRkZDlmNTYyYjExYmQ5M2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTEy
MSw2ICsxMjEsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
ICAgICB3ZWJQcm9jZXNzQ3Jhc2hpbmdFdmVudCA9IDo6Q3JlYXRlRXZlbnRBKDAsIEZBTFNFLCBG
QUxTRSwgd2ViUHJvY2Vzc0NyYXNoaW5nRXZlbnROYW1lKTsKIH0KIAordm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7CiAgICAgQ0ZTdHJpbmdSZWYgZXhlQ29udGFp
bmVyUGF0aCA9IENGVVJMQ29weUZpbGVTeXN0ZW1QYXRoKENGVVJMQ3JlYXRlQ29weURlbGV0aW5n
TGFzdFBhdGhDb21wb25lbnQoMCwgQ0ZCdW5kbGVDb3B5RXhlY3V0YWJsZVVSTChDRkJ1bmRsZUdl
dE1haW5CdW5kbGUoKSkpLCBrQ0ZVUkxXaW5kb3dzUGF0aFN0eWxlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>