<?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>103259</bug_id>
          
          <creation_ts>2012-11-26 08:28:36 -0800</creation_ts>
          <short_desc>Numeric identifiers of events are not guaranteed to be unique</short_desc>
          <delta_ts>2019-02-06 09:18:42 -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>DOM</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cosmin Truta">ctruta</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775499</commentid>
    <comment_count>0</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-26 08:28:36 -0800</bug_when>
    <thetext>The results of setTimeout, setInterval and navigator.geolocation.watchPosition are positive integer values extracted from a simple circular sequential number generator, whose uniqueness can be guaranteed for no more than 2^31 calls to any of these functions. In order to provide this guarantee beyond this limit, we repeatedly ask for the next sequential id until we get one that&apos;s not used already.

With this solution we fix a FIXME note.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775535</commentid>
    <comment_count>1</comment_count>
      <attachid>176014</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-26 09:10:46 -0800</bug_when>
    <thetext>Created attachment 176014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775540</commentid>
    <comment_count>2</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-26 09:13:43 -0800</bug_when>
    <thetext>+Alexey
I addressed a FIXME note which I had originally added at his request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777039</commentid>
    <comment_count>3</comment_count>
      <attachid>176014</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-27 11:36:10 -0800</bug_when>
    <thetext>Comment on attachment 176014
Patch

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

&gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:183
&gt; +    bool result = m_idToNotifierMap.add(id, notifier.get()).isNewEntry;

Won&apos;t this add() call overwrite an entry in m_idToNotifierMap on collision?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777469</commentid>
    <comment_count>4</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-27 19:48:08 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Won&apos;t this add() call overwrite an entry in m_idToNotifierMap on collision?

The original call (m_timeouts.set) used to. The new one (m_timeouts.add) does not.
That is, essentially, the difference between HashMap::set and HashMap::add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777472</commentid>
    <comment_count>5</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-27 19:51:47 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; The original call (m_timeouts.set) used to. The new one (m_timeouts.add) does not.

Sorry, I meant to refer to m_idToNotifierMap. In fact, the comment above applies both to m_idToNotifierMap and m_timeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777475</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-27 20:03:52 -0800</bug_when>
    <thetext>&gt; That is, essentially, the difference between HashMap::set and HashMap::add.

Why does add() return &quot;isNewEntry&quot; if it doesn&apos;t overwrite?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777484</commentid>
    <comment_count>7</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-27 20:31:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Why does add() return &quot;isNewEntry&quot; if it doesn&apos;t overwrite?

Both HashMap::set and HashMap::add return an object of type HashTableType::AddResult, which is an (iterator, isNewEntry) tuple.
The iterator member points to the newly-added or already-existing object (depending on what gets called); the isNewEntry member is true if a new object has just been set or added, and false in case of replacement (for set) or failure (for add).

See the difference in the implementation of HashMap::set and HashMap::add. They both call HashMap::inlineAdd; but the difference is that HashMap::add does nothing on failure, while HashMap::set does the following:

    if (!result.isNewEntry) {
        // The inlineAdd call above found an existing hash table entry; we need to set the mapped value.
        MappedTraits::store(mapped, result.iterator-&gt;second);
    }

In my patch, by replacing HashMap::set with HashMap::add, I no longer execute the above code, leaving the original key/value pair intact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779538</commentid>
    <comment_count>8</comment_count>
      <attachid>176838</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-29 15:46:29 -0800</bug_when>
    <thetext>Created attachment 176838
Patch

After discussing offline with Alexey about various alternative names for the &quot;result&quot; variable, I eventually opted for &quot;addSucceeded&quot;. I found out this is a common naming pattern in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779613</commentid>
    <comment_count>9</comment_count>
      <attachid>176838</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-29 17:10:48 -0800</bug_when>
    <thetext>Comment on attachment 176838
Patch

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

review- because of the strange RefPtr local variable thing; otherwise looks OK

&gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:186
&gt; +    bool addSucceeded = m_idToNotifierMap.add(id, notifier.get()).isNewEntry;
&gt; +    if (addSucceeded)
&gt; +        m_notifierToIdMap.set(notifier.release(), id);
&gt; +    return addSucceeded;

I would write it this way:

    if (!m_idToNotifierMap.add(id, notifier.get()).isNewEntry)
        return false;
    m_notifierToIdMap.set(notifier.release(), id);
    return true;

&gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:321
&gt; +        RefPtr&lt;GeoNotifier&gt; passNotifier = notifier;
&gt; +        success = m_watchers.add(watchID, passNotifier.release());

This should just be:

    success = m_watches.add(watchID, notifier);

There is no need for the passNotifier local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779746</commentid>
    <comment_count>10</comment_count>
      <attachid>176889</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2012-11-29 19:24:52 -0800</bug_when>
    <thetext>Created attachment 176889
Patch

(In reply to comment #9)
Done; and I simplified it further, by removing the &quot;success&quot; variable.
In addition, I made the &quot;unlikely&quot; comment accessible not only to the reader, but also to the compiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832305</commentid>
    <comment_count>11</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-02-13 13:50:41 -0800</bug_when>
    <thetext>I rerun the tests with my patch on today&apos;s master, and they are still passing. May I please have a review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832336</commentid>
    <comment_count>12</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2013-02-13 14:16:28 -0800</bug_when>
    <thetext>+Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833293</commentid>
    <comment_count>13</comment_count>
      <attachid>176889</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-14 11:56:15 -0800</bug_when>
    <thetext>Comment on attachment 176889
Patch

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

&gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:318
&gt; +    } while (UNLIKELY(!m_watchers.add(watchID, notifier)));

Please don&apos;t put this UNLIKELY here. It&apos;s not hot code, and there is no need to add visual noise to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833337</commentid>
    <comment_count>14</comment_count>
      <attachid>188409</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2013-02-14 12:53:16 -0800</bug_when>
    <thetext>Created attachment 188409
Patch

Thank you for the review. I removed UNLIKELY as you requested.
Could you please cq+ the updated patch for me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833379</commentid>
    <comment_count>15</comment_count>
      <attachid>188409</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 13:51:00 -0800</bug_when>
    <thetext>Comment on attachment 188409
Patch

Clearing flags on attachment: 188409

Committed r142909: &lt;http://trac.webkit.org/changeset/142909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833380</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 13:51:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503228</commentid>
    <comment_count>17</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:18:42 -0800</bug_when>
    <thetext>Mass move bugs into the DOM component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176014</attachid>
            <date>2012-11-26 09:10:46 -0800</date>
            <delta_ts>2012-11-29 15:46:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>9150</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YzkyZWY0MmQuLmVlMzMxY2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDEyLTExLTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAcmltLmNvbT4KKworICAg
