<?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>154930</bug_id>
          
          <creation_ts>2016-03-02 13:55:31 -0800</creation_ts>
          <short_desc>Add state dumping facility</short_desc>
          <delta_ts>2016-03-09 16:45:29 -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>WebKit2</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154148</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169929</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-03-02 13:55:31 -0800</bug_when>
    <thetext>Add support for dumping state information when there&apos;s a crash or other type of fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169930</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-02 13:56:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/24939135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172239</commentid>
    <comment_count>2</comment_count>
      <attachid>273345</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-03-08 15:20:24 -0800</bug_when>
    <thetext>Created attachment 273345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172240</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-08 15:22:02 -0800</bug_when>
    <thetext>Attachment 273345 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:217:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172270</commentid>
    <comment_count>4</comment_count>
      <attachid>273345</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-08 15:55:35 -0800</bug_when>
    <thetext>Comment on attachment 273345
Patch

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

Check if sam or anders can do a proper review for this one.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:938
&gt; +    std::chrono::system_clock::time_point lastPageLoadTime() const { return m_lastPageLoadTime; }

The name &quot;lastPageLoadTime&quot; is a bit confusing. I would prefer something like &quot;loadCommitTime&quot;.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:232
&gt; +            for (auto&amp; page : this-&gt;m_pageMap.values()) {

do we need the explicit this-&gt; ?

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:284
&gt; +    (void) os_state_add_handler(queue, block);

Do we really need this (void) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172278</commentid>
    <comment_count>5</comment_count>
      <attachid>273345</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-03-08 16:07:20 -0800</bug_when>
    <thetext>Comment on attachment 273345
Patch

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

Patch looks very good overall!

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:217
&gt; +    os_state_block_t block = ^(os_state_hints_t hints) {

I think you could just pass the block directly to os_state_add_handler here instead of declaring it and then calling os_state_add_handler.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:229
&gt; +            auto stateDict = [[[NSMutableDictionary alloc] init] autorelease];

Instead of using autorelease here, you can use a RetainPtr. Something like

auto stateDictionary = adoptNS([[NSMutabledictionary alloc] init]);

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:231
&gt; +            auto pageLoadTimes = [[[NSMutableArray alloc] init] autorelease];

Same thing here.

&gt;&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:232
&gt;&gt; +            for (auto&amp; page : this-&gt;m_pageMap.values()) {
&gt; 
&gt; do we need the explicit this-&gt; ?

I don&apos;t think so.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:238
&gt; +                time_t t = std::chrono::system_clock::to_time_t(page-&gt;lastPageLoadTime());
&gt; +                NSDate* asDate = [NSDate dateWithTimeIntervalSince1970:t];
&gt; +                [pageLoadTimes addObject:asDate];

I&apos;d just fold t into the date here. I&apos;d call &quot;asDate&quot; just date.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:257
&gt; +            NSError* error;

Error should be initialized to nil here (I think).

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:262
&gt; +            NSData* data = [NSPropertyListSerialization
&gt; +                dataWithPropertyList: stateDict
&gt; +                format: NSPropertyListBinaryFormat_v1_0
&gt; +                options: 0
&gt; +                error: &amp;error];

We don&apos;t use this Objective-C method formatting anymore; these all go on one line.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:265
&gt; +                LOG_ALWAYS_ERROR(&quot;Error serializing process state information: %{public}@&quot;, error);

I don&apos;t think it&apos;s useful to log the error here - the only time we&apos;d fail to serialize the dictionary is if it contains objects that can&apos;t be serialized. Since we control the dictionary, I think you can just ASSERT(data) here.

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:275
&gt; +                // os_state-&gt;osd_decoder = ...;

Is this a FIXME comment? If so, it&apos;s better to say something like:

// FIXME: Fill in osd_decoder with ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172308</commentid>
    <comment_count>6</comment_count>
      <attachid>273368</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-03-08 16:50:48 -0800</bug_when>
    <thetext>Created attachment 273368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172647</commentid>
    <comment_count>7</comment_count>
      <attachid>273368</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-03-09 11:48:13 -0800</bug_when>
    <thetext>Comment on attachment 273368
Patch

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

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:243
&gt; +            if (pageLoadTimes.get().count)

Our coding style is to not use .get().count (too many dots) - instead we use [pageLoadTimes count].

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:244
&gt; +                stateDict.get()[@&quot;Page Load Times&quot;] = pageLoadTimes.get();

Same thing here - I&quot;d just use [pageLoadTimes setObject: forKey:].

&gt; Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm:251
&gt; +            if (!stateDict.get().count)

And same thing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172810</commentid>
    <comment_count>8</comment_count>
      <attachid>273490</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-03-09 15:16:17 -0800</bug_when>
    <thetext>Created attachment 273490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172881</commentid>
    <comment_count>9</comment_count>
      <attachid>273490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-09 16:45:24 -0800</bug_when>
    <thetext>Comment on attachment 273490
Patch

Clearing flags on attachment: 273490

Committed r197901: &lt;http://trac.webkit.org/changeset/197901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172882</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-09 16:45:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273345</attachid>
            <date>2016-03-08 15:20:24 -0800</date>
            <delta_ts>2016-03-08 16:50:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154930-20160308152010.patch</filename>
            <type>text/plain</type>
            <size>8329</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI1NmQxYmNkODMwMjA5ZTQzZjU0OGJk
NTQxMzAzYTYxYmNiYjIzOGQuLmYzODBhM2ExYTA3MGQ1NTc2YzMyN2IwZTI3MmQ3YjRlZmJlNTdk
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDMtMDggIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0ZSBkdW1waW5nIGZhY2lsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MzAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTM5MTM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBPU19TVEFURSBmbGFnIHRvIGNvbnRyb2wgdGhl
IGluY2x1c2lvbiBvZiBwcm9jZXNzIHN0YXRlIGR1bXBpbmcKKyAgICAgICAgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE2LTAzLTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHZjeHBy
b2ogYnVpbGQgc3lzdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjE5OGJkYzEwYWI3MTI3OTcyNGIwNTEwZGY5
Y2ZiN2JiMjAyMGMzNy4uYjI2NDU1NzgwMTgyNTMxOTA5NzY2N2QzMThlZjg1ZWVlM2EzYThkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTA4ICBLZWl0aCBSb2xsaW4gIDxr
cm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3RhdGUgZHVtcGluZyBmYWNpbGl0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTMwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDkzOTEzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb2xsZWN0IHRoZSB0aW1lcyBhdCB3aGljaCBwYWdl
cyBhcmUgbG9hZGVkLiBEdW1wIHRoZW0gd2hlbiBhbiBPUworICAgICAgICBzdGF0ZSBkdW1wIGlz
IHRyaWdnZXJlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bGFz
dFBhZ2VMb2FkVGltZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6CisKIDIwMTYtMDMtMDcg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHN0
YXJ0dXAgYW5kIHNodXRkb3duIGNvc3Qgb2YgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCBiOWFiMWUzOTdjZjdjZjYyZmMyMzNmN2Y2MWY3N2EzOTFhNDc1Y2U3Li41MmIy
ZDgyYmUzMjJmODFkYjM0NzNjM2RiNGIxZDhlOWY0ZThiMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTEx
MzYsNiArMTEzNiw5IEBACiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQogI2RlZmluZSBVU0VfT1NfTE9HIDEK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBVU0VfT1NfU1RBVEUgMQorI2Vu
ZGlmCiAjZW5kaWYKIAogI2VuZGlmIC8qIFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTE5M2Q5ODIxOTVlN2Vm
ZWZkMDU1ZmFlMDAzYThlNTQyYjM0ZjY1Ny4uZDdjMmMxYmYwYmMzNDVjNGExMzZlYWI5ZDk4Y2Jk
Yzg4YTcxNGM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNDgyOCw2ICs0ODI4LDEwIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9h
ZChXZWJGcmFtZSogZnJhbWUpCiAgICAgcmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
ICNlbmRpZgogCisjaWYgVVNFKE9TX1NUQVRFKQorICAgIG1fbGFzdFBhZ2VMb2FkVGltZSA9IHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworI2VuZGlmCisKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOwogCiAgICAgdXBkYXRlTWFpbkZyYW1l
U2Nyb2xsT2Zmc2V0UGlubmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggOGVlZjgyZTQ3NWM3M2YxMDEwYmE3ZGIxYzAzZmE0MTYwYWI4MGMy
OS4uODU0ODI4MTg0NjJkMzY4OTJmNGE1NjYyMmI2NmYwMDVjNTZlYjMzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MzQsNiArOTM0LDEwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5zZXJ0TmV3bGluZUluUXVvdGVkQ29udGVudCgpOwogCisj
aWYgVVNFKE9TX1NUQVRFKQorICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbGFzdFBhZ2VMb2FkVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBhZ2VMb2FkVGltZTsg
fQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtMTQ0Miw2ICsxNDQ2LDEwIEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIFJlZlB0cjxX
ZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4g
bV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2s7CiAjZW5kaWYKKworI2lmIFVTRShPU19TVEFU
RSkKKyAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1fbGFzdFBhZ2VM
b2FkVGltZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGExMWY3ODgzNjU3OGEwZDdlMTA4OTFmMWU0
ODFmODU3NGQzYmQyOTQuLmZhNmQ2YWMxNzc5MThmZGM0ODJjYmRlOWMwNTU4Mzg2ZGYxNjM5ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yMTYsNiArMjE2LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCisjaWYgVVNFKE9TX1NUQVRFKQor
ICAgIHZvaWQgcmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBj
bGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CiAKICAgICB2b2lkIHBsYXRmb3JtVGVybWluYXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCmluZGV4IDQ2ZmFjOTExY2E3YjM0YzEyNzFhZGM0ODFmMzBjODEyZTBmNDVkYTIuLmRhYTg4
OTEyMTQ3ZTJmYmQ3ZjcxYzRmNzgzYzgzM2YyYWQ0NzQwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Niw2ICs2Niwx
MCBAQAogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjZW5kaWYKIAor
I2lmIFVTRShPU19TVEFURSkKKyNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+CisjZW5kaWYK
KwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjA2
LDEwICsyMTAsODkgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpCiAj
ZW5kaWYKIH0KIAorI2lmIFVTRShPU19TVEFURSkKK3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJX
aXRoU3RhdGVEdW1wZXIoKQoreworICAgIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUgPSBkaXNwYXRj
aF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApOwor
ICAgIG9zX3N0YXRlX2Jsb2NrX3QgYmxvY2sgPSBeKG9zX3N0YXRlX2hpbnRzX3QgaGludHMpIHsK
KworICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgIG9zX3N0YXRlX2RhdGFf
dCBvc19zdGF0ZSA9IG5pbDsKKworICAgICAgICAgICAgLy8gT25seSBnYXRoZXIgc3RhdGUgb24g
ZmF1bHRzIGFuZCBzeXNkaWFnbm9zZS4gSXQncyBvdmVya2lsbCBmb3IKKyAgICAgICAgICAgIC8v
IGdlbmVyYWwgZXJyb3IgbWVzc2FnZXMuCisgICAgICAgICAgICBpZiAoaGludHMtPm9zaF9hcGkg
PT0gT1NfU1RBVEVfQVBJX0VSUk9SKQorICAgICAgICAgICAgICAgIHJldHVybiBvc19zdGF0ZTsK
KworICAgICAgICAgICAgLy8gQ3JlYXRlIGEgZGljdGlvbmFyeSB0byBjb250YWluIHRoZSBjb2xs
ZWN0ZWQgc3RhdGUuIFRoaXMKKyAgICAgICAgICAgIC8vIGRpY3Rpb25hcnkgd2lsbCBiZSBzZXJp
YWxpemVkIGFuZCBwYXNzZWQgYmFjayB0byBvc19zdGF0ZS4KKyAgICAgICAgICAgIGF1dG8gc3Rh
dGVEaWN0ID0gW1tbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2Vd
OworCisgICAgICAgICAgICBhdXRvIHBhZ2VMb2FkVGltZXMgPSBbW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDog
dGhpcy0+bV9wYWdlTWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPnVz
ZXNFcGhlbWVyYWxTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICAgICAgdGltZV90IHQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0b190
aW1lX3QocGFnZS0+bGFzdFBhZ2VMb2FkVGltZSgpKTsKKyAgICAgICAgICAgICAgICBOU0RhdGUq
IGFzRGF0ZSA9IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6dF07CisgICAg
ICAgICAgICAgICAgW3BhZ2VMb2FkVGltZXMgYWRkT2JqZWN0OmFzRGF0ZV07CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC8vIEFkZGluZyBhbiBlbXB0eSBhcnJheSB0byB0aGUgcHJvY2Vz
cyBzdGF0ZSBtYXkgcHJvdmlkZSBhbgorICAgICAgICAgICAgLy8gaW5kaWNhdGlvbiBvZiB0aGUg
ZXhpc3RhbmNlIG9mIHByaXZhdGUgc2Vzc2lvbnMsIHdoaWNoIHdlJ2QgbGlrZQorICAgICAgICAg
ICAgLy8gdG8gaGlkZSwgc28gZG9uJ3QgYWRkIGVtcHR5IGFycmF5cy4KKyAgICAgICAgICAgIGlm
IChwYWdlTG9hZFRpbWVzLmNvdW50KQorICAgICAgICAgICAgICAgIHN0YXRlRGljdFtAIlBhZ2Ug
TG9hZCBUaW1lcyJdID0gcGFnZUxvYWRUaW1lczsKKworICAgICAgICAgICAgLy8gLS0tIFBvc3Np
Ymx5IGFkZCBvdGhlciBzdGF0ZSBoZXJlIGFzIG90aGVyIGVudHJpZXMgaW4gdGhlIGRpY3Rpb25h
cnkuIC0tLQorCisgICAgICAgICAgICAvLyBTdWJtaXR0aW5nIGFuIGVtcHR5IHByb2Nlc3Mgc3Rh
dGUgb2JqZWN0IG1heSBwcm92aWRlIGFuCisgICAgICAgICAgICAvLyBpbmRpY2F0aW9uIG9mIHRo
ZSBleGlzdGFuY2Ugb2YgcHJpdmF0ZSBzZXNzaW9ucywgd2hpY2ggd2UnZCBsaWtlCisgICAgICAg
ICAgICAvLyB0byBoaWRlLCBzbyBkb24ndCByZXR1cm4gZW1wdHkgZGljdGlvbmFyaWVzLgorICAg
ICAgICAgICAgaWYgKCFzdGF0ZURpY3QuY291bnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG9z
X3N0YXRlOworCisgICAgICAgICAgICAvLyBTZXJpYWxpemUgdGhlIGFjY3VtdWxhdGVkIHByb2Nl
c3Mgc3RhdGUgc28gdGhhdCB3ZSBjYW4gcHV0IHRoZQorICAgICAgICAgICAgLy8gcmVzdWx0IGlu
IGFuIG9zX3N0YXRlX2RhdGFfdCBzdHJ1Y3R1cmUuCisgICAgICAgICAgICBOU0Vycm9yKiBlcnJv
cjsKKyAgICAgICAgICAgIE5TRGF0YSogZGF0YSA9IFtOU1Byb3BlcnR5TGlzdFNlcmlhbGl6YXRp
b24KKyAgICAgICAgICAgICAgICBkYXRhV2l0aFByb3BlcnR5TGlzdDogc3RhdGVEaWN0CisgICAg
ICAgICAgICAgICAgZm9ybWF0OiBOU1Byb3BlcnR5TGlzdEJpbmFyeUZvcm1hdF92MV8wCisgICAg
ICAgICAgICAgICAgb3B0aW9uczogMAorICAgICAgICAgICAgICAgIGVycm9yOiAmZXJyb3JdOwor
CisgICAgICAgICAgICBpZiAoIWRhdGEpIHsKKyAgICAgICAgICAgICAgICBMT0dfQUxXQVlTX0VS
Uk9SKCJFcnJvciBzZXJpYWxpemluZyBwcm9jZXNzIHN0YXRlIGluZm9ybWF0aW9uOiAle3B1Ymxp
Y31AIiwgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybiBvc19zdGF0ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgc2l6ZV90IG5lZWRlZFNpemUgPSBPU19TVEFURV9EQVRBX1NJ
WkVfTkVFREVEKGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIG9zX3N0YXRlID0gKG9zX3N0YXRl
X2RhdGFfdCltYWxsb2MobmVlZGVkU2l6ZSk7CisgICAgICAgICAgICBpZiAob3Nfc3RhdGUpIHsK
KyAgICAgICAgICAgICAgICBtZW1zZXQob3Nfc3RhdGUsIDAsIG5lZWRlZFNpemUpOworICAgICAg
ICAgICAgICAgIG9zX3N0YXRlLT5vc2RfdHlwZSA9IE9TX1NUQVRFX0RBVEFfU0VSSUFMSVpFRF9O
U0NGX09CSkVDVDsKKyAgICAgICAgICAgICAgICBvc19zdGF0ZS0+b3NkX2RhdGFfc2l6ZSA9IGRh
dGEubGVuZ3RoOworICAgICAgICAgICAgICAgIC8vIG9zX3N0YXRlLT5vc2RfZGVjb2RlciA9IC4u
LjsKKyAgICAgICAgICAgICAgICBzdHJjcHkob3Nfc3RhdGUtPm9zZF90aXRsZSwgIldlYkNvbnRl
bnQgc3RhdGUiKTsgLy8gTkI6IE9ubHkgNjQgYnl0ZXMgb2YgYnVmZmVyIGhlcmUuCisgICAgICAg
ICAgICAgICAgbWVtY3B5KG9zX3N0YXRlLT5vc2RfZGF0YSwgZGF0YS5ieXRlcywgZGF0YS5sZW5n
dGgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gb3Nfc3RhdGU7CisgICAg
ICAgIH0KKyAgICB9OworCisgICAgKHZvaWQpIG9zX3N0YXRlX2FkZF9oYW5kbGVyKHF1ZXVlLCBi
bG9jayk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQ
cm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiAg
ICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOwogCisjaWYgVVNFKE9TX1NUQVRFKQorICAg
IHJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShTRUNfSVRF
TV9TSElNKQogICAgIFNlY0l0ZW1TaGltOjpzaW5nbGV0b24oKS5pbml0aWFsaXplKHRoaXMpOwog
I2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273368</attachid>
            <date>2016-03-08 16:50:48 -0800</date>
            <delta_ts>2016-03-09 15:16:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154930-20160308165035.patch</filename>
            <type>text/plain</type>
            <size>8071</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI1NmQxYmNkODMwMjA5ZTQzZjU0OGJk
NTQxMzAzYTYxYmNiYjIzOGQuLmYzODBhM2ExYTA3MGQ1NTc2YzMyN2IwZTI3MmQ3YjRlZmJlNTdk
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDMtMDggIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0ZSBkdW1waW5nIGZhY2lsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MzAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTM5MTM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBPU19TVEFURSBmbGFnIHRvIGNvbnRyb2wgdGhl
IGluY2x1c2lvbiBvZiBwcm9jZXNzIHN0YXRlIGR1bXBpbmcKKyAgICAgICAgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE2LTAzLTA0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHZjeHBy
b2ogYnVpbGQgc3lzdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjE5OGJkYzEwYWI3MTI3OTcyNGIwNTEwZGY5
Y2ZiN2JiMjAyMGMzNy4uYjI2NDU1NzgwMTgyNTMxOTA5NzY2N2QzMThlZjg1ZWVlM2EzYThkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTA4ICBLZWl0aCBSb2xsaW4gIDxr
cm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3RhdGUgZHVtcGluZyBmYWNpbGl0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTMwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDkzOTEzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb2xsZWN0IHRoZSB0aW1lcyBhdCB3aGljaCBwYWdl
cyBhcmUgbG9hZGVkLiBEdW1wIHRoZW0gd2hlbiBhbiBPUworICAgICAgICBzdGF0ZSBkdW1wIGlz
IHRyaWdnZXJlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bGFz
dFBhZ2VMb2FkVGltZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyk6CisKIDIwMTYtMDMtMDcg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHN0
YXJ0dXAgYW5kIHNodXRkb3duIGNvc3Qgb2YgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCBiOWFiMWUzOTdjZjdjZjYyZmMyMzNmN2Y2MWY3N2EzOTFhNDc1Y2U3Li41MmIy
ZDgyYmUzMjJmODFkYjM0NzNjM2RiNGIxZDhlOWY0ZThiMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTEx
MzYsNiArMTEzNiw5IEBACiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQogI2RlZmluZSBVU0VfT1NfTE9HIDEK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2RlZmluZSBVU0VfT1NfU1RBVEUgMQorI2Vu
ZGlmCiAjZW5kaWYKIAogI2VuZGlmIC8qIFdURl9QbGF0Zm9ybV9oICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTE5M2Q5ODIxOTVlN2Vm
ZWZkMDU1ZmFlMDAzYThlNTQyYjM0ZjY1Ny4uOTBhZGZjNjNhNjVjNGM1N2M0OGU1ODE0ZTdhYzQz
ZjM3MTc0NGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNDgyOCw2ICs0ODI4LDEwIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9h
ZChXZWJGcmFtZSogZnJhbWUpCiAgICAgcmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
ICNlbmRpZgogCisjaWYgVVNFKE9TX1NUQVRFKQorICAgIG1fbG9hZENvbW1pdFRpbWUgPSBzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyNlbmRpZgorCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkudXBkYXRlQWN0aXZlUGFnZXMoKTsKIAogICAgIHVwZGF0ZU1haW5GcmFtZVNj
cm9sbE9mZnNldFBpbm5pbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IDhlZWY4MmU0NzVjNzNmMTAxMGJhN2RiMWMwM2ZhNDE2MGFiODBjMjku
LmYwYzcyZmNkNDk5ZDQ5N2QyZDljNmUzMDMzYTUzMTc0ZmQ4NDY1OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTM0LDYgKzkzNCwxMCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGluc2VydE5ld2xpbmVJblF1b3RlZENvbnRlbnQoKTsKIAorI2lm
IFVTRShPU19TVEFURSkKKyAgICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
IGxvYWRDb21taXRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkQ29tbWl0VGltZTsgfQorI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtMTQ0Miw2ICsxNDQ2LDEwIEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIFJlZlB0cjxXZWJDb3Jl
OjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4gbV9pbnN0
YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2s7CiAjZW5kaWYKKworI2lmIFVTRShPU19TVEFURSkKKyAg
ICBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1fbG9hZENvbW1pdFRpbWU7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhMTFmNzg4MzY1NzhhMGQ3ZTEwODkxZjFlNDgxZjg1NzRk
M2JkMjk0Li5mYTZkNmFjMTc3OTE4ZmRjNDgyY2JkZTljMDU1ODM4NmRmMTYzOWY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjE2LDYgKzIxNiwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmKTsKIAorI2lmIFVTRShPU19TVEFURSkKKyAgICB2b2lk
IHJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCk7CisjZW5kaWYKKwogICAgIHZvaWQgY2xlYXJDYWNo
ZWRDcmVkZW50aWFscygpOwogCiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRl
eCA0NmZhYzkxMWNhN2IzNGMxMjcxYWRjNDgxZjMwYzgxMmUwZjQ1ZGEyLi5iY2YzNDQ2M2M5NDE2
M2UwNDQ1ZDAzNzg4NjRjMGM3ODI5ODBiOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjYsNiArNjYsMTAgQEAKICNp
bXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKKyNpZiBVU0Uo
T1NfU1RBVEUpCisjaW5jbHVkZSA8b3Mvc3RhdGVfcHJpdmF0ZS5oPgorI2VuZGlmCisKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTIwNiwxMCArMjEw
LDgxIEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKQogI2VuZGlmCiB9
CiAKKyNpZiBVU0UoT1NfU1RBVEUpCit2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyV2l0aFN0YXRl
RHVtcGVyKCkKK3sKKyAgICBkaXNwYXRjaF9xdWV1ZV90IHF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKTsKKyAgICBvc19z
dGF0ZV9hZGRfaGFuZGxlcihxdWV1ZSwgXihvc19zdGF0ZV9oaW50c190IGhpbnRzKSB7CisKKyAg
ICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICBvc19zdGF0ZV9kYXRhX3Qgb3Nf
c3RhdGUgPSBuaWw7CisKKyAgICAgICAgICAgIC8vIE9ubHkgZ2F0aGVyIHN0YXRlIG9uIGZhdWx0
cyBhbmQgc3lzZGlhZ25vc2UuIEl0J3Mgb3ZlcmtpbGwgZm9yCisgICAgICAgICAgICAvLyBnZW5l
cmFsIGVycm9yIG1lc3NhZ2VzLgorICAgICAgICAgICAgaWYgKGhpbnRzLT5vc2hfYXBpID09IE9T
X1NUQVRFX0FQSV9FUlJPUikKKyAgICAgICAgICAgICAgICByZXR1cm4gb3Nfc3RhdGU7CisKKyAg
ICAgICAgICAgIC8vIENyZWF0ZSBhIGRpY3Rpb25hcnkgdG8gY29udGFpbiB0aGUgY29sbGVjdGVk
IHN0YXRlLiBUaGlzCisgICAgICAgICAgICAvLyBkaWN0aW9uYXJ5IHdpbGwgYmUgc2VyaWFsaXpl
ZCBhbmQgcGFzc2VkIGJhY2sgdG8gb3Nfc3RhdGUuCisgICAgICAgICAgICBhdXRvIHN0YXRlRGlj
dCA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisKKyAgICAg
ICAgICAgIGF1dG8gcGFnZUxvYWRUaW1lcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdF0pOworICAgICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVl
cygpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCkp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgTlNEYXRl
KiBkYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0b190aW1lX3QocGFnZS0+bG9hZENvbW1pdFRpbWUoKSldOworICAg
ICAgICAgICAgICAgIFtwYWdlTG9hZFRpbWVzIGFkZE9iamVjdDpkYXRlXTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgLy8gQWRkaW5nIGFuIGVtcHR5IGFycmF5IHRvIHRoZSBwcm9jZXNz
IHN0YXRlIG1heSBwcm92aWRlIGFuCisgICAgICAgICAgICAvLyBpbmRpY2F0aW9uIG9mIHRoZSBl
eGlzdGFuY2Ugb2YgcHJpdmF0ZSBzZXNzaW9ucywgd2hpY2ggd2UnZCBsaWtlCisgICAgICAgICAg
ICAvLyB0byBoaWRlLCBzbyBkb24ndCBhZGQgZW1wdHkgYXJyYXlzLgorICAgICAgICAgICAgaWYg
KHBhZ2VMb2FkVGltZXMuZ2V0KCkuY291bnQpCisgICAgICAgICAgICAgICAgc3RhdGVEaWN0Lmdl
dCgpW0AiUGFnZSBMb2FkIFRpbWVzIl0gPSBwYWdlTG9hZFRpbWVzLmdldCgpOworCisgICAgICAg
ICAgICAvLyAtLS0gUG9zc2libHkgYWRkIG90aGVyIHN0YXRlIGhlcmUgYXMgb3RoZXIgZW50cmll
cyBpbiB0aGUgZGljdGlvbmFyeS4gLS0tCisKKyAgICAgICAgICAgIC8vIFN1Ym1pdHRpbmcgYW4g
ZW1wdHkgcHJvY2VzcyBzdGF0ZSBvYmplY3QgbWF5IHByb3ZpZGUgYW4KKyAgICAgICAgICAgIC8v
IGluZGljYXRpb24gb2YgdGhlIGV4aXN0YW5jZSBvZiBwcml2YXRlIHNlc3Npb25zLCB3aGljaCB3
ZSdkIGxpa2UKKyAgICAgICAgICAgIC8vIHRvIGhpZGUsIHNvIGRvbid0IHJldHVybiBlbXB0eSBk
aWN0aW9uYXJpZXMuCisgICAgICAgICAgICBpZiAoIXN0YXRlRGljdC5nZXQoKS5jb3VudCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gb3Nfc3RhdGU7CisKKyAgICAgICAgICAgIC8vIFNlcmlhbGl6
ZSB0aGUgYWNjdW11bGF0ZWQgcHJvY2VzcyBzdGF0ZSBzbyB0aGF0IHdlIGNhbiBwdXQgdGhlCisg
ICAgICAgICAgICAvLyByZXN1bHQgaW4gYW4gb3Nfc3RhdGVfZGF0YV90IHN0cnVjdHVyZS4KKyAg
ICAgICAgICAgIE5TRXJyb3IqIGVycm9yID0gbmlsOworICAgICAgICAgICAgTlNEYXRhKiBkYXRh
ID0gW05TUHJvcGVydHlMaXN0U2VyaWFsaXphdGlvbiBkYXRhV2l0aFByb3BlcnR5TGlzdDogc3Rh
dGVEaWN0LmdldCgpIGZvcm1hdDogTlNQcm9wZXJ0eUxpc3RCaW5hcnlGb3JtYXRfdjFfMCBvcHRp
b25zOiAwIGVycm9yOiAmZXJyb3JdOworCisgICAgICAgICAgICBpZiAoIWRhdGEpIHsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9zX3N0YXRl
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaXplX3QgbmVlZGVkU2l6ZSA9IE9TX1NU
QVRFX0RBVEFfU0laRV9ORUVERUQoZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgb3Nfc3RhdGUg
PSAob3Nfc3RhdGVfZGF0YV90KW1hbGxvYyhuZWVkZWRTaXplKTsKKyAgICAgICAgICAgIGlmIChv
c19zdGF0ZSkgeworICAgICAgICAgICAgICAgIG1lbXNldChvc19zdGF0ZSwgMCwgbmVlZGVkU2l6
ZSk7CisgICAgICAgICAgICAgICAgb3Nfc3RhdGUtPm9zZF90eXBlID0gT1NfU1RBVEVfREFUQV9T
RVJJQUxJWkVEX05TQ0ZfT0JKRUNUOworICAgICAgICAgICAgICAgIG9zX3N0YXRlLT5vc2RfZGF0
YV9zaXplID0gZGF0YS5sZW5ndGg7CisgICAgICAgICAgICAgICAgc3RyY3B5KG9zX3N0YXRlLT5v
c2RfdGl0bGUsICJXZWJDb250ZW50IHN0YXRlIik7IC8vIE5COiBPbmx5IDY0IGJ5dGVzIG9mIGJ1
ZmZlciBoZXJlLgorICAgICAgICAgICAgICAgIG1lbWNweShvc19zdGF0ZS0+b3NkX2RhdGEsIGRh
dGEuYnl0ZXMsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0
dXJuIG9zX3N0YXRlOworICAgICAgICB9CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgp
OwogCisjaWYgVVNFKE9TX1NUQVRFKQorICAgIHJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCk7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogICAgIFNlY0l0ZW1TaGltOjpzaW5n
bGV0b24oKS5pbml0aWFsaXplKHRoaXMpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273490</attachid>
            <date>2016-03-09 15:16:17 -0800</date>
            <delta_ts>2016-03-09 16:45:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154930-20160309151604.patch</filename>
            <type>text/plain</type>
            <size>8071</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI1NmQxYmNkODMwMjA5ZTQzZjU0OGJk
NTQxMzAzYTYxYmNiYjIzOGQuLmNkZDQ2NjhlOTBiNjdkZGM4NjYzY2E0NGVhZWZiMzEwZWYyOTQ4
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDMtMDggIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0ZSBkdW1waW5nIGZhY2lsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5MzAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTM5MTM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KKworICAgICAgICBBZGQgYW4gT1NfU1RBVEUgZmxhZyB0byBjb250cm9sIHRo
ZSBpbmNsdXNpb24gb2YgcHJvY2VzcyBzdGF0ZSBkdW1waW5nCisgICAgICAgIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNi0wMy0wNCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB2Y3hw
cm9qIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIxOThiZGMxMGFiNzEyNzk3MjRiMDUxMGRm
OWNmYjdiYjIwMjBjMzcuLmRhYThjODkzMDA3ZWIyYTdmZTU1OTU3YTUzYmEzZDZiMzUzZTQzN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNi0wMy0wOCAgS2VpdGggUm9sbGluICA8
a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0YXRlIGR1bXBpbmcgZmFjaWxpdHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDkzMAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ5MzkxMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgorCisgICAgICAgIENvbGxlY3QgdGhlIHRpbWVzIGF0IHdoaWNoIHBh
Z2VzIGFyZSBsb2FkZWQuIER1bXAgdGhlbSB3aGVuIGFuIE9TCisgICAgICAgIHN0YXRlIGR1bXAg
aXMgdHJpZ2dlcmVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjps
YXN0UGFnZUxvYWRUaW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKToKKwogMjAxNi0wMy0w
NyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2Ug
c3RhcnR1cCBhbmQgc2h1dGRvd24gY29zdCBvZiByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IGI5YWIxZTM5N2NmN2NmNjJmYzIzM2Y3ZjYxZjc3YTM5MWE0NzVjZTcuLjUy
YjJkODJiZTMyMmY4MWRiMzQ3M2MzZGI0YjFkOGU5ZjRlOGIxMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAt
MTEzNiw2ICsxMTM2LDkgQEAKIAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDAwMDApCiAjZGVmaW5lIFVTRV9PU19MT0cg
MQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjZGVmaW5lIFVTRV9PU19TVEFURSAxCisj
ZW5kaWYKICNlbmRpZgogCiAjZW5kaWYgLyogV1RGX1BsYXRmb3JtX2ggKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhMTkzZDk4MjE5NWU3
ZWZlZmQwNTVmYWUwMDNhOGU1NDJiMzRmNjU3Li45MGFkZmM2M2E2NWM0YzU3YzQ4ZTU4MTRlN2Fj
NDNmMzcxNzQ0ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC00ODI4LDYgKzQ4MjgsMTAgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21taXRM
b2FkKFdlYkZyYW1lKiBmcmFtZSkKICAgICByZXNldFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigp
OwogI2VuZGlmCiAKKyNpZiBVU0UoT1NfU1RBVEUpCisgICAgbV9sb2FkQ29tbWl0VGltZSA9IHN0
ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworI2VuZGlmCisKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOwogCiAgICAgdXBkYXRlTWFpbkZyYW1l
U2Nyb2xsT2Zmc2V0UGlubmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggOGVlZjgyZTQ3NWM3M2YxMDEwYmE3ZGIxYzAzZmE0MTYwYWI4MGMy
OS4uZjBjNzJmY2Q0OTlkNDk3ZDJkOWM2ZTMwMzNhNTMxNzRmZDg0NjU5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MzQsNiArOTM0LDEwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5zZXJ0TmV3bGluZUluUXVvdGVkQ29udGVudCgpOwogCisj
aWYgVVNFKE9TX1NUQVRFKQorICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbG9hZENvbW1pdFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2xvYWRDb21taXRUaW1lOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogCkBAIC0xNDQyLDYgKzE0NDYsMTAgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAgUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBtX2lu
c3RhbGxNZWRpYVBsdWdpbnNDYWxsYmFjazsKICNlbmRpZgorCisjaWYgVVNFKE9TX1NUQVRFKQor
ICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbV9sb2FkQ29tbWl0VGlt
ZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGExMWY3ODgzNjU3OGEwZDdlMTA4OTFmMWU0ODFmODU3
NGQzYmQyOTQuLmZhNmQ2YWMxNzc5MThmZGM0ODJjYmRlOWMwNTU4Mzg2ZGYxNjM5ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yMTYsNiArMjE2LDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCisjaWYgVVNFKE9TX1NUQVRFKQorICAgIHZv
aWQgcmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjbGVhckNh
Y2hlZENyZWRlbnRpYWxzKCk7CiAKICAgICB2b2lkIHBsYXRmb3JtVGVybWluYXRlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IDQ2ZmFjOTExY2E3YjM0YzEyNzFhZGM0ODFmMzBjODEyZTBmNDVkYTIuLjBiMGZhYTVhODc1
MjJhYTE0M2I2ZDk4MDQzODQ2NDY4ZDQ3NjEwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Niw2ICs2NiwxMCBAQAog
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjZW5kaWYKIAorI2lmIFVT
RShPU19TVEFURSkKKyNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+CisjZW5kaWYKKwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjA2LDEwICsy
MTAsODEgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpCiAjZW5kaWYK
IH0KIAorI2lmIFVTRShPU19TVEFURSkKK3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJXaXRoU3Rh
dGVEdW1wZXIoKQoreworICAgIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUgPSBkaXNwYXRjaF9nZXRf
Z2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApOworICAgIG9z
X3N0YXRlX2FkZF9oYW5kbGVyKHF1ZXVlLCBeKG9zX3N0YXRlX2hpbnRzX3QgaGludHMpIHsKKwor
ICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgIG9zX3N0YXRlX2RhdGFfdCBv
c19zdGF0ZSA9IG5pbDsKKworICAgICAgICAgICAgLy8gT25seSBnYXRoZXIgc3RhdGUgb24gZmF1
bHRzIGFuZCBzeXNkaWFnbm9zZS4gSXQncyBvdmVya2lsbCBmb3IKKyAgICAgICAgICAgIC8vIGdl
bmVyYWwgZXJyb3IgbWVzc2FnZXMuCisgICAgICAgICAgICBpZiAoaGludHMtPm9zaF9hcGkgPT0g
T1NfU1RBVEVfQVBJX0VSUk9SKQorICAgICAgICAgICAgICAgIHJldHVybiBvc19zdGF0ZTsKKwor
ICAgICAgICAgICAgLy8gQ3JlYXRlIGEgZGljdGlvbmFyeSB0byBjb250YWluIHRoZSBjb2xsZWN0
ZWQgc3RhdGUuIFRoaXMKKyAgICAgICAgICAgIC8vIGRpY3Rpb25hcnkgd2lsbCBiZSBzZXJpYWxp
emVkIGFuZCBwYXNzZWQgYmFjayB0byBvc19zdGF0ZS4KKyAgICAgICAgICAgIGF1dG8gc3RhdGVE
aWN0ID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKworICAg
ICAgICAgICAgYXV0byBwYWdlTG9hZFRpbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFs
dWVzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24o
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBOU0Rh
dGUqIGRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOnN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRvX3RpbWVfdChwYWdlLT5sb2FkQ29tbWl0VGltZSgpKV07Cisg
ICAgICAgICAgICAgICAgW3BhZ2VMb2FkVGltZXMgYWRkT2JqZWN0OmRhdGVdOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyBBZGRpbmcgYW4gZW1wdHkgYXJyYXkgdG8gdGhlIHByb2Nl
c3Mgc3RhdGUgbWF5IHByb3ZpZGUgYW4KKyAgICAgICAgICAgIC8vIGluZGljYXRpb24gb2YgdGhl
IGV4aXN0YW5jZSBvZiBwcml2YXRlIHNlc3Npb25zLCB3aGljaCB3ZSdkIGxpa2UKKyAgICAgICAg
ICAgIC8vIHRvIGhpZGUsIHNvIGRvbid0IGFkZCBlbXB0eSBhcnJheXMuCisgICAgICAgICAgICBp
ZiAoW3BhZ2VMb2FkVGltZXMgY291bnRdKQorICAgICAgICAgICAgICAgIFtzdGF0ZURpY3Qgc2V0
T2JqZWN0OnBhZ2VMb2FkVGltZXMuZ2V0KCkgZm9yS2V5OkAiUGFnZSBMb2FkIFRpbWVzIl07CisK
KyAgICAgICAgICAgIC8vIC0tLSBQb3NzaWJseSBhZGQgb3RoZXIgc3RhdGUgaGVyZSBhcyBvdGhl
ciBlbnRyaWVzIGluIHRoZSBkaWN0aW9uYXJ5LiAtLS0KKworICAgICAgICAgICAgLy8gU3VibWl0
dGluZyBhbiBlbXB0eSBwcm9jZXNzIHN0YXRlIG9iamVjdCBtYXkgcHJvdmlkZSBhbgorICAgICAg
ICAgICAgLy8gaW5kaWNhdGlvbiBvZiB0aGUgZXhpc3RhbmNlIG9mIHByaXZhdGUgc2Vzc2lvbnMs
IHdoaWNoIHdlJ2QgbGlrZQorICAgICAgICAgICAgLy8gdG8gaGlkZSwgc28gZG9uJ3QgcmV0dXJu
IGVtcHR5IGRpY3Rpb25hcmllcy4KKyAgICAgICAgICAgIGlmICghW3N0YXRlRGljdCBjb3VudF0p
CisgICAgICAgICAgICAgICAgcmV0dXJuIG9zX3N0YXRlOworCisgICAgICAgICAgICAvLyBTZXJp
YWxpemUgdGhlIGFjY3VtdWxhdGVkIHByb2Nlc3Mgc3RhdGUgc28gdGhhdCB3ZSBjYW4gcHV0IHRo
ZQorICAgICAgICAgICAgLy8gcmVzdWx0IGluIGFuIG9zX3N0YXRlX2RhdGFfdCBzdHJ1Y3R1cmUu
CisgICAgICAgICAgICBOU0Vycm9yKiBlcnJvciA9IG5pbDsKKyAgICAgICAgICAgIE5TRGF0YSog
ZGF0YSA9IFtOU1Byb3BlcnR5TGlzdFNlcmlhbGl6YXRpb24gZGF0YVdpdGhQcm9wZXJ0eUxpc3Q6
c3RhdGVEaWN0LmdldCgpIGZvcm1hdDpOU1Byb3BlcnR5TGlzdEJpbmFyeUZvcm1hdF92MV8wIG9w
dGlvbnM6MCBlcnJvcjomZXJyb3JdOworCisgICAgICAgICAgICBpZiAoIWRhdGEpIHsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9zX3N0YXRl
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaXplX3QgbmVlZGVkU2l6ZSA9IE9TX1NU
QVRFX0RBVEFfU0laRV9ORUVERUQoZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgb3Nfc3RhdGUg
PSAob3Nfc3RhdGVfZGF0YV90KW1hbGxvYyhuZWVkZWRTaXplKTsKKyAgICAgICAgICAgIGlmIChv
c19zdGF0ZSkgeworICAgICAgICAgICAgICAgIG1lbXNldChvc19zdGF0ZSwgMCwgbmVlZGVkU2l6
ZSk7CisgICAgICAgICAgICAgICAgb3Nfc3RhdGUtPm9zZF90eXBlID0gT1NfU1RBVEVfREFUQV9T
RVJJQUxJWkVEX05TQ0ZfT0JKRUNUOworICAgICAgICAgICAgICAgIG9zX3N0YXRlLT5vc2RfZGF0
YV9zaXplID0gZGF0YS5sZW5ndGg7CisgICAgICAgICAgICAgICAgc3RyY3B5KG9zX3N0YXRlLT5v
c2RfdGl0bGUsICJXZWJDb250ZW50IHN0YXRlIik7IC8vIE5COiBPbmx5IDY0IGJ5dGVzIG9mIGJ1
ZmZlciBoZXJlLgorICAgICAgICAgICAgICAgIG1lbWNweShvc19zdGF0ZS0+b3NkX2RhdGEsIGRh
dGEuYnl0ZXMsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0
dXJuIG9zX3N0YXRlOworICAgICAgICB9CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgp
OwogCisjaWYgVVNFKE9TX1NUQVRFKQorICAgIHJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCk7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogICAgIFNlY0l0ZW1TaGltOjpzaW5n
bGV0b24oKS5pbml0aWFsaXplKHRoaXMpOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>