ICAgICBOdW1lcmljIGlkZW50aWZpZXJzIG9mIGV2ZW50cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8g
YmUgdW5pcXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDMyNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgcmVzdWx0cyBvZiBzZXRUaW1lb3V0LCBzZXRJbnRlcnZhbCBhbmQgbmF2aWdhdG9yLmdl
b2xvY2F0aW9uLndhdGNoUG9zaXRpb24KKyAgICAgICAgYXJlIHBvc2l0aXZlIGludGVnZXIgdmFs
dWVzIGV4dHJhY3RlZCBmcm9tIGEgc2ltcGxlIGNpcmN1bGFyIHNlcXVlbnRpYWwgbnVtYmVyCisg
ICAgICAgIGdlbmVyYXRvciwgd2hvc2UgdW5pcXVlbmVzcyBjYW4gYmUgZ3VhcmFudGVlZCBmb3Ig
bm8gbW9yZSB0aGFuIDJeMzEgY2FsbHMgdG8KKyAgICAgICAgYW55IG9mIHRoZXNlIGZ1bmN0aW9u
cy4gSW4gb3JkZXIgdG8gcHJvdmlkZSB0aGlzIGd1YXJhbnRlZSBiZXlvbmQgdGhpcyBsaW1pdCwK
KyAgICAgICAgd2UgcmVwZWF0ZWRseSBhc2sgZm9yIHRoZSBuZXh0IHNlcXVlbnRpYWwgaWQgdW50
aWwgd2UgZ2V0IG9uZSB0aGF0J3Mgbm90IHVzZWQKKyAgICAgICAgYWxyZWFkeS4KKworICAgICAg
ICBUaGlzIHNvbHV0aW9uIHdvcmtzIGluc3RhbnRseSB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNl
cywgd2hlbiB0aGVyZSBhcmUgZmV3CisgICAgICAgIGxpdmUgdGltZW91dCBpZHMgb3IgZ2VvbG9j
YXRpb24gaWRzIGF0IGFueSBnaXZlbiBtb21lbnQuIEhhbmRsaW5nIG1pbGxpb25zIG9mCisgICAg
ICAgIGxpdmUgaWRzIHdpbGwgcmVxdWlyZSBhbm90aGVyIHNvbHV0aW9uLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gQnJpZWYgdGVzdHMgb2YgdW5pcXVlbmVzcyBhbHJlYWR5IGV4aXN0LgorICAg
ICAgICBNb3Jlb3ZlciwgcmVwcm9kdWNpbmcgdGhpcyBwYXJ0aWN1bGFyIGlzc3VlIHdvdWxkIHJl
cXVpcmUgMl4zMSBzZXQvY2xlYXIKKyAgICAgICAgZnVuY3Rpb24gY2FsbHMsIHdoaWNoIGlzIHBy
b2hpYml0aXZlbHkgZXhwZW5zaXZlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6
OmFkZCk6IFJlbmFtZSBmcm9tIFdhdGNoZXJzOjpzZXQ7IHJldHVybiBmYWxzZSBpZiB3YXRjaCBp
ZCBhbHJlYWR5IGV4aXN0cy4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjp3YXRjaFBv
c2l0aW9uKTogUmVwZWF0IHVudGlsIHRoZSBuZXcgd2F0Y2ggaWQgaXMgdW5pcXVlLgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKFdhdGNoZXJz
KTogUmVuYW1lIFdhdGNoZXJzOjpzZXQgdG8gV2F0Y2hlcnM6OmFkZC4KKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbDogUmVuYW1lIHRoZSBhcmd1bWVudCBvZiBH
ZW9sb2NhdGlvbjo6Y2xlYXJXYXRjaCB0byBXYXRjaElELgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBVcGRhdGUgaW5pdGlhbGl6YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRp
YWxJRCk6IFJlbmFtZSBmcm9tIG5ld1VuaXF1ZUlEOyByZW1vdmUgRklYTUUgbm90ZS4KKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk6IFJlbmFtZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpuZXdVbmlxdWVJRCB0
byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRpYWxJRC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBSZXR1cm4gZmFs
c2UgKGRvIG5vdCBhc3NlcnQpIGlmIHRpbWVvdXQgaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICAg
ICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6RE9NVGlt
ZXIpOiBSZXBlYXQgdW50aWwgdGhlIG5ldyB0aW1lb3V0IGlkIGlzIHVuaXF1ZS4KKwogMjAxMi0x
MS0yNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLiBGaXggUXQgbWluaW1hbCBjb21waWxhdGlvbiBhZnRlciByMTM1NzEzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApp
bmRleCA1MTlhMWU0NWEuLjkyMDI0YjIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTE3NSwxMyArMTc1LDE1IEBAIHZv
aWQgR2VvbG9jYXRpb246Okdlb05vdGlmaWVyOjp0aW1lckZpcmVkKFRpbWVyPEdlb05vdGlmaWVy
PiopCiAgICAgbV9nZW9sb2NhdGlvbi0+cmVxdWVzdFRpbWVkT3V0KHRoaXMpOwogfQogCi12b2lk
IEdlb2xvY2F0aW9uOjpXYXRjaGVyczo6c2V0KGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmll
cj4gcHJwTm90aWZpZXIpCitib29sIEdlb2xvY2F0aW9uOjpXYXRjaGVyczo6YWRkKGludCBpZCwg
UGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4gcHJwTm90aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlkID4g
MCk7CiAgICAgUmVmUHRyPEdlb05vdGlmaWVyPiBub3RpZmllciA9IHBycE5vdGlmaWVyOwogCi0g
ICAgbV9pZFRvTm90aWZpZXJNYXAuc2V0KGlkLCBub3RpZmllci5nZXQoKSk7Ci0gICAgbV9ub3Rp
ZmllclRvSWRNYXAuc2V0KG5vdGlmaWVyLnJlbGVhc2UoKSwgaWQpOworICAgIGJvb2wgcmVzdWx0
ID0gbV9pZFRvTm90aWZpZXJNYXAuYWRkKGlkLCBub3RpZmllci5nZXQoKSkuaXNOZXdFbnRyeTsK
KyAgICBpZiAocmVzdWx0KQorICAgICAgICBtX25vdGlmaWVyVG9JZE1hcC5zZXQobm90aWZpZXIu
cmVsZWFzZSgpLCBpZCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogR2VvbG9jYXRpb246Okdl
b05vdGlmaWVyKiBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OmZpbmQoaW50IGlkKQpAQCAtMzA5LDgg
KzMxMSwxNSBAQCBpbnQgR2VvbG9jYXRpb246OndhdGNoUG9zaXRpb24oUGFzc1JlZlB0cjxQb3Np
dGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhcwogICAgIFJlZlB0cjxHZW9Ob3RpZmll
cj4gbm90aWZpZXIgPSBHZW9Ob3RpZmllcjo6Y3JlYXRlKHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywg
ZXJyb3JDYWxsYmFjaywgb3B0aW9ucyk7CiAgICAgc3RhcnRSZXF1ZXN0KG5vdGlmaWVyLmdldCgp
KTsKIAotICAgIGludCB3YXRjaElEID0gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5uZXdVbmlx
dWVJRCgpOwotICAgIG1fd2F0Y2hlcnMuc2V0KHdhdGNoSUQsIG5vdGlmaWVyLnJlbGVhc2UoKSk7
CisgICAgLy8gRmFpbHVyZSB0byBhZGQgYSBuZXcgZW50cnkgdG8gbV93YXRjaGVycyBpcyB1bmxp
a2VseSwgYnV0IHBvc3NpYmxlLgorICAgIC8vIFJlcGVhdCB1bnRpbCB0aGlzIG9wZXJhdGlvbiBz
dWNjZWVkcy4KKyAgICBpbnQgd2F0Y2hJRDsKKyAgICBib29sIHN1Y2Nlc3M7CisgICAgZG8gewor
ICAgICAgICB3YXRjaElEID0gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jaXJjdWxhclNlcXVl
bnRpYWxJRCgpOworICAgICAgICBSZWZQdHI8R2VvTm90aWZpZXI+IHBhc3NOb3RpZmllciA9IG5v
dGlmaWVyOworICAgICAgICBzdWNjZXNzID0gbV93YXRjaGVycy5hZGQod2F0Y2hJRCwgcGFzc05v
dGlmaWVyLnJlbGVhc2UoKSk7CisgICAgfSB3aGlsZSAoIXN1Y2Nlc3MpOwogICAgIHJldHVybiB3
YXRjaElEOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmgKaW5kZXggMGQ5NWY0ZDY0Li5lMDJhNGNjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTExMiw3ICsxMTIs
NyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgV2F0Y2hlcnMgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgdm9pZCBzZXQoaW50IGlkLCBQYXNzUmVmUHRyPEdlb05vdGlmaWVyPik7CisgICAgICAgIGJv
b2wgYWRkKGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4pOwogICAgICAgICBHZW9Ob3Rp
ZmllciogZmluZChpbnQgaWQpOwogICAgICAgICB2b2lkIHJlbW92ZShpbnQgaWQpOwogICAgICAg
ICB2b2lkIHJlbW92ZShHZW9Ob3RpZmllciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCA1YWQzYzdiOTUuLmY0MzBjOGQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5pZGwKQEAgLTM3LDYgKzM3LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBQb3NpdGlvbk9wdGlv
bnMgb3B0aW9ucyk7CiAKLSAgICB2b2lkIGNsZWFyV2F0Y2goaW4gbG9uZyB3YXRjaElkKTsKKyAg
ICB2b2lkIGNsZWFyV2F0Y2goaW4gbG9uZyB3YXRjaElEKTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAwMjFjNmU1ZTQuLmRkMmM1
MDkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cApAQCAtOTksNyArOTksNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OkFkZENvbnNv
bGVNZXNzYWdlVGFzazo6cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQwogU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAgICAgOiBtX2l0ZXJhdGluZ0Fj
dGl2ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVzdHJ1Y3RvcihmYWxzZSkKLSAgICAs
IG1fc2VxdWVudGlhbElEKDApCisgICAgLCBtX2NpcmN1bGFyU2VxdWVudGlhbElEKDApCiAgICAg
LCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogICAgICwgbV9hY3RpdmVET01PYmplY3Rz
QXJlU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9N
T2JqZWN0cyhzdGF0aWNfY2FzdDxBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24+
KC0xKSkKQEAgLTM1MSwxNCArMzUxLDEyIEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQKICAgICBy
ZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1pbnQgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6bmV3VW5pcXVlSUQoKQoraW50IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmNpcmN1bGFyU2VxdWVudGlhbElEKCkKIHsKLSAgICArK21fc2VxdWVudGlhbElEOwotICAgIC8v
IEZJWE1FOiBXZSBwcmV2ZW50IHdyYXBhcm91bmQgZnJvbSBiZWNvbWluZyBuZWdhdGl2ZSB3aXRo
IGEgc2ltcGxlIHNvbHV0aW9uIHdoaWNoCi0gICAgLy8gZW5zdXJlcyB0aGUgcmVzdWx0IGhhcyBh
IGNvcnJlY3QgcmFuZ2UsIGJ1dCB3aXRob3V0IGZ1bGx5IGd1YXJhbnRlZWluZyB1bmlxdWVuZXNz
LgotICAgIGlmIChtX3NlcXVlbnRpYWxJRCA8PSAwKQotICAgICAgICBtX3NlcXVlbnRpYWxJRCA9
IDE7Ci0gICAgcmV0dXJuIG1fc2VxdWVudGlhbElEOworICAgICsrbV9jaXJjdWxhclNlcXVlbnRp
YWxJRDsKKyAgICBpZiAobV9jaXJjdWxhclNlcXVlbnRpYWxJRCA8PSAwKQorICAgICAgICBtX2Np
cmN1bGFyU2VxdWVudGlhbElEID0gMTsKKyAgICByZXR1cm4gbV9jaXJjdWxhclNlcXVlbnRpYWxJ
RDsKIH0KIAogI2lmIEVOQUJMRShCTE9CKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKaW5kZXggYTNmOWI0Nzk4Li4xZTNmMDY5MTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTQwLDEwICsxNDAsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pID0g
MDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNs
eS4KIAotICAgIC8vIENyZWF0ZXMgYSB1bmlxdWUgaWQgZm9yIHNldFRpbWVvdXQsIHNldEludGVy
dmFsIG9yIG5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uLgotICAgIGludCBuZXdV
bmlxdWVJRCgpOworICAgIC8vIEdldHMgdGhlIG5leHQgaWQgaW4gYSBjaXJjdWxhciBzZXF1ZW5j
ZSBmcm9tIDEgdG8gMl4zMS0xLgorICAgIGludCBjaXJjdWxhclNlcXVlbnRpYWxJRCgpOwogCi0g
ICAgdm9pZCBhZGRUaW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikgeyBBU1NF
UlQoIW1fdGltZW91dHMuY29udGFpbnModGltZW91dElkKSk7IG1fdGltZW91dHMuc2V0KHRpbWVv
dXRJZCwgdGltZXIpOyB9CisgICAgYm9vbCBhZGRUaW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRp
bWVyKiB0aW1lcikgeyByZXR1cm4gbV90aW1lb3V0cy5hZGQodGltZW91dElkLCB0aW1lcikuaXNO
ZXdFbnRyeTsgfQogICAgIHZvaWQgcmVtb3ZlVGltZW91dChpbnQgdGltZW91dElkKSB7IG1fdGlt
ZW91dHMucmVtb3ZlKHRpbWVvdXRJZCk7IH0KICAgICBET01UaW1lciogZmluZFRpbWVvdXQoaW50
IHRpbWVvdXRJZCkgeyByZXR1cm4gbV90aW1lb3V0cy5nZXQodGltZW91dElkKTsgfQogCkBAIC0y
MDksNyArMjA5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXRlcmF0aW5nQWN0aXZlRE9NT2Jq
ZWN0czsKICAgICBib29sIG1faW5EZXN0cnVjdG9yOwogCi0gICAgaW50IG1fc2VxdWVudGlhbElE
OworICAgIGludCBtX2NpcmN1bGFyU2VxdWVudGlhbElEOwogICAgIHR5cGVkZWYgSGFzaE1hcDxp
bnQsIERPTVRpbWVyKj4gVGltZW91dE1hcDsKICAgICBUaW1lb3V0TWFwIG1fdGltZW91dHM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggOWYyMDZlYmNkLi4yMmE3MTJmNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC01NCw3ICs1NCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50IGludGVydmFsLCBpbnQgbmVzdGluZ0xldmVs
KQogCiBET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IGludGVydmFsLCBib29sIHNp
bmdsZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCi0gICAgLCBtX3RpbWVv
dXRJZChjb250ZXh0LT5uZXdVbmlxdWVJRCgpKQogICAgICwgbV9uZXN0aW5nTGV2ZWwodGltZXJO
ZXN0aW5nTGV2ZWwgKyAxKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9vcmlnaW5h
bEludGVydmFsKGludGVydmFsKQpAQCAtNjIsNyArNjEsMTEgQEAgRE9NVGltZXI6OkRPTVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0
aW9uPgogICAgIGlmIChzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGlu
Z0xldmVsKSkKICAgICAgICAgbV91c2VyR2VzdHVyZVRva2VuID0gVXNlckdlc3R1cmVJbmRpY2F0
b3I6OmN1cnJlbnRUb2tlbigpOwogCi0gICAgY29udGV4dC0+YWRkVGltZW91dChtX3RpbWVvdXRJ
ZCwgdGhpcyk7CisgICAgLy8gRmFpbHVyZSB0byBhZGQgYSBuZXcgdGltZW91dCBpZCBpcyB1bmxp
a2VseSwgYnV0IHBvc3NpYmxlLgorICAgIC8vIFJlcGVhdCB1bnRpbCB0aGlzIG9wZXJhdGlvbiBz
dWNjZWVkcy4KKyAgICBkbyB7CisgICAgICAgIG1fdGltZW91dElkID0gY29udGV4dC0+Y2lyY3Vs
YXJTZXF1ZW50aWFsSUQoKTsKKyAgICB9IHdoaWxlICghY29udGV4dC0+YWRkVGltZW91dChtX3Rp
bWVvdXRJZCwgdGhpcykpOwogCiAgICAgZG91YmxlIGludGVydmFsTWlsbGlzZWNvbmRzID0gaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKGludGVydmFsLCBjb250ZXh0LT5taW5pbXVtVGltZXJJbnRl
cnZhbCgpKTsKICAgICBpZiAoc2luZ2xlU2hvdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176838</attachid>
            <date>2012-11-29 15:46:29 -0800</date>
            <delta_ts>2012-11-29 19:24:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>9196</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MzQ0ZjI0ZDAuLmM0N2E5OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDEyLTExLTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAcmltLmNvbT4KKworICAg
ICAgICBOdW1lcmljIGlkZW50aWZpZXJzIG9mIGV2ZW50cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8g
YmUgdW5pcXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDMyNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgcmVzdWx0cyBvZiBzZXRUaW1lb3V0LCBzZXRJbnRlcnZhbCBhbmQgbmF2aWdhdG9yLmdl
b2xvY2F0aW9uLndhdGNoUG9zaXRpb24KKyAgICAgICAgYXJlIHBvc2l0aXZlIGludGVnZXIgdmFs
dWVzIGV4dHJhY3RlZCBmcm9tIGEgc2ltcGxlIGNpcmN1bGFyIHNlcXVlbnRpYWwgbnVtYmVyCisg
ICAgICAgIGdlbmVyYXRvciwgd2hvc2UgdW5pcXVlbmVzcyBjYW4gYmUgZ3VhcmFudGVlZCBmb3Ig
bm8gbW9yZSB0aGFuIDJeMzEgY2FsbHMgdG8KKyAgICAgICAgYW55IG9mIHRoZXNlIGZ1bmN0aW9u
cy4gSW4gb3JkZXIgdG8gcHJvdmlkZSB0aGlzIGd1YXJhbnRlZSBiZXlvbmQgdGhpcyBsaW1pdCwK
KyAgICAgICAgd2UgcmVwZWF0ZWRseSBhc2sgZm9yIHRoZSBuZXh0IHNlcXVlbnRpYWwgaWQgdW50
aWwgd2UgZ2V0IG9uZSB0aGF0J3Mgbm90IHVzZWQKKyAgICAgICAgYWxyZWFkeS4KKworICAgICAg
ICBUaGlzIHNvbHV0aW9uIHdvcmtzIGluc3RhbnRseSB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNl
cywgd2hlbiB0aGVyZSBhcmUgZmV3CisgICAgICAgIGxpdmUgdGltZW91dCBpZHMgb3IgZ2VvbG9j
YXRpb24gaWRzIGF0IGFueSBnaXZlbiBtb21lbnQuIEhhbmRsaW5nIG1pbGxpb25zIG9mCisgICAg
ICAgIGxpdmUgaWRzIHdpbGwgcmVxdWlyZSBhbm90aGVyIHNvbHV0aW9uLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gQnJpZWYgdGVzdHMgb2YgdW5pcXVlbmVzcyBhbHJlYWR5IGV4aXN0LgorICAg
ICAgICBNb3Jlb3ZlciwgcmVwcm9kdWNpbmcgdGhpcyBwYXJ0aWN1bGFyIGlzc3VlIHdvdWxkIHJl
cXVpcmUgMl4zMSBzZXQvY2xlYXIKKyAgICAgICAgZnVuY3Rpb24gY2FsbHMsIHdoaWNoIGlzIHBy
b2hpYml0aXZlbHkgZXhwZW5zaXZlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6
OmFkZCk6IFJlbmFtZSBmcm9tIFdhdGNoZXJzOjpzZXQ7IHJldHVybiBmYWxzZSBpZiB3YXRjaCBp
ZCBhbHJlYWR5IGV4aXN0cy4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjp3YXRjaFBv
c2l0aW9uKTogUmVwZWF0IHVudGlsIHRoZSBuZXcgd2F0Y2ggaWQgaXMgdW5pcXVlLgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKFdhdGNoZXJz
KTogUmVuYW1lIFdhdGNoZXJzOjpzZXQgdG8gV2F0Y2hlcnM6OmFkZC4KKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbDogUmVuYW1lIHRoZSBhcmd1bWVudCBvZiBH
ZW9sb2NhdGlvbjo6Y2xlYXJXYXRjaCB0byBXYXRjaElELgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBVcGRhdGUgaW5pdGlhbGl6YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRp
YWxJRCk6IFJlbmFtZSBmcm9tIG5ld1VuaXF1ZUlEOyByZW1vdmUgRklYTUUgbm90ZS4KKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk6IFJlbmFtZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpuZXdVbmlxdWVJRCB0
byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRpYWxJRC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBSZXR1cm4gZmFs
c2UgKGRvIG5vdCBhc3NlcnQpIGlmIHRpbWVvdXQgaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICAg
ICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6RE9NVGlt
ZXIpOiBSZXBlYXQgdW50aWwgdGhlIG5ldyB0aW1lb3V0IGlkIGlzIHVuaXF1ZS4KKwogMjAxMi0x
MS0yOSAgTWluIFFpbiAgPHFpbm1pbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSBMYXp5
RGVjb2RpbmdQaXhlbFJlZiBpbmhlcml0IGZyb20gc2tpYTo6TGF6eVBpeGVsUmVmIHNvIHRoYXQg
Y2MgdGhyZWFkIGNhbiBhY2Nlc3MgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggOThiMTBkMDM4Li5hNDdiZDM5YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCkBAIC0xNzUsMTMgKzE3NSwxNSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllcjo6
dGltZXJGaXJlZChUaW1lcjxHZW9Ob3RpZmllcj4qKQogICAgIG1fZ2VvbG9jYXRpb24tPnJlcXVl
c3RUaW1lZE91dCh0aGlzKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OnNldChp
bnQgaWQsIFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+IHBycE5vdGlmaWVyKQorYm9vbCBHZW9sb2Nh
dGlvbjo6V2F0Y2hlcnM6OmFkZChpbnQgaWQsIFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+IHBycE5v
dGlmaWVyKQogewogICAgIEFTU0VSVChpZCA+IDApOwogICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4g
bm90aWZpZXIgPSBwcnBOb3RpZmllcjsKIAotICAgIG1faWRUb05vdGlmaWVyTWFwLnNldChpZCwg
bm90aWZpZXIuZ2V0KCkpOwotICAgIG1fbm90aWZpZXJUb0lkTWFwLnNldChub3RpZmllci5yZWxl
YXNlKCksIGlkKTsKKyAgICBib29sIGFkZFN1Y2NlZWRlZCA9IG1faWRUb05vdGlmaWVyTWFwLmFk
ZChpZCwgbm90aWZpZXIuZ2V0KCkpLmlzTmV3RW50cnk7CisgICAgaWYgKGFkZFN1Y2NlZWRlZCkK
KyAgICAgICAgbV9ub3RpZmllclRvSWRNYXAuc2V0KG5vdGlmaWVyLnJlbGVhc2UoKSwgaWQpOwor
ICAgIHJldHVybiBhZGRTdWNjZWVkZWQ7CiB9CiAKIEdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllciog
R2VvbG9jYXRpb246OldhdGNoZXJzOjpmaW5kKGludCBpZCkKQEAgLTMwOSw4ICszMTEsMTUgQEAg
aW50IEdlb2xvY2F0aW9uOjp3YXRjaFBvc2l0aW9uKFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXMKICAgICBSZWZQdHI8R2VvTm90aWZpZXI+IG5vdGlmaWVy
ID0gR2VvTm90aWZpZXI6OmNyZWF0ZSh0aGlzLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJh
Y2ssIG9wdGlvbnMpOwogICAgIHN0YXJ0UmVxdWVzdChub3RpZmllci5nZXQoKSk7CiAKLSAgICBp
bnQgd2F0Y2hJRCA9IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+bmV3VW5pcXVlSUQoKTsKLSAg
ICBtX3dhdGNoZXJzLnNldCh3YXRjaElELCBub3RpZmllci5yZWxlYXNlKCkpOworICAgIC8vIEZh
aWx1cmUgdG8gYWRkIGEgbmV3IGVudHJ5IHRvIG1fd2F0Y2hlcnMgaXMgdW5saWtlbHksIGJ1dCBw
b3NzaWJsZS4KKyAgICAvLyBSZXBlYXQgdW50aWwgdGhpcyBvcGVyYXRpb24gc3VjY2VlZHMuCisg
ICAgaW50IHdhdGNoSUQ7CisgICAgYm9vbCBzdWNjZXNzOworICAgIGRvIHsKKyAgICAgICAgd2F0
Y2hJRCA9IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y2lyY3VsYXJTZXF1ZW50aWFsSUQoKTsK
KyAgICAgICAgUmVmUHRyPEdlb05vdGlmaWVyPiBwYXNzTm90aWZpZXIgPSBub3RpZmllcjsKKyAg
ICAgICAgc3VjY2VzcyA9IG1fd2F0Y2hlcnMuYWRkKHdhdGNoSUQsIHBhc3NOb3RpZmllci5yZWxl
YXNlKCkpOworICAgIH0gd2hpbGUgKCFzdWNjZXNzKTsKICAgICByZXR1cm4gd2F0Y2hJRDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
CmluZGV4IGYzYmVkMzRlZS4uYTFiZDllYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0
ZToKIAogICAgIGNsYXNzIFdhdGNoZXJzIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgc2V0
KGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4pOworICAgICAgICBib29sIGFkZChpbnQg
aWQsIFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+KTsKICAgICAgICAgR2VvTm90aWZpZXIqIGZpbmQo
aW50IGlkKTsKICAgICAgICAgdm9pZCByZW1vdmUoaW50IGlkKTsKICAgICAgICAgdm9pZCByZW1v
dmUoR2VvTm90aWZpZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5pZGwKaW5kZXggNWFkM2M3Yjk1Li5mNDMwYzhkMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCkBA
IC0zNyw2ICszNyw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbF0gUG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gUG9zaXRpb25PcHRpb25zIG9wdGlvbnMp
OwogCi0gICAgdm9pZCBjbGVhcldhdGNoKGluIGxvbmcgd2F0Y2hJZCk7CisgICAgdm9pZCBjbGVh
cldhdGNoKGluIGxvbmcgd2F0Y2hJRCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMDIxYzZlNWU0Li5kZDJjNTA5MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTk5LDcg
Kzk5LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRh
c2s6OnBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkMKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQogICAgIDogbV9pdGVyYXRpbmdBY3RpdmVET01PYmpl
Y3RzKGZhbHNlKQogICAgICwgbV9pbkRlc3RydWN0b3IoZmFsc2UpCi0gICAgLCBtX3NlcXVlbnRp
YWxJRCgwKQorICAgICwgbV9jaXJjdWxhclNlcXVlbnRpYWxJRCgwKQogICAgICwgbV9pbkRpc3Bh
dGNoRXJyb3JFdmVudChmYWxzZSkKICAgICAsIG1fYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRl
ZChmYWxzZSkKICAgICAsIG1fcmVhc29uRm9yU3VzcGVuZGluZ0FjdGl2ZURPTU9iamVjdHMoc3Rh
dGljX2Nhc3Q8QWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uPigtMSkpCkBAIC0z
NTEsMTQgKzM1MSwxMiBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJy
b3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50CiAgICAgcmV0dXJuIGVycm9y
RXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKIH0KIAotaW50IFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6Om5ld1VuaXF1ZUlEKCkKK2ludCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNl
cXVlbnRpYWxJRCgpCiB7Ci0gICAgKyttX3NlcXVlbnRpYWxJRDsKLSAgICAvLyBGSVhNRTogV2Ug
cHJldmVudCB3cmFwYXJvdW5kIGZyb20gYmVjb21pbmcgbmVnYXRpdmUgd2l0aCBhIHNpbXBsZSBz
b2x1dGlvbiB3aGljaAotICAgIC8vIGVuc3VyZXMgdGhlIHJlc3VsdCBoYXMgYSBjb3JyZWN0IHJh
bmdlLCBidXQgd2l0aG91dCBmdWxseSBndWFyYW50ZWVpbmcgdW5pcXVlbmVzcy4KLSAgICBpZiAo
bV9zZXF1ZW50aWFsSUQgPD0gMCkKLSAgICAgICAgbV9zZXF1ZW50aWFsSUQgPSAxOwotICAgIHJl
dHVybiBtX3NlcXVlbnRpYWxJRDsKKyAgICArK21fY2lyY3VsYXJTZXF1ZW50aWFsSUQ7CisgICAg
aWYgKG1fY2lyY3VsYXJTZXF1ZW50aWFsSUQgPD0gMCkKKyAgICAgICAgbV9jaXJjdWxhclNlcXVl
bnRpYWxJRCA9IDE7CisgICAgcmV0dXJuIG1fY2lyY3VsYXJTZXF1ZW50aWFsSUQ7CiB9CiAKICNp
ZiBFTkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCmluZGV4IGEzZjliNDc5OC4uMWUzZjA2OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTE0MCwxMCArMTQwLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+KSA9IDA7IC8vIEV4ZWN1
dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCiAKLSAgICAv
LyBDcmVhdGVzIGEgdW5pcXVlIGlkIGZvciBzZXRUaW1lb3V0LCBzZXRJbnRlcnZhbCBvciBuYXZp
Z2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbi4KLSAgICBpbnQgbmV3VW5pcXVlSUQoKTsK
KyAgICAvLyBHZXRzIHRoZSBuZXh0IGlkIGluIGEgY2lyY3VsYXIgc2VxdWVuY2UgZnJvbSAxIHRv
IDJeMzEtMS4KKyAgICBpbnQgY2lyY3VsYXJTZXF1ZW50aWFsSUQoKTsKIAotICAgIHZvaWQgYWRk
VGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciogdGltZXIpIHsgQVNTRVJUKCFtX3RpbWVv
dXRzLmNvbnRhaW5zKHRpbWVvdXRJZCkpOyBtX3RpbWVvdXRzLnNldCh0aW1lb3V0SWQsIHRpbWVy
KTsgfQorICAgIGJvb2wgYWRkVGltZW91dChpbnQgdGltZW91dElkLCBET01UaW1lciogdGltZXIp
IHsgcmV0dXJuIG1fdGltZW91dHMuYWRkKHRpbWVvdXRJZCwgdGltZXIpLmlzTmV3RW50cnk7IH0K
ICAgICB2b2lkIHJlbW92ZVRpbWVvdXQoaW50IHRpbWVvdXRJZCkgeyBtX3RpbWVvdXRzLnJlbW92
ZSh0aW1lb3V0SWQpOyB9CiAgICAgRE9NVGltZXIqIGZpbmRUaW1lb3V0KGludCB0aW1lb3V0SWQp
IHsgcmV0dXJuIG1fdGltZW91dHMuZ2V0KHRpbWVvdXRJZCk7IH0KIApAQCAtMjA5LDcgKzIwOSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHM7CiAgICAg
Ym9vbCBtX2luRGVzdHJ1Y3RvcjsKIAotICAgIGludCBtX3NlcXVlbnRpYWxJRDsKKyAgICBpbnQg
bV9jaXJjdWxhclNlcXVlbnRpYWxJRDsKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBET01UaW1l
cio+IFRpbWVvdXRNYXA7CiAgICAgVGltZW91dE1hcCBtX3RpbWVvdXRzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCmluZGV4IDlmMjA2ZWJjZC4uMjJhNzEyZjQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmNwcApAQCAtNTQsNyArNTQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRm9y
d2FyZFVzZXJHZXN0dXJlKGludCBpbnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIAogRE9NVGlt
ZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8
U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQog
ICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250ZXh0KQotICAgICwgbV90aW1lb3V0SWQoY29udGV4
dC0+bmV3VW5pcXVlSUQoKSkKICAgICAsIG1fbmVzdGluZ0xldmVsKHRpbWVyTmVzdGluZ0xldmVs
ICsgMSkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKICAgICAsIG1fb3JpZ2luYWxJbnRlcnZhbChp
bnRlcnZhbCkKQEAgLTYyLDcgKzYxLDExIEBAIERPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4KICAgICBp
ZiAoc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiAg
ICAgICAgIG1fdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50
VG9rZW4oKTsKIAotICAgIGNvbnRleHQtPmFkZFRpbWVvdXQobV90aW1lb3V0SWQsIHRoaXMpOwor
ICAgIC8vIEZhaWx1cmUgdG8gYWRkIGEgbmV3IHRpbWVvdXQgaWQgaXMgdW5saWtlbHksIGJ1dCBw
b3NzaWJsZS4KKyAgICAvLyBSZXBlYXQgdW50aWwgdGhpcyBvcGVyYXRpb24gc3VjY2VlZHMuCisg
ICAgZG8geworICAgICAgICBtX3RpbWVvdXRJZCA9IGNvbnRleHQtPmNpcmN1bGFyU2VxdWVudGlh
bElEKCk7CisgICAgfSB3aGlsZSAoIWNvbnRleHQtPmFkZFRpbWVvdXQobV90aW1lb3V0SWQsIHRo
aXMpKTsKIAogICAgIGRvdWJsZSBpbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVydmFsQ2xhbXBl
ZFRvTWluaW11bShpbnRlcnZhbCwgY29udGV4dC0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CiAg
ICAgaWYgKHNpbmdsZVNob3QpCg==
</data>
<flag name="review"
          id="192741"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="192742"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176889</attachid>
            <date>2012-11-29 19:24:52 -0800</date>
            <delta_ts>2013-02-14 12:53:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8959</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MzQ0ZjI0ZDAuLmM0N2E5OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDEyLTExLTI2ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAcmltLmNvbT4KKworICAg
ICAgICBOdW1lcmljIGlkZW50aWZpZXJzIG9mIGV2ZW50cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8g
YmUgdW5pcXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDMyNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgcmVzdWx0cyBvZiBzZXRUaW1lb3V0LCBzZXRJbnRlcnZhbCBhbmQgbmF2aWdhdG9yLmdl
b2xvY2F0aW9uLndhdGNoUG9zaXRpb24KKyAgICAgICAgYXJlIHBvc2l0aXZlIGludGVnZXIgdmFs
dWVzIGV4dHJhY3RlZCBmcm9tIGEgc2ltcGxlIGNpcmN1bGFyIHNlcXVlbnRpYWwgbnVtYmVyCisg
ICAgICAgIGdlbmVyYXRvciwgd2hvc2UgdW5pcXVlbmVzcyBjYW4gYmUgZ3VhcmFudGVlZCBmb3Ig
bm8gbW9yZSB0aGFuIDJeMzEgY2FsbHMgdG8KKyAgICAgICAgYW55IG9mIHRoZXNlIGZ1bmN0aW9u
cy4gSW4gb3JkZXIgdG8gcHJvdmlkZSB0aGlzIGd1YXJhbnRlZSBiZXlvbmQgdGhpcyBsaW1pdCwK
KyAgICAgICAgd2UgcmVwZWF0ZWRseSBhc2sgZm9yIHRoZSBuZXh0IHNlcXVlbnRpYWwgaWQgdW50
aWwgd2UgZ2V0IG9uZSB0aGF0J3Mgbm90IHVzZWQKKyAgICAgICAgYWxyZWFkeS4KKworICAgICAg
ICBUaGlzIHNvbHV0aW9uIHdvcmtzIGluc3RhbnRseSB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNl
cywgd2hlbiB0aGVyZSBhcmUgZmV3CisgICAgICAgIGxpdmUgdGltZW91dCBpZHMgb3IgZ2VvbG9j
YXRpb24gaWRzIGF0IGFueSBnaXZlbiBtb21lbnQuIEhhbmRsaW5nIG1pbGxpb25zIG9mCisgICAg
ICAgIGxpdmUgaWRzIHdpbGwgcmVxdWlyZSBhbm90aGVyIHNvbHV0aW9uLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gQnJpZWYgdGVzdHMgb2YgdW5pcXVlbmVzcyBhbHJlYWR5IGV4aXN0LgorICAg
ICAgICBNb3Jlb3ZlciwgcmVwcm9kdWNpbmcgdGhpcyBwYXJ0aWN1bGFyIGlzc3VlIHdvdWxkIHJl
cXVpcmUgMl4zMSBzZXQvY2xlYXIKKyAgICAgICAgZnVuY3Rpb24gY2FsbHMsIHdoaWNoIGlzIHBy
b2hpYml0aXZlbHkgZXhwZW5zaXZlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6
OmFkZCk6IFJlbmFtZSBmcm9tIFdhdGNoZXJzOjpzZXQ7IHJldHVybiBmYWxzZSBpZiB3YXRjaCBp
ZCBhbHJlYWR5IGV4aXN0cy4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjp3YXRjaFBv
c2l0aW9uKTogUmVwZWF0IHVudGlsIHRoZSBuZXcgd2F0Y2ggaWQgaXMgdW5pcXVlLgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKFdhdGNoZXJz
KTogUmVuYW1lIFdhdGNoZXJzOjpzZXQgdG8gV2F0Y2hlcnM6OmFkZC4KKyAgICAgICAgKiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbDogUmVuYW1lIHRoZSBhcmd1bWVudCBvZiBH
ZW9sb2NhdGlvbjo6Y2xlYXJXYXRjaCB0byBXYXRjaElELgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBVcGRhdGUgaW5pdGlhbGl6YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRp
YWxJRCk6IFJlbmFtZSBmcm9tIG5ld1VuaXF1ZUlEOyByZW1vdmUgRklYTUUgbm90ZS4KKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk6IFJlbmFtZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpuZXdVbmlxdWVJRCB0
byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjaXJjdWxhclNlcXVlbnRpYWxJRC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZFRpbWVvdXQpOiBSZXR1cm4gZmFs
c2UgKGRvIG5vdCBhc3NlcnQpIGlmIHRpbWVvdXQgaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICAg
ICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6RE9NVGlt
ZXIpOiBSZXBlYXQgdW50aWwgdGhlIG5ldyB0aW1lb3V0IGlkIGlzIHVuaXF1ZS4KKwogMjAxMi0x
MS0yOSAgTWluIFFpbiAgPHFpbm1pbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSBMYXp5
RGVjb2RpbmdQaXhlbFJlZiBpbmhlcml0IGZyb20gc2tpYTo6TGF6eVBpeGVsUmVmIHNvIHRoYXQg
Y2MgdGhyZWFkIGNhbiBhY2Nlc3MgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggOThiMTBkMDM4Li5iY2Q5NWQzM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCkBAIC0xNzUsMTMgKzE3NSwxNSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllcjo6
dGltZXJGaXJlZChUaW1lcjxHZW9Ob3RpZmllcj4qKQogICAgIG1fZ2VvbG9jYXRpb24tPnJlcXVl
c3RUaW1lZE91dCh0aGlzKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6OnNldChp
bnQgaWQsIFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+IHBycE5vdGlmaWVyKQorYm9vbCBHZW9sb2Nh
dGlvbjo6V2F0Y2hlcnM6OmFkZChpbnQgaWQsIFBhc3NSZWZQdHI8R2VvTm90aWZpZXI+IHBycE5v
dGlmaWVyKQogewogICAgIEFTU0VSVChpZCA+IDApOwogICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4g
bm90aWZpZXIgPSBwcnBOb3RpZmllcjsKIAotICAgIG1faWRUb05vdGlmaWVyTWFwLnNldChpZCwg
bm90aWZpZXIuZ2V0KCkpOworICAgIGlmICghbV9pZFRvTm90aWZpZXJNYXAuYWRkKGlkLCBub3Rp
Zmllci5nZXQoKSkuaXNOZXdFbnRyeSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fbm90
aWZpZXJUb0lkTWFwLnNldChub3RpZmllci5yZWxlYXNlKCksIGlkKTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogR2VvbG9jYXRpb246Okdlb05vdGlmaWVyKiBHZW9sb2NhdGlvbjo6V2F0Y2hlcnM6
OmZpbmQoaW50IGlkKQpAQCAtMzA5LDggKzMxMSwxMSBAQCBpbnQgR2VvbG9jYXRpb246OndhdGNo
UG9zaXRpb24oUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBh
cwogICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZpZXIgPSBHZW9Ob3RpZmllcjo6Y3JlYXRl
KHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgb3B0aW9ucyk7CiAgICAgc3Rh
cnRSZXF1ZXN0KG5vdGlmaWVyLmdldCgpKTsKIAotICAgIGludCB3YXRjaElEID0gbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5uZXdVbmlxdWVJRCgpOwotICAgIG1fd2F0Y2hlcnMuc2V0KHdhdGNo
SUQsIG5vdGlmaWVyLnJlbGVhc2UoKSk7CisgICAgaW50IHdhdGNoSUQ7CisgICAgLy8gS2VlcCBh
c2tpbmcgZm9yIHRoZSBuZXh0IGlkIHVudGlsIHdlJ3JlIGdpdmVuIG9uZSB0aGF0IHdlIGRvbid0
IGFscmVhZHkgaGF2ZS4KKyAgICBkbyB7CisgICAgICAgIHdhdGNoSUQgPSBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPmNpcmN1bGFyU2VxdWVudGlhbElEKCk7CisgICAgfSB3aGlsZSAoVU5MSUtF
TFkoIW1fd2F0Y2hlcnMuYWRkKHdhdGNoSUQsIG5vdGlmaWVyKSkpOwogICAgIHJldHVybiB3YXRj
aElEOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmgKaW5kZXggZjNiZWQzNGVlLi5hMWJkOWViODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTExMiw3ICsxMTIsNyBA
QCBwcml2YXRlOgogCiAgICAgY2xhc3MgV2F0Y2hlcnMgewogICAgIHB1YmxpYzoKLSAgICAgICAg
dm9pZCBzZXQoaW50IGlkLCBQYXNzUmVmUHRyPEdlb05vdGlmaWVyPik7CisgICAgICAgIGJvb2wg
YWRkKGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4pOwogICAgICAgICBHZW9Ob3RpZmll
ciogZmluZChpbnQgaWQpOwogICAgICAgICB2b2lkIHJlbW92ZShpbnQgaWQpOwogICAgICAgICB2
b2lkIHJlbW92ZShHZW9Ob3RpZmllciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCA1YWQzYzdiOTUuLmY0MzBjOGQwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5pZGwKQEAgLTM3LDYgKzM3LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBQb3NpdGlvbk9wdGlvbnMg
b3B0aW9ucyk7CiAKLSAgICB2b2lkIGNsZWFyV2F0Y2goaW4gbG9uZyB3YXRjaElkKTsKKyAgICB2
b2lkIGNsZWFyV2F0Y2goaW4gbG9uZyB3YXRjaElEKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAwMjFjNmU1ZTQuLmRkMmM1MDkx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApA
QCAtOTksNyArOTksNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OkFkZENvbnNvbGVN
ZXNzYWdlVGFzazo6cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQwogU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAgICAgOiBtX2l0ZXJhdGluZ0FjdGl2
ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVzdHJ1Y3RvcihmYWxzZSkKLSAgICAsIG1f
c2VxdWVudGlhbElEKDApCisgICAgLCBtX2NpcmN1bGFyU2VxdWVudGlhbElEKDApCiAgICAgLCBt
X2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogICAgICwgbV9hY3RpdmVET01PYmplY3RzQXJl
U3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2Jq
ZWN0cyhzdGF0aWNfY2FzdDxBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24+KC0x
KSkKQEAgLTM1MSwxNCArMzUxLDEyIEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlz
cGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQKICAgICByZXR1
cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1pbnQgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6bmV3VW5pcXVlSUQoKQoraW50IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNp
cmN1bGFyU2VxdWVudGlhbElEKCkKIHsKLSAgICArK21fc2VxdWVudGlhbElEOwotICAgIC8vIEZJ
WE1FOiBXZSBwcmV2ZW50IHdyYXBhcm91bmQgZnJvbSBiZWNvbWluZyBuZWdhdGl2ZSB3aXRoIGEg
c2ltcGxlIHNvbHV0aW9uIHdoaWNoCi0gICAgLy8gZW5zdXJlcyB0aGUgcmVzdWx0IGhhcyBhIGNv
cnJlY3QgcmFuZ2UsIGJ1dCB3aXRob3V0IGZ1bGx5IGd1YXJhbnRlZWluZyB1bmlxdWVuZXNzLgot
ICAgIGlmIChtX3NlcXVlbnRpYWxJRCA8PSAwKQotICAgICAgICBtX3NlcXVlbnRpYWxJRCA9IDE7
Ci0gICAgcmV0dXJuIG1fc2VxdWVudGlhbElEOworICAgICsrbV9jaXJjdWxhclNlcXVlbnRpYWxJ
RDsKKyAgICBpZiAobV9jaXJjdWxhclNlcXVlbnRpYWxJRCA8PSAwKQorICAgICAgICBtX2NpcmN1
bGFyU2VxdWVudGlhbElEID0gMTsKKyAgICByZXR1cm4gbV9jaXJjdWxhclNlcXVlbnRpYWxJRDsK
IH0KIAogI2lmIEVOQUJMRShCTE9CKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKaW5kZXggYTNmOWI0Nzk4Li4xZTNmMDY5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTQwLDEwICsxNDAsMTAgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pID0gMDsg
Ly8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4K
IAotICAgIC8vIENyZWF0ZXMgYSB1bmlxdWUgaWQgZm9yIHNldFRpbWVvdXQsIHNldEludGVydmFs
IG9yIG5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uLgotICAgIGludCBuZXdVbmlx
dWVJRCgpOworICAgIC8vIEdldHMgdGhlIG5leHQgaWQgaW4gYSBjaXJjdWxhciBzZXF1ZW5jZSBm
cm9tIDEgdG8gMl4zMS0xLgorICAgIGludCBjaXJjdWxhclNlcXVlbnRpYWxJRCgpOwogCi0gICAg
dm9pZCBhZGRUaW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRpbWVyKiB0aW1lcikgeyBBU1NFUlQo
IW1fdGltZW91dHMuY29udGFpbnModGltZW91dElkKSk7IG1fdGltZW91dHMuc2V0KHRpbWVvdXRJ
ZCwgdGltZXIpOyB9CisgICAgYm9vbCBhZGRUaW1lb3V0KGludCB0aW1lb3V0SWQsIERPTVRpbWVy
KiB0aW1lcikgeyByZXR1cm4gbV90aW1lb3V0cy5hZGQodGltZW91dElkLCB0aW1lcikuaXNOZXdF
bnRyeTsgfQogICAgIHZvaWQgcmVtb3ZlVGltZW91dChpbnQgdGltZW91dElkKSB7IG1fdGltZW91
dHMucmVtb3ZlKHRpbWVvdXRJZCk7IH0KICAgICBET01UaW1lciogZmluZFRpbWVvdXQoaW50IHRp
bWVvdXRJZCkgeyByZXR1cm4gbV90aW1lb3V0cy5nZXQodGltZW91dElkKTsgfQogCkBAIC0yMDks
NyArMjA5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0
czsKICAgICBib29sIG1faW5EZXN0cnVjdG9yOwogCi0gICAgaW50IG1fc2VxdWVudGlhbElEOwor
ICAgIGludCBtX2NpcmN1bGFyU2VxdWVudGlhbElEOwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQs
IERPTVRpbWVyKj4gVGltZW91dE1hcDsKICAgICBUaW1lb3V0TWFwIG1fdGltZW91dHM7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggOWYyMDZlYmNkLi4wZTQwZjM0YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwCkBAIC01NCw3ICs1NCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
aG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50IGludGVydmFsLCBpbnQgbmVzdGluZ0xldmVsKQog
CiBET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c093blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IGludGVydmFsLCBib29sIHNpbmds
ZVNob3QpCiAgICAgOiBTdXNwZW5kYWJsZVRpbWVyKGNvbnRleHQpCi0gICAgLCBtX3RpbWVvdXRJ
ZChjb250ZXh0LT5uZXdVbmlxdWVJRCgpKQogICAgICwgbV9uZXN0aW5nTGV2ZWwodGltZXJOZXN0
aW5nTGV2ZWwgKyAxKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9vcmlnaW5hbElu
dGVydmFsKGludGVydmFsKQpAQCAtNjIsNyArNjEsMTAgQEAgRE9NVGltZXI6OkRPTVRpbWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9u
PgogICAgIGlmIChzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGluZ0xl
dmVsKSkKICAgICAgICAgbV91c2VyR2VzdHVyZVRva2VuID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6
OmN1cnJlbnRUb2tlbigpOwogCi0gICAgY29udGV4dC0+YWRkVGltZW91dChtX3RpbWVvdXRJZCwg
dGhpcyk7CisgICAgLy8gS2VlcCBhc2tpbmcgZm9yIHRoZSBuZXh0IGlkIHVudGlsIHdlJ3JlIGdp
dmVuIG9uZSB0aGF0IHdlIGRvbid0IGFscmVhZHkgaGF2ZS4KKyAgICBkbyB7CisgICAgICAgIG1f
dGltZW91dElkID0gY29udGV4dC0+Y2lyY3VsYXJTZXF1ZW50aWFsSUQoKTsKKyAgICB9IHdoaWxl
IChVTkxJS0VMWSghY29udGV4dC0+YWRkVGltZW91dChtX3RpbWVvdXRJZCwgdGhpcykpKTsKIAog
ICAgIGRvdWJsZSBpbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVydmFsQ2xhbXBlZFRvTWluaW11
bShpbnRlcnZhbCwgY29udGV4dC0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CiAgICAgaWYgKHNp
bmdsZVNob3QpCg==
</data>
<flag name="review"
          id="192809"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="192810"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188409</attachid>
            <date>2013-02-14 12:53:16 -0800</date>
            <delta_ts>2013-02-14 13:51:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8920</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYzUyYWI4M2E2Li4zYmQ5OTQ0NzljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTItMTEtMjYgIENvc21pbiBUcnV0YSAgPGN0cnV0YUByaW0uY29tPgorCisg
ICAgICAgIE51bWVyaWMgaWRlbnRpZmllcnMgb2YgZXZlbnRzIGFyZSBub3QgZ3VhcmFudGVlZCB0
byBiZSB1bmlxdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMzI1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXN1bHRzIG9mIHNldFRpbWVvdXQsIHNldEludGVydmFsIGFuZCBuYXZpZ2F0b3Iu
Z2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbgorICAgICAgICBhcmUgcG9zaXRpdmUgaW50ZWdlciB2
YWx1ZXMgZXh0cmFjdGVkIGZyb20gYSBzaW1wbGUgY2lyY3VsYXIgc2VxdWVudGlhbCBudW1iZXIK
KyAgICAgICAgZ2VuZXJhdG9yLCB3aG9zZSB1bmlxdWVuZXNzIGNhbiBiZSBndWFyYW50ZWVkIGZv
ciBubyBtb3JlIHRoYW4gMl4zMSBjYWxscyB0bworICAgICAgICBhbnkgb2YgdGhlc2UgZnVuY3Rp
b25zLiBJbiBvcmRlciB0byBwcm92aWRlIHRoaXMgZ3VhcmFudGVlIGJleW9uZCB0aGlzIGxpbWl0
LAorICAgICAgICB3ZSByZXBlYXRlZGx5IGFzayBmb3IgdGhlIG5leHQgc2VxdWVudGlhbCBpZCB1
bnRpbCB3ZSBnZXQgb25lIHRoYXQncyBub3QgdXNlZAorICAgICAgICBhbHJlYWR5LgorCisgICAg
ICAgIFRoaXMgc29sdXRpb24gd29ya3MgaW5zdGFudGx5IHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFu
Y2VzLCB3aGVuIHRoZXJlIGFyZSBmZXcKKyAgICAgICAgbGl2ZSB0aW1lb3V0IGlkcyBvciBnZW9s
b2NhdGlvbiBpZHMgYXQgYW55IGdpdmVuIG1vbWVudC4gSGFuZGxpbmcgbWlsbGlvbnMgb2YKKyAg
ICAgICAgbGl2ZSBpZHMgd2lsbCByZXF1aXJlIGFub3RoZXIgc29sdXRpb24uCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBCcmllZiB0ZXN0cyBvZiB1bmlxdWVuZXNzIGFscmVhZHkgZXhpc3QuCisg
ICAgICAgIE1vcmVvdmVyLCByZXByb2R1Y2luZyB0aGlzIHBhcnRpY3VsYXIgaXNzdWUgd291bGQg
cmVxdWlyZSAyXjMxIHNldC9jbGVhcgorICAgICAgICBmdW5jdGlvbiBjYWxscywgd2hpY2ggaXMg
cHJvaGliaXRpdmVseSBleHBlbnNpdmUuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpXYXRjaGVy
czo6YWRkKTogUmVuYW1lIGZyb20gV2F0Y2hlcnM6OnNldDsgcmV0dXJuIGZhbHNlIGlmIHdhdGNo
IGlkIGFscmVhZHkgZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OndhdGNo
UG9zaXRpb24pOiBSZXBlYXQgdW50aWwgdGhlIG5ldyB3YXRjaCBpZCBpcyB1bmlxdWUuCisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oOgorICAgICAgICAoV2F0Y2hl
cnMpOiBSZW5hbWUgV2F0Y2hlcnM6OnNldCB0byBXYXRjaGVyczo6YWRkLgorICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsOiBSZW5hbWUgdGhlIGFyZ3VtZW50IG9m
IEdlb2xvY2F0aW9uOjpjbGVhcldhdGNoIHRvIFdhdGNoSUQuCisgICAgICAgICogZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6IFVwZGF0ZSBpbml0aWFsaXphdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNpcmN1bGFyU2VxdWVu
dGlhbElEKTogUmVuYW1lIGZyb20gbmV3VW5pcXVlSUQ7IHJlbW92ZSBGSVhNRSBub3RlLgorICAg
ICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KTogUmVuYW1lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Om5ld1VuaXF1ZUlE
IHRvIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNpcmN1bGFyU2VxdWVudGlhbElELgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkVGltZW91dCk6IFJldHVybiBm
YWxzZSAoZG8gbm90IGFzc2VydCkgaWYgdGltZW91dCBpZCBhbHJlYWR5IGV4aXN0cy4KKyAgICAg
ICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpET01U
aW1lcik6IFJlcGVhdCB1bnRpbCB0aGUgbmV3IHRpbWVvdXQgaWQgaXMgdW5pcXVlLgorCiAyMDEz
LTAyLTEzICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBCZXR0
ZXIgbmFtZXMgZm9yIEVsZW1lbnRBdHRyaWJ1dGVEYXRhICYgc3ViY2xhc3Nlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXgg
ZDRiNzM5ZTRhZi4uMTVjNDY5N2ZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTE3MywxMyArMTczLDE1IEBAIHZvaWQg
R2VvbG9jYXRpb246Okdlb05vdGlmaWVyOjp0aW1lckZpcmVkKFRpbWVyPEdlb05vdGlmaWVyPiop
CiAgICAgbV9nZW9sb2NhdGlvbi0+cmVxdWVzdFRpbWVkT3V0KHRoaXMpOwogfQogCi12b2lkIEdl
b2xvY2F0aW9uOjpXYXRjaGVyczo6c2V0KGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4g
cHJwTm90aWZpZXIpCitib29sIEdlb2xvY2F0aW9uOjpXYXRjaGVyczo6YWRkKGludCBpZCwgUGFz
c1JlZlB0cjxHZW9Ob3RpZmllcj4gcHJwTm90aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlkID4gMCk7
CiAgICAgUmVmUHRyPEdlb05vdGlmaWVyPiBub3RpZmllciA9IHBycE5vdGlmaWVyOwogCi0gICAg
bV9pZFRvTm90aWZpZXJNYXAuc2V0KGlkLCBub3RpZmllci5nZXQoKSk7CisgICAgaWYgKCFtX2lk
VG9Ob3RpZmllck1hcC5hZGQoaWQsIG5vdGlmaWVyLmdldCgpKS5pc05ld0VudHJ5KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgbV9ub3RpZmllclRvSWRNYXAuc2V0KG5vdGlmaWVyLnJlbGVh
c2UoKSwgaWQpOworICAgIHJldHVybiB0cnVlOwogfQogCiBHZW9sb2NhdGlvbjo6R2VvTm90aWZp
ZXIqIEdlb2xvY2F0aW9uOjpXYXRjaGVyczo6ZmluZChpbnQgaWQpCkBAIC0zMDcsOCArMzA5LDEx
IEBAIGludCBHZW9sb2NhdGlvbjo6d2F0Y2hQb3NpdGlvbihQYXNzUmVmUHRyPFBvc2l0aW9uQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzCiAgICAgUmVmUHRyPEdlb05vdGlmaWVyPiBub3Rp
ZmllciA9IEdlb05vdGlmaWVyOjpjcmVhdGUodGhpcywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNh
bGxiYWNrLCBvcHRpb25zKTsKICAgICBzdGFydFJlcXVlc3Qobm90aWZpZXIuZ2V0KCkpOwogCi0g
ICAgaW50IHdhdGNoSUQgPSBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPm5ld1VuaXF1ZUlEKCk7
Ci0gICAgbV93YXRjaGVycy5zZXQod2F0Y2hJRCwgbm90aWZpZXIucmVsZWFzZSgpKTsKKyAgICBp
bnQgd2F0Y2hJRDsKKyAgICAvLyBLZWVwIGFza2luZyBmb3IgdGhlIG5leHQgaWQgdW50aWwgd2Un
cmUgZ2l2ZW4gb25lIHRoYXQgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlLgorICAgIGRvIHsKKyAgICAg
ICAgd2F0Y2hJRCA9IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y2lyY3VsYXJTZXF1ZW50aWFs
SUQoKTsKKyAgICB9IHdoaWxlICghbV93YXRjaGVycy5hZGQod2F0Y2hJRCwgbm90aWZpZXIpKTsK
ICAgICByZXR1cm4gd2F0Y2hJRDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4IGYzYmVkMzRlZWMuLmExYmQ5ZWI4M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgK
QEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgV2F0Y2hlcnMgewogICAg
IHB1YmxpYzoKLSAgICAgICAgdm9pZCBzZXQoaW50IGlkLCBQYXNzUmVmUHRyPEdlb05vdGlmaWVy
Pik7CisgICAgICAgIGJvb2wgYWRkKGludCBpZCwgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4pOwog
ICAgICAgICBHZW9Ob3RpZmllciogZmluZChpbnQgaWQpOwogICAgICAgICB2b2lkIHJlbW92ZShp
bnQgaWQpOwogICAgICAgICB2b2lkIHJlbW92ZShHZW9Ob3RpZmllciopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCA1YWQz
YzdiOTVhLi5mNDMwYzhkMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbApAQCAtMzcsNiArMzcsNiBAQAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIFBvc2l0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAotICAgIHZvaWQgY2xlYXJXYXRjaChpbiBs
b25nIHdhdGNoSWQpOworICAgIHZvaWQgY2xlYXJXYXRjaChpbiBsb25nIHdhdGNoSUQpOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4
IDgwMjIyNDNiY2MuLmQyODBjNjI1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OkFkZENvbnNvbGVNZXNzYWdlVGFzazo6cGVyZm9ybVRhc2soU2NyaXB0RXhl
Y3V0aW9uQwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
CiAgICAgOiBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVz
dHJ1Y3RvcihmYWxzZSkKLSAgICAsIG1fc2VxdWVudGlhbElEKDApCisgICAgLCBtX2NpcmN1bGFy
U2VxdWVudGlhbElEKDApCiAgICAgLCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogICAg
ICwgbV9hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9yZWFzb25G
b3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0cyhzdGF0aWNfY2FzdDxBY3RpdmVET01PYmplY3Q6
OlJlYXNvbkZvclN1c3BlbnNpb24+KC0xKSkKQEAgLTM0OSwxNCArMzQ5LDEyIEBAIGJvb2wgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQKICAgICByZXR1cm4gZXJyb3JFdmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
OwogfQogCi1pbnQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6bmV3VW5pcXVlSUQoKQoraW50IFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNpcmN1bGFyU2VxdWVudGlhbElEKCkKIHsKLSAgICArK21f
c2VxdWVudGlhbElEOwotICAgIC8vIEZJWE1FOiBXZSBwcmV2ZW50IHdyYXBhcm91bmQgZnJvbSBi
ZWNvbWluZyBuZWdhdGl2ZSB3aXRoIGEgc2ltcGxlIHNvbHV0aW9uIHdoaWNoCi0gICAgLy8gZW5z
dXJlcyB0aGUgcmVzdWx0IGhhcyBhIGNvcnJlY3QgcmFuZ2UsIGJ1dCB3aXRob3V0IGZ1bGx5IGd1
YXJhbnRlZWluZyB1bmlxdWVuZXNzLgotICAgIGlmIChtX3NlcXVlbnRpYWxJRCA8PSAwKQotICAg
ICAgICBtX3NlcXVlbnRpYWxJRCA9IDE7Ci0gICAgcmV0dXJuIG1fc2VxdWVudGlhbElEOworICAg
ICsrbV9jaXJjdWxhclNlcXVlbnRpYWxJRDsKKyAgICBpZiAobV9jaXJjdWxhclNlcXVlbnRpYWxJ
RCA8PSAwKQorICAgICAgICBtX2NpcmN1bGFyU2VxdWVudGlhbElEID0gMTsKKyAgICByZXR1cm4g
bV9jaXJjdWxhclNlcXVlbnRpYWxJRDsKIH0KIAogI2lmIEVOQUJMRShCTE9CKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTQwMzBmOWFhNy4uNjFl
NGI1OGUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CkBAIC0xNDUsMTAgKzE0NSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRh
c2soUGFzc093blB0cjxUYXNrPikgPSAwOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0
J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCi0gICAgLy8gQ3JlYXRlcyBhIHVuaXF1ZSBpZCBm
b3Igc2V0VGltZW91dCwgc2V0SW50ZXJ2YWwgb3IgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNo
UG9zaXRpb24uCi0gICAgaW50IG5ld1VuaXF1ZUlEKCk7CisgICAgLy8gR2V0cyB0aGUgbmV4dCBp
ZCBpbiBhIGNpcmN1bGFyIHNlcXVlbmNlIGZyb20gMSB0byAyXjMxLTEuCisgICAgaW50IGNpcmN1
bGFyU2VxdWVudGlhbElEKCk7CiAKLSAgICB2b2lkIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwg
RE9NVGltZXIqIHRpbWVyKSB7IEFTU0VSVCghbV90aW1lb3V0cy5jb250YWlucyh0aW1lb3V0SWQp
KTsgbV90aW1lb3V0cy5zZXQodGltZW91dElkLCB0aW1lcik7IH0KKyAgICBib29sIGFkZFRpbWVv
dXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVyKSB7IHJldHVybiBtX3RpbWVvdXRzLmFk
ZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9CiAgICAgdm9pZCByZW1vdmVUaW1lb3V0
KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0cy5yZW1vdmUodGltZW91dElkKTsgfQogICAgIERP
TVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGltZW91dElkKSB7IHJldHVybiBtX3RpbWVvdXRzLmdl
dCh0aW1lb3V0SWQpOyB9CiAKQEAgLTIxNiw3ICsyMTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3RzOwogICAgIGJvb2wgbV9pbkRlc3RydWN0b3I7CiAK
LSAgICBpbnQgbV9zZXF1ZW50aWFsSUQ7CisgICAgaW50IG1fY2lyY3VsYXJTZXF1ZW50aWFsSUQ7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgRE9NVGltZXIqPiBUaW1lb3V0TWFwOwogICAgIFRp
bWVvdXRNYXAgbV90aW1lb3V0czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCA1MDIz
Mzk0MWMzLi4zMTA4YzQ4OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtNTQsNyAr
NTQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKGludCBp
bnRlcnZhbCwgaW50IG5lc3RpbmdMZXZlbCkKIAogRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rp
b24sIGludCBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQogICAgIDogU3VzcGVuZGFibGVUaW1l
cihjb250ZXh0KQotICAgICwgbV90aW1lb3V0SWQoY29udGV4dC0+bmV3VW5pcXVlSUQoKSkKICAg
ICAsIG1fbmVzdGluZ0xldmVsKHRpbWVyTmVzdGluZ0xldmVsICsgMSkKICAgICAsIG1fYWN0aW9u
KGFjdGlvbikKICAgICAsIG1fb3JpZ2luYWxJbnRlcnZhbChpbnRlcnZhbCkKQEAgLTYyLDcgKzYx
LDEwIEBAIERPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4KICAgICBpZiAoc2hvdWxkRm9yd2FyZFVzZXJH
ZXN0dXJlKGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiAgICAgICAgIG1fdXNlckdlc3R1cmVU
b2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VG9rZW4oKTsKIAotICAgIGNvbnRl
eHQtPmFkZFRpbWVvdXQobV90aW1lb3V0SWQsIHRoaXMpOworICAgIC8vIEtlZXAgYXNraW5nIGZv
ciB0aGUgbmV4dCBpZCB1bnRpbCB3ZSdyZSBnaXZlbiBvbmUgdGhhdCB3ZSBkb24ndCBhbHJlYWR5
IGhhdmUuCisgICAgZG8geworICAgICAgICBtX3RpbWVvdXRJZCA9IGNvbnRleHQtPmNpcmN1bGFy
U2VxdWVudGlhbElEKCk7CisgICAgfSB3aGlsZSAoIWNvbnRleHQtPmFkZFRpbWVvdXQobV90aW1l
b3V0SWQsIHRoaXMpKTsKIAogICAgIGRvdWJsZSBpbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVy
dmFsQ2xhbXBlZFRvTWluaW11bShpbnRlcnZhbCwgY29udGV4dC0+bWluaW11bVRpbWVySW50ZXJ2
YWwoKSk7CiAgICAgaWYgKHNpbmdsZVNob3QpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>