<?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>163006</bug_id>
          
          <creation_ts>2016-10-06 05:04:34 -0700</creation_ts>
          <short_desc>Network Session: PendingDownload is always nullptr in DownloadManager::dataTaskBecameDownloadTask</short_desc>
          <delta_ts>2016-10-10 00:31:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1237008</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-06 05:04:34 -0700</bug_when>
    <thetext>I&apos;m not sure when dataTaskBecameDownloadTask() is called exactly in Mac, but it seems to me that PendingDownload is always nullptr at that point. Here are the steps for downloads started with startDownload and convertTaskToDownload:

1- DownloadManager::startDownload()
  m_pendingDownloads.add(downloadID, PendingDownload())

2- PendingDownload()
  m_networkLoad(NetworkLoad())
  set pending download ID, pending download and suggested filename on new NetworkLoad

3- NetworkLoad::resume()
  Starts the load normally until receiving the response

4- NetworkLoad::didReceiveResponse()
  The task has pending download ID

5- NetworkProcess::findPendingDownloadLocation(task, completionHandler)
  Notifies the download manager that is waiting for the location

6- DownloadManager::willDecidePendingDownloadDestination()
  m_pendingDownloads.take(downloadID)
  m_downloadsWaitingForDestination.set(&lt;task, completionHandler&gt;)
  The pending download is now deleted and its NetworkLoad too.
  Once it has the loation it either cancels the download or continues

7- DownloadManager::continueDecidePendingDownloadDestination
  &lt;task, completionHandler&gt; = m_downloadsWaitingForDestination.take(downloadID)
  completionHandler(PolicyDownload)
  m_downloadsAfterDestinationDecided.set(downloadID, task)

8- DownloadManager::dataTaskBecameDownloadTask(downloadID, download)
  The completionHandler() ended up converting the task to a download, so at some point
  dataTaskBecameDownloadTask is called right after creating the download.
  // This is needed for downloads started with startDownload, otherwise it will return nullptr.
  m_pendingDownloads.take(downloadID)
  // This is needed for downloads started with convertTaskToDownload, otherwise it will return nullptr.
  m_downloadsAfterDestinationDecided.take(downloadID)

At this point m_pendingDownloads is supposed to contain the download, because it was started by DownloadManager::startDownload(), but the download was removed from m_pendingDownloads at step 6.
If the completionHandler calls dataTaskBecameDownloadTask() then m_downloadsAfterDestinationDecided doesn&apos;t contain the download yet either, so both are indeed nullptr. If it&apos;s supposed to happen asynchronously then we indeed have a task even when this was not started by convertTaskToDownload.

1- NetworkLoad()::resume()
  Starts the load normally until policy checker converts the load into a download

2- NetworkLoad::convertTaskToDownload(downloadID, request, response)
  Sets pending download ID to the the task

3- NetworkProcess::findPendingDownloadLocation(task, completionHandler)
  Notifies the download manager that is waiting for the location

The next steps are exactly the same, with the difference that in this case m_pendingDownloads will not contain a PendingDownload for the downloadID, but in both cases we have a NetworkDataTask.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237010</commentid>
    <comment_count>1</comment_count>
      <attachid>290813</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-06 05:12:56 -0700</bug_when>
    <thetext>Created attachment 290813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237457</commentid>
    <comment_count>2</comment_count>
      <attachid>290813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-06 21:28:41 -0700</bug_when>
    <thetext>Comment on attachment 290813
Patch

This seems like it might be right, but it needs to be tested on Sierra.  My Sierra machine is being upgraded right now, so I&apos;ll have to look at this again in the morning.  Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237518</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-07 00:46:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 290813 [details]
&gt; Patch
&gt; 
&gt; This seems like it might be right, but it needs to be tested on Sierra.  My
&gt; Sierra machine is being upgraded right now, so I&apos;ll have to look at this
&gt; again in the morning.  Sorry.

No problem, I&apos;m not in a hurry. I was also thinking that maybe it makes sense to keep the pending download alive right until it&apos;s converted into a real download.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237610</commentid>
    <comment_count>4</comment_count>
      <attachid>290932</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-07 09:30:35 -0700</bug_when>
    <thetext>Created attachment 290932
Different patch

I changed the approach in the end, to make sure the pending download is alive until the didReceiveResponse completion handler is called. That way we can be sure that our NetowkrDataTask always have a valid client at that point, no matter if the download was started by startDownload or convertTasktoDownload. It allows us to report errors while creating the destination before the Download object is created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237615</commentid>
    <comment_count>5</comment_count>
      <attachid>290934</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-07 09:36:16 -0700</bug_when>
    <thetext>Created attachment 290934
Re-submit for EWS

I think it should apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237616</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-07 09:37:51 -0700</bug_when>
    <thetext>Attachment 290934 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm:298:  &apos;protectNetworkDataTask&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedNetworkDataTask&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 4 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>1237626</commentid>
    <comment_count>7</comment_count>
      <attachid>290936</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-07 09:42:13 -0700</bug_when>
    <thetext>Created attachment 290936
Fix coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237728</commentid>
    <comment_count>8</comment_count>
      <attachid>290936</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-07 12:18:24 -0700</bug_when>
    <thetext>Comment on attachment 290936
Fix coding style

Can we create a test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237764</commentid>
    <comment_count>9</comment_count>
      <attachid>290936</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-07 13:12:20 -0700</bug_when>
    <thetext>Comment on attachment 290936
Fix coding style

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

&gt; Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp:123
&gt; +        ASSERT(!pendingDownload || pendingDownload.get() == networkDataTask.pendingDownload());

Debug builds using network session fail here.  Should be networkDataTask-&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237767</commentid>
    <comment_count>10</comment_count>
      <attachid>290936</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-07 13:17:24 -0700</bug_when>
    <thetext>Comment on attachment 290936
Fix coding style

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

This should have no change in behavior.  There are already some download tests, and I just verified that this doesn&apos;t cause a problem on Mac.

&gt; Source/WebKit2/ChangeLog:25
&gt; +        return eearly if both are nullptr to avoid crashes. However, we are checking that the download is in the

early</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238210</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-10 00:30:50 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 290936 [details]
&gt; Fix coding style
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290936&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp:123
&gt; &gt; +        ASSERT(!pendingDownload || pendingDownload.get() == networkDataTask.pendingDownload());
&gt; 
&gt; Debug builds using network session fail here.  Should be networkDataTask-&gt;

Indeed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238211</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-10 00:31:32 -0700</bug_when>
    <thetext>Committed r206987: &lt;http://trac.webkit.org/changeset/206987&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290813</attachid>
            <date>2016-10-06 05:12:56 -0700</date>
            <delta_ts>2016-10-07 09:30:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-downloads.diff</filename>
            <type>text/plain</type>
            <size>5300</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1ZTI3OWJmLi45ZTk0Yzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTYtMTAtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIE5ldHdvcmsgU2Vzc2lvbjogUGVuZGluZ0Rvd25sb2FkIGlzIGFsd2F5cyBu
dWxscHRyIGluIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soKSB3ZSBhcmUgc3VwcG9zZWQgdG8g
aGF2ZSBlaXRoZXIgYSBwZW5kaW5nIGRvd25sb2FkLCBvciBhIG5ldHdvcmsKKyAgICAgICAgZGF0
YSB0YXNrIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBkb3dubG9hZCB3YXMgc3RhcnRlZCBieSBz
dGFydERvd25sb2FkKCkgb3IgY29udmVydFRhc2tUb0Rvd25sb2FkLiBIb3dldmVyLCBpbgorICAg
ICAgICBib3RoIGNhc2VzIHdlIGRvIGhhdmUgYSBkYXRhIHRhc2sgYW5kIG5ldmVyIGEgcGVuZGlu
ZyBkb3dubG9hZC4gSW4gdGhlIGNhc2Ugb2Ygc3RhcnREb3dubG9hZCgpIHRoZSBwZW5kaW5nCisg
ICAgICAgIGRvd25sb2FkIGlzIHJlbW92ZWQgZnJvbSBtX3BlbmRpbmdEb3dubG9hZHMgaW4gd2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKCkuIFRoZSB0YXNrIGlzIGFsd2F5cwor
ICAgICAgICBhZGRlZCB0byBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbiBpbiB3aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oKSBhbmQgdG8KKyAgICAgICAgbV9kb3du
bG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZCBpbiBjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKCkgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKTogQWRkIGFuIEFTU0VSVCB0
byBlbnN1cmUgd2UgZG9uJ3QgaGF2ZSBhIHBlbmRpbmcgZG93bmxvYWQKKyAgICAgICAgYXQgdGhp
cyBwb2ludC4gR2V0IHRoZSBkYXRhIHRhc2sgYW5kIEFTU0VSVCBpZiBpdCdzIG51bGxwdHIgYmVm
b3JlIGFkZGluZyB0aGUgZG93bmxvYWQgdG8gdGhlIG1hcCwgdGhlbiByZXR1cm4KKyAgICAgICAg
b25seSB0aGUgZGF0YSB0YXNrLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJM
U2Vzc2lvbjpkYXRhVGFzazpkaWRCZWNvbWVEb3dubG9hZFRhc2s6XSk6IEFkZCBhbiBBU1NFUlQg
dG8gZW5zdXJlIHRoZSB0YXNrCisgICAgICAgIHJldHVybmVkIGJ5IGRhdGFUYXNrQmVjYW1lRG93
bmxvYWRUYXNrKCkgaXMgdGhlIG9uZSBjdXJyZW50bHkgdXNlZC4KKwogMjAxNi0xMC0wNSAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBd
IE1vdmUgZ2xvYmFsIFRMUyBlcnJvcnMgaGFuZGxpbmcgZnJvbSBSZXNvdXJjZUhhbmRsZSB0byBT
b3VwTmV0d29ya1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggZjcxY2ZhNC4uOTk0
MzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKQEAgLTY3LDE4ICs2NywxNCBAQCB2b2lkIERv
d25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9h
ZElEIGRvd25sb2FkSUQsCiB9CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotc3RkOjpwYWly
PFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+LCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2Fk
Pj4gRG93bmxvYWRNYW5hZ2VyOjpkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9hZElE
IGRvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4mJiBkb3dubG9hZCkKK1JlZlB0
cjxOZXR3b3JrRGF0YVRhc2s+IERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9h
ZFRhc2soRG93bmxvYWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYg
ZG93bmxvYWQpCiB7Ci0gICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGRvd25sb2FkcyBzdGFydGVk
IHdpdGggc3RhcnREb3dubG9hZCwgb3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0g
ICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9h
ZElEKTsKLQotICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBkb3dubG9hZHMgc3RhcnRlZCB3aXRo
IGNvbnZlcnRUYXNrVG9Eb3dubG9hZCwgb3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIu
CisgICAgQVNTRVJUKCFtX3BlbmRpbmdEb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwog
ICAgIGF1dG8gZG93bmxvYWRBZnRlckxvY2F0aW9uRGVjaWRlZCA9IG1fZG93bmxvYWRzQWZ0ZXJE
ZXN0aW5hdGlvbkRlY2lkZWQudGFrZShkb3dubG9hZElEKTsKLSAgICAKLSAgICBBU1NFUlQoISFw
ZW5kaW5nRG93bmxvYWQgIT0gISFkb3dubG9hZEFmdGVyTG9jYXRpb25EZWNpZGVkKTsKLSAgICAK
KyAgICBBU1NFUlQoZG93bmxvYWRBZnRlckxvY2F0aW9uRGVjaWRlZCk7CisKICAgICBtX2Rvd25s
b2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwotICAgIHJldHVybiBzdGQ6
Om1ha2VfcGFpcihXVEZNb3ZlKGRvd25sb2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpLCBXVEZNb3Zl
KHBlbmRpbmdEb3dubG9hZCkpOworICAgIHJldHVybiBkb3dubG9hZEFmdGVyTG9jYXRpb25EZWNp
ZGVkOwogfQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuaAppbmRleCA2NzBlNGMwLi4zMWRjZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBA
IC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnREb3dubG9hZChXZWJDb3Jl
OjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAjaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKLSAgICBzdGQ6OnBhaXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIHN0ZDo6dW5pcXVl
X3B0cjxQZW5kaW5nRG93bmxvYWQ+PiBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYpOworICAgIFJlZlB0cjxOZXR3b3JrRGF0
YVRhc2s+IGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVl
X3B0cjxEb3dubG9hZD4mJik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKICAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShEb3dubG9hZElELCBib29sIGNhbkF1dGhlbnRpY2F0ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tCmluZGV4IDY1NDM4ZjkuLjI4Mjg1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAt
MzAxLDggKzMwMSw4IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
b24gdG9OU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpCiAgICAgICAgIG5ldHdvcmtE
YXRhVGFzay0+dHJhbnNmZXJTYW5kYm94RXh0ZW5zaW9uVG9Eb3dubG9hZCgqZG93bmxvYWQpOwog
ICAgICAgICBBU1NFUlQoV2ViQ29yZTo6ZmlsZUV4aXN0cyhuZXR3b3JrRGF0YVRhc2stPnBlbmRp
bmdEb3dubG9hZExvY2F0aW9uKCkpKTsKICAgICAgICAgZG93bmxvYWQtPmRpZENyZWF0ZURlc3Rp
bmF0aW9uKG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oKSk7Ci0gICAg
ICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gZG93bmxvYWRNYW5hZ2VyLmRhdGFUYXNrQmVjYW1l
RG93bmxvYWRUYXNrKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKLQorICAgICAgICBh
dXRvIGRvd25sb2FkRGF0YVRhc2sgPSBkb3dubG9hZE1hbmFnZXIuZGF0YVRhc2tCZWNhbWVEb3du
bG9hZFRhc2soZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgICAgICBBU1NFUlQo
ZG93bmxvYWREYXRhVGFzay5nZXQoKSA9PSBuZXR3b3JrRGF0YVRhc2spOwogICAgICAgICBuZXR3
b3JrRGF0YVRhc2stPmRpZEJlY29tZURvd25sb2FkKCk7CiAKICAgICAgICAgX3Nlc3Npb24tPmFk
ZERvd25sb2FkSUQoW2Rvd25sb2FkVGFzayB0YXNrSWRlbnRpZmllcl0sIGRvd25sb2FkSUQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290932</attachid>
            <date>2016-10-07 09:30:35 -0700</date>
            <delta_ts>2016-10-07 09:36:16 -0700</delta_ts>
            <desc>Different patch</desc>
            <filename>wk2-downloads-pending.diff</filename>
            <type>text/plain</type>
            <size>8921</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlN2NjYjJkLi41NzRjNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTYtMTAtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIE5ldHdvcmsgU2Vzc2lvbjogUGVuZGluZ0Rvd25sb2FkIGlzIGFsd2F5cyBu
dWxscHRyIGluIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soKSB3ZSBhcmUgc3VwcG9zZWQgdG8g
aGF2ZSBlaXRoZXIgYSBwZW5kaW5nIGRvd25sb2FkLCBvciBhIG5ldHdvcmsKKyAgICAgICAgZGF0
YSB0YXNrIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBkb3dubG9hZCB3YXMgc3RhcnRlZCBieSBz
dGFydERvd25sb2FkKCkgb3IgY29udmVydFRhc2tUb0Rvd25sb2FkLiBIb3dldmVyLCBpbgorICAg
ICAgICBib3RoIGNhc2VzIHdlIGRvIGhhdmUgYSBkYXRhIHRhc2sgYW5kIG5ldmVyIGEgcGVuZGlu
ZyBkb3dubG9hZC4gSW4gdGhlIGNhc2Ugb2Ygc3RhcnREb3dubG9hZCgpIHRoZSBwZW5kaW5nCisg
ICAgICAgIGRvd25sb2FkIGlzIHJlbW92ZWQgZnJvbSBtX3BlbmRpbmdEb3dubG9hZHMgaW4gd2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKCkuIFRoZSB0YXNrIGlzIGFsd2F5cwor
ICAgICAgICBhZGRlZCB0byBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbiBpbiB3aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oKSBhbmQgdG8KKyAgICAgICAgbV9kb3du
bG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZCBpbiBjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKCkgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKTogQWRkIGFuIEFTU0VSVCB0
byBlbnN1cmUgd2UgZG9uJ3QgaGF2ZSBhIHBlbmRpbmcgZG93bmxvYWQKKyAgICAgICAgYXQgdGhp
cyBwb2ludCBhbmQgdGhhdCB0aGUgZG93bmxvYWQgaXMgbm90IGFscmVhZHkgaW4gdGhlIG1hcC4g
UmVtb3ZlIHRoZSBkb3dubG9hZCBmcm9tIHRoZQorICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVz
dGluYXRpb25EZWNpZGVkIG1hcCwgYnV0IGRvbid0IGNoZWNrIGl0cyByZXN1bHQgYmVjYXVzZSBp
dCBtaWdodCBub3QgYmVpbiB0aGF0IG1hcCBpZgorICAgICAgICBkYXRhVGFza0JlY2FtZURvd25s
b2FkVGFzayBpcyBjYWxsZWQgc3luY2hyb25vdXNseSBmcm9tIHRoZSBkaWRSZWNlaXZlUmVzcG9u
c2UgY29tcGxldGlvbiBoYW5kbGVyLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6
OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IERvIG5vdCB0YWtlIHRoZSBw
ZW5kaW5nIGRvd25sb2FkIGhlcmUsIHdhaXQKKyAgICAgICAgdW50aWwgZGlkUmVjZWl2ZVJlc3Bv
bnNlIGNvbXBsZXRpb24gaGFuZGxlciBpcyBjYWxsZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IFRh
a2UgdGhlIHBlbmRpbmcgZG93bmxvYWQgaGVyZSBlbnN1cmluZworICAgICAgICBpdCdzIGFsaXZl
IHdoaWxlIHRoZSBkaWRSZWNlaXZlUmVzcG9uc2UgY29tcGxldGlvbiBoYW5kbGVyIGlzIGNhbGxl
ZC4gQWxzbyByZW1vdmUgaW52YWxpZCBlYXJseSByZXR1cm4gd2hlbgorICAgICAgICBlaXRoZXIg
bmV0d29ya0RhdGFUYXNrIG9yIGNvbXBsZXRpb25IYW5kbGVyIGFyZSBudWxscHRyIGJlY2F1c2Ug
d2UgYXJlIHVzaW5nIGJvdGggdW5jb25kaXRpb25hbGx5LCB3ZSBzaG91bGQKKyAgICAgICAgcmV0
dXJuIGVlYXJseSBpZiBib3RoIGFyZSBudWxscHRyIHRvIGF2b2lkIGNyYXNoZXMuIEhvd2V2ZXIs
IHdlIGFyZSBjaGVja2luZyB0aGF0IHRoZSBkb3dubG9hZCBpcyBpbiB0aGUKKyAgICAgICAgbV9k
b3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24gYW5kIGluIHRoYXQgY2FzZSB3ZSBzaG91bGQg
YWx3YXlzIGhhdmUgYm90aCwgc28gYmV0dGVyIGFkZCBhc3NlcnRzIHRoZXJlLiBJZgorICAgICAg
ICB0aGUgZG93bmxvYWQgaXMgYWxyZWFkeSBpbiB0aGUgbWFwIGFmdGVyIHRoZSBjb21wbGV0aW9u
IGhhbmRsZXIgaXQgbWVhbnMgdGhhdCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpIGhhcwor
ICAgICAgICBhbHJhZHkgYmVlbiBjYWxsZWQsIHNvIHdlIGNhbiBqdXN0IHJldHVybiBpbiB0aGF0
IGNhc2UuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFU
YXNrOmRpZEJlY29tZURvd25sb2FkVGFzazpdKTogUHJvdGVjdCB0aGUgTmV0d29ya0RhdGFUYXNr
IHRoYXQgY2FuCisgICAgICAgIGJlIGRlbGV0ZWQgYnkgZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRh
c2soKS4KKworMjAxNi0xMC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKICAgICAgICAgTmV0d29ya1Nlc3Npb246IGRvd25sb2FkcyBzdGFydGVkIGJ5IHN0
YXJ0RG93bmxvYWQoKSBjYW4gZmFpbCBiZWZvcmUgc3RhcnRpbmcgZnJvbSB0aGUgQVBJIHBvaW50
IG9mIHZpZXcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzEwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IDA2OWU0NzQuLjBjYWQ0M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC02NywxOCArNjcsMTIgQEAgdm9pZCBEb3dubG9hZE1h
bmFnZXI6OnN0YXJ0RG93bmxvYWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3du
bG9hZElELAogfQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLXN0ZDo6cGFpcjxSZWZQdHI8
TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+IERvd25s
b2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCit2b2lkIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9hZElE
LCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCiB7Ci0gICAgLy8gVGhpcyBp
cyBuZWVkZWQgZm9yIGRvd25sb2FkcyBzdGFydGVkIHdpdGggc3RhcnREb3dubG9hZCwgb3RoZXJ3
aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBt
X3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKLQotICAgIC8vIFRoaXMgaXMgbmVl
ZGVkIGZvciBkb3dubG9hZHMgc3RhcnRlZCB3aXRoIGNvbnZlcnRUYXNrVG9Eb3dubG9hZCwgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBkb3dubG9hZEFmdGVyTG9j
YXRpb25EZWNpZGVkID0gbV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC50YWtlKGRv
d25sb2FkSUQpOwotICAgIAotICAgIEFTU0VSVCghIXBlbmRpbmdEb3dubG9hZCAhPSAhIWRvd25s
b2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpOwotICAgIAorICAgIEFTU0VSVCghbV9wZW5kaW5nRG93
bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNv
bnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNp
ZGVkLnJlbW92ZShkb3dubG9hZElEKTsKICAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwg
V1RGTW92ZShkb3dubG9hZCkpOwotICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXVEZNb3ZlKGRv
d25sb2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpLCBXVEZNb3ZlKHBlbmRpbmdEb3dubG9hZCkpOwog
fQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwMiw4ICs5
Niw2IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6d2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29y
a0RhdGFUYXNrLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZElEKCk7Ci0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3dubG9hZHMudGFr
ZShkb3dubG9hZElEKTsKLSAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZCgpID09IHBlbmRpbmdEb3dubG9hZC5nZXQoKSk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2Rv
d25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5zZXQoZG93bmxvYWRJRCwgc3RkOjptYWtlX3Bh
aXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI+KCZu
ZXR3b3JrRGF0YVRhc2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KQEAgLTEyMiwxNSAr
MTE0LDIyIEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKICAgICBpZiAobV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24uY29udGFpbnMo
ZG93bmxvYWRJRCkpIHsKKyAgICAgICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdE
b3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBwYWlyID0gbV9kb3dubG9h
ZHNXYWl0aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBu
ZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwogICAgICAgICBhdXRvIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Ci0gICAgICAgIGlmICghbmV0d29y
a0RhdGFUYXNrIHx8ICFjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgQVNTRVJUKG5ldHdvcmtEYXRhVGFzayk7CisgICAgICAgIEFTU0VSVChjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgICAgIEFTU0VSVCghcGVuZGluZ0Rvd25sb2FkIHx8IHBlbmRpbmdEb3du
bG9hZC5nZXQoKSA9PSBuZXR3b3JrRGF0YVRhc2sucGVuZGluZ0Rvd25sb2FkKCkpOwogCiAgICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlKTsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOwogCisgICAgICAgIGlmIChtX2Rvd25sb2Fk
cy5jb250YWlucyhkb3dubG9hZElEKSkgeworICAgICAgICAgICAgLy8gVGhlIGNvbXBsZXRpb24g
aGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpLgorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2Fk
c0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKICAgICAgICAg
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5zZXQoZG93bmxvYWRJRCwgbmV0d29y
a0RhdGFUYXNrKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IDY3MGU0
YzAuLjA3MWVhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWROYW1lID0geyB9KTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIHN0ZDo6cGFpcjxS
ZWZQdHI8TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+
IGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxE
b3dubG9hZD4mJik7CisgICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoRG93bmxvYWRJRCwgYm9vbCBjYW5BdXRoZW50aWNhdGUpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA2NTQzOGY5Li40ZTFhN2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0KQEAgLTI5NSwxNCArMjk1LDE0IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gdG9OU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
CiB7CiAgICAgYXV0byBzdG9yZWRDcmVkZW50aWFscyA9IF93aXRoQ3JlZGVudGlhbHMgPyBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsczo6QWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzOjpEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgaWYg
KGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRhVGFza0ZvcklkZW50aWZpZXIo
W2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSwgc3RvcmVkQ3JlZGVudGlhbHMpKSB7CisgICAgICAg
IFJlZjxOZXR3b3JrRGF0YVRhc2s+IHByb3RlY3ROZXR3b3JrRGF0YVRhc2soKm5ldHdvcmtEYXRh
VGFzayk7CiAgICAgICAgIGF1dG8gZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFzay0+cGVuZGlu
Z0Rvd25sb2FkSUQoKTsKICAgICAgICAgYXV0byYgZG93bmxvYWRNYW5hZ2VyID0gV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZG93bmxvYWRNYW5hZ2VyKCk7CiAgICAgICAgIGF1
dG8gZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RG93bmxvYWQ+KGRvd25sb2Fk
TWFuYWdlciwgZG93bmxvYWRJRCwgZG93bmxvYWRUYXNrLCBfc2Vzc2lvbi0+c2Vzc2lvbklEKCks
IG5ldHdvcmtEYXRhVGFzay0+c3VnZ2VzdGVkRmlsZW5hbWUoKSk7CiAgICAgICAgIG5ldHdvcmtE
YXRhVGFzay0+dHJhbnNmZXJTYW5kYm94RXh0ZW5zaW9uVG9Eb3dubG9hZCgqZG93bmxvYWQpOwog
ICAgICAgICBBU1NFUlQoV2ViQ29yZTo6ZmlsZUV4aXN0cyhuZXR3b3JrRGF0YVRhc2stPnBlbmRp
bmdEb3dubG9hZExvY2F0aW9uKCkpKTsKICAgICAgICAgZG93bmxvYWQtPmRpZENyZWF0ZURlc3Rp
bmF0aW9uKG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oKSk7Ci0gICAg
ICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gZG93bmxvYWRNYW5hZ2VyLmRhdGFUYXNrQmVjYW1l
RG93bmxvYWRUYXNrKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKLQorICAgICAgICBk
b3dubG9hZE1hbmFnZXIuZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soZG93bmxvYWRJRCwgV1RG
TW92ZShkb3dubG9hZCkpOwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZEJlY29tZURvd25s
b2FkKCk7CiAKICAgICAgICAgX3Nlc3Npb24tPmFkZERvd25sb2FkSUQoW2Rvd25sb2FkVGFzayB0
YXNrSWRlbnRpZmllcl0sIGRvd25sb2FkSUQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290934</attachid>
            <date>2016-10-07 09:36:16 -0700</date>
            <delta_ts>2016-10-07 09:42:13 -0700</delta_ts>
            <desc>Re-submit for EWS</desc>
            <filename>wk2-downloads-pending.diff</filename>
            <type>text/plain</type>
            <size>8921</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlN2NjYjJkLi41NzRjNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTYtMTAtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIE5ldHdvcmsgU2Vzc2lvbjogUGVuZGluZ0Rvd25sb2FkIGlzIGFsd2F5cyBu
dWxscHRyIGluIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soKSB3ZSBhcmUgc3VwcG9zZWQgdG8g
aGF2ZSBlaXRoZXIgYSBwZW5kaW5nIGRvd25sb2FkLCBvciBhIG5ldHdvcmsKKyAgICAgICAgZGF0
YSB0YXNrIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBkb3dubG9hZCB3YXMgc3RhcnRlZCBieSBz
dGFydERvd25sb2FkKCkgb3IgY29udmVydFRhc2tUb0Rvd25sb2FkLiBIb3dldmVyLCBpbgorICAg
ICAgICBib3RoIGNhc2VzIHdlIGRvIGhhdmUgYSBkYXRhIHRhc2sgYW5kIG5ldmVyIGEgcGVuZGlu
ZyBkb3dubG9hZC4gSW4gdGhlIGNhc2Ugb2Ygc3RhcnREb3dubG9hZCgpIHRoZSBwZW5kaW5nCisg
ICAgICAgIGRvd25sb2FkIGlzIHJlbW92ZWQgZnJvbSBtX3BlbmRpbmdEb3dubG9hZHMgaW4gd2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKCkuIFRoZSB0YXNrIGlzIGFsd2F5cwor
ICAgICAgICBhZGRlZCB0byBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbiBpbiB3aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oKSBhbmQgdG8KKyAgICAgICAgbV9kb3du
bG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZCBpbiBjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKCkgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKTogQWRkIGFuIEFTU0VSVCB0
byBlbnN1cmUgd2UgZG9uJ3QgaGF2ZSBhIHBlbmRpbmcgZG93bmxvYWQKKyAgICAgICAgYXQgdGhp
cyBwb2ludCBhbmQgdGhhdCB0aGUgZG93bmxvYWQgaXMgbm90IGFscmVhZHkgaW4gdGhlIG1hcC4g
UmVtb3ZlIHRoZSBkb3dubG9hZCBmcm9tIHRoZQorICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVz
dGluYXRpb25EZWNpZGVkIG1hcCwgYnV0IGRvbid0IGNoZWNrIGl0cyByZXN1bHQgYmVjYXVzZSBp
dCBtaWdodCBub3QgYmVpbiB0aGF0IG1hcCBpZgorICAgICAgICBkYXRhVGFza0JlY2FtZURvd25s
b2FkVGFzayBpcyBjYWxsZWQgc3luY2hyb25vdXNseSBmcm9tIHRoZSBkaWRSZWNlaXZlUmVzcG9u
c2UgY29tcGxldGlvbiBoYW5kbGVyLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6
OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IERvIG5vdCB0YWtlIHRoZSBw
ZW5kaW5nIGRvd25sb2FkIGhlcmUsIHdhaXQKKyAgICAgICAgdW50aWwgZGlkUmVjZWl2ZVJlc3Bv
bnNlIGNvbXBsZXRpb24gaGFuZGxlciBpcyBjYWxsZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IFRh
a2UgdGhlIHBlbmRpbmcgZG93bmxvYWQgaGVyZSBlbnN1cmluZworICAgICAgICBpdCdzIGFsaXZl
IHdoaWxlIHRoZSBkaWRSZWNlaXZlUmVzcG9uc2UgY29tcGxldGlvbiBoYW5kbGVyIGlzIGNhbGxl
ZC4gQWxzbyByZW1vdmUgaW52YWxpZCBlYXJseSByZXR1cm4gd2hlbgorICAgICAgICBlaXRoZXIg
bmV0d29ya0RhdGFUYXNrIG9yIGNvbXBsZXRpb25IYW5kbGVyIGFyZSBudWxscHRyIGJlY2F1c2Ug
d2UgYXJlIHVzaW5nIGJvdGggdW5jb25kaXRpb25hbGx5LCB3ZSBzaG91bGQKKyAgICAgICAgcmV0
dXJuIGVlYXJseSBpZiBib3RoIGFyZSBudWxscHRyIHRvIGF2b2lkIGNyYXNoZXMuIEhvd2V2ZXIs
IHdlIGFyZSBjaGVja2luZyB0aGF0IHRoZSBkb3dubG9hZCBpcyBpbiB0aGUKKyAgICAgICAgbV9k
b3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24gYW5kIGluIHRoYXQgY2FzZSB3ZSBzaG91bGQg
YWx3YXlzIGhhdmUgYm90aCwgc28gYmV0dGVyIGFkZCBhc3NlcnRzIHRoZXJlLiBJZgorICAgICAg
ICB0aGUgZG93bmxvYWQgaXMgYWxyZWFkeSBpbiB0aGUgbWFwIGFmdGVyIHRoZSBjb21wbGV0aW9u
IGhhbmRsZXIgaXQgbWVhbnMgdGhhdCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpIGhhcwor
ICAgICAgICBhbHJhZHkgYmVlbiBjYWxsZWQsIHNvIHdlIGNhbiBqdXN0IHJldHVybiBpbiB0aGF0
IGNhc2UuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFU
YXNrOmRpZEJlY29tZURvd25sb2FkVGFzazpdKTogUHJvdGVjdCB0aGUgTmV0d29ya0RhdGFUYXNr
IHRoYXQgY2FuCisgICAgICAgIGJlIGRlbGV0ZWQgYnkgZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRh
c2soKS4KKworMjAxNi0xMC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKICAgICAgICAgTmV0d29ya1Nlc3Npb246IGRvd25sb2FkcyBzdGFydGVkIGJ5IHN0
YXJ0RG93bmxvYWQoKSBjYW4gZmFpbCBiZWZvcmUgc3RhcnRpbmcgZnJvbSB0aGUgQVBJIHBvaW50
IG9mIHZpZXcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzEwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IDA2OWU0NzQuLjBjYWQ0M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC02NywxOCArNjcsMTIgQEAgdm9pZCBEb3dubG9hZE1h
bmFnZXI6OnN0YXJ0RG93bmxvYWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3du
bG9hZElELAogfQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLXN0ZDo6cGFpcjxSZWZQdHI8
TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+IERvd25s
b2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCit2b2lkIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9hZElE
LCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCiB7Ci0gICAgLy8gVGhpcyBp
cyBuZWVkZWQgZm9yIGRvd25sb2FkcyBzdGFydGVkIHdpdGggc3RhcnREb3dubG9hZCwgb3RoZXJ3
aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBt
X3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKLQotICAgIC8vIFRoaXMgaXMgbmVl
ZGVkIGZvciBkb3dubG9hZHMgc3RhcnRlZCB3aXRoIGNvbnZlcnRUYXNrVG9Eb3dubG9hZCwgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBkb3dubG9hZEFmdGVyTG9j
YXRpb25EZWNpZGVkID0gbV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC50YWtlKGRv
d25sb2FkSUQpOwotICAgIAotICAgIEFTU0VSVCghIXBlbmRpbmdEb3dubG9hZCAhPSAhIWRvd25s
b2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpOwotICAgIAorICAgIEFTU0VSVCghbV9wZW5kaW5nRG93
bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNv
bnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNp
ZGVkLnJlbW92ZShkb3dubG9hZElEKTsKICAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwg
V1RGTW92ZShkb3dubG9hZCkpOwotICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXVEZNb3ZlKGRv
d25sb2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpLCBXVEZNb3ZlKHBlbmRpbmdEb3dubG9hZCkpOwog
fQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwMiw4ICs5
Niw2IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6d2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29y
a0RhdGFUYXNrLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZElEKCk7Ci0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3dubG9hZHMudGFr
ZShkb3dubG9hZElEKTsKLSAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZCgpID09IHBlbmRpbmdEb3dubG9hZC5nZXQoKSk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2Rv
d25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5zZXQoZG93bmxvYWRJRCwgc3RkOjptYWtlX3Bh
aXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI+KCZu
ZXR3b3JrRGF0YVRhc2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KQEAgLTEyMiwxNSAr
MTE0LDIyIEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKICAgICBpZiAobV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24uY29udGFpbnMo
ZG93bmxvYWRJRCkpIHsKKyAgICAgICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdE
b3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBwYWlyID0gbV9kb3dubG9h
ZHNXYWl0aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBu
ZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwogICAgICAgICBhdXRvIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Ci0gICAgICAgIGlmICghbmV0d29y
a0RhdGFUYXNrIHx8ICFjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgQVNTRVJUKG5ldHdvcmtEYXRhVGFzayk7CisgICAgICAgIEFTU0VSVChjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgICAgIEFTU0VSVCghcGVuZGluZ0Rvd25sb2FkIHx8IHBlbmRpbmdEb3du
bG9hZC5nZXQoKSA9PSBuZXR3b3JrRGF0YVRhc2sucGVuZGluZ0Rvd25sb2FkKCkpOwogCiAgICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlKTsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOwogCisgICAgICAgIGlmIChtX2Rvd25sb2Fk
cy5jb250YWlucyhkb3dubG9hZElEKSkgeworICAgICAgICAgICAgLy8gVGhlIGNvbXBsZXRpb24g
aGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpLgorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2Fk
c0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKICAgICAgICAg
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5zZXQoZG93bmxvYWRJRCwgbmV0d29y
a0RhdGFUYXNrKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IDY3MGU0
YzAuLjA3MWVhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWROYW1lID0geyB9KTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIHN0ZDo6cGFpcjxS
ZWZQdHI8TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+
IGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxE
b3dubG9hZD4mJik7CisgICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoRG93bmxvYWRJRCwgYm9vbCBjYW5BdXRoZW50aWNhdGUpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA2NTQzOGY5Li40ZTFhN2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0KQEAgLTI5NSwxNCArMjk1LDE0IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gdG9OU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
CiB7CiAgICAgYXV0byBzdG9yZWRDcmVkZW50aWFscyA9IF93aXRoQ3JlZGVudGlhbHMgPyBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsczo6QWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzOjpEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgaWYg
KGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRhVGFza0ZvcklkZW50aWZpZXIo
W2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSwgc3RvcmVkQ3JlZGVudGlhbHMpKSB7CisgICAgICAg
IFJlZjxOZXR3b3JrRGF0YVRhc2s+IHByb3RlY3ROZXR3b3JrRGF0YVRhc2soKm5ldHdvcmtEYXRh
VGFzayk7CiAgICAgICAgIGF1dG8gZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFzay0+cGVuZGlu
Z0Rvd25sb2FkSUQoKTsKICAgICAgICAgYXV0byYgZG93bmxvYWRNYW5hZ2VyID0gV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZG93bmxvYWRNYW5hZ2VyKCk7CiAgICAgICAgIGF1
dG8gZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RG93bmxvYWQ+KGRvd25sb2Fk
TWFuYWdlciwgZG93bmxvYWRJRCwgZG93bmxvYWRUYXNrLCBfc2Vzc2lvbi0+c2Vzc2lvbklEKCks
IG5ldHdvcmtEYXRhVGFzay0+c3VnZ2VzdGVkRmlsZW5hbWUoKSk7CiAgICAgICAgIG5ldHdvcmtE
YXRhVGFzay0+dHJhbnNmZXJTYW5kYm94RXh0ZW5zaW9uVG9Eb3dubG9hZCgqZG93bmxvYWQpOwog
ICAgICAgICBBU1NFUlQoV2ViQ29yZTo6ZmlsZUV4aXN0cyhuZXR3b3JrRGF0YVRhc2stPnBlbmRp
bmdEb3dubG9hZExvY2F0aW9uKCkpKTsKICAgICAgICAgZG93bmxvYWQtPmRpZENyZWF0ZURlc3Rp
bmF0aW9uKG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oKSk7Ci0gICAg
ICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gZG93bmxvYWRNYW5hZ2VyLmRhdGFUYXNrQmVjYW1l
RG93bmxvYWRUYXNrKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKLQorICAgICAgICBk
b3dubG9hZE1hbmFnZXIuZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soZG93bmxvYWRJRCwgV1RG
TW92ZShkb3dubG9hZCkpOwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZEJlY29tZURvd25s
b2FkKCk7CiAKICAgICAgICAgX3Nlc3Npb24tPmFkZERvd25sb2FkSUQoW2Rvd25sb2FkVGFzayB0
YXNrSWRlbnRpZmllcl0sIGRvd25sb2FkSUQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290936</attachid>
            <date>2016-10-07 09:42:13 -0700</date>
            <delta_ts>2016-10-07 13:17:36 -0700</delta_ts>
            <desc>Fix coding style</desc>
            <filename>wk2-downloads-pending.diff</filename>
            <type>text/plain</type>
            <size>8923</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlN2NjYjJkLi41NzRjNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTYtMTAtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIE5ldHdvcmsgU2Vzc2lvbjogUGVuZGluZ0Rvd25sb2FkIGlzIGFsd2F5cyBu
dWxscHRyIGluIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzAwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soKSB3ZSBhcmUgc3VwcG9zZWQgdG8g
aGF2ZSBlaXRoZXIgYSBwZW5kaW5nIGRvd25sb2FkLCBvciBhIG5ldHdvcmsKKyAgICAgICAgZGF0
YSB0YXNrIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBkb3dubG9hZCB3YXMgc3RhcnRlZCBieSBz
dGFydERvd25sb2FkKCkgb3IgY29udmVydFRhc2tUb0Rvd25sb2FkLiBIb3dldmVyLCBpbgorICAg
ICAgICBib3RoIGNhc2VzIHdlIGRvIGhhdmUgYSBkYXRhIHRhc2sgYW5kIG5ldmVyIGEgcGVuZGlu
ZyBkb3dubG9hZC4gSW4gdGhlIGNhc2Ugb2Ygc3RhcnREb3dubG9hZCgpIHRoZSBwZW5kaW5nCisg
ICAgICAgIGRvd25sb2FkIGlzIHJlbW92ZWQgZnJvbSBtX3BlbmRpbmdEb3dubG9hZHMgaW4gd2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKCkuIFRoZSB0YXNrIGlzIGFsd2F5cwor
ICAgICAgICBhZGRlZCB0byBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbiBpbiB3aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oKSBhbmQgdG8KKyAgICAgICAgbV9kb3du
bG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZCBpbiBjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKCkgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKTogQWRkIGFuIEFTU0VSVCB0
byBlbnN1cmUgd2UgZG9uJ3QgaGF2ZSBhIHBlbmRpbmcgZG93bmxvYWQKKyAgICAgICAgYXQgdGhp
cyBwb2ludCBhbmQgdGhhdCB0aGUgZG93bmxvYWQgaXMgbm90IGFscmVhZHkgaW4gdGhlIG1hcC4g
UmVtb3ZlIHRoZSBkb3dubG9hZCBmcm9tIHRoZQorICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVz
dGluYXRpb25EZWNpZGVkIG1hcCwgYnV0IGRvbid0IGNoZWNrIGl0cyByZXN1bHQgYmVjYXVzZSBp
dCBtaWdodCBub3QgYmVpbiB0aGF0IG1hcCBpZgorICAgICAgICBkYXRhVGFza0JlY2FtZURvd25s
b2FkVGFzayBpcyBjYWxsZWQgc3luY2hyb25vdXNseSBmcm9tIHRoZSBkaWRSZWNlaXZlUmVzcG9u
c2UgY29tcGxldGlvbiBoYW5kbGVyLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6
OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IERvIG5vdCB0YWtlIHRoZSBw
ZW5kaW5nIGRvd25sb2FkIGhlcmUsIHdhaXQKKyAgICAgICAgdW50aWwgZGlkUmVjZWl2ZVJlc3Bv
bnNlIGNvbXBsZXRpb24gaGFuZGxlciBpcyBjYWxsZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IFRh
a2UgdGhlIHBlbmRpbmcgZG93bmxvYWQgaGVyZSBlbnN1cmluZworICAgICAgICBpdCdzIGFsaXZl
IHdoaWxlIHRoZSBkaWRSZWNlaXZlUmVzcG9uc2UgY29tcGxldGlvbiBoYW5kbGVyIGlzIGNhbGxl
ZC4gQWxzbyByZW1vdmUgaW52YWxpZCBlYXJseSByZXR1cm4gd2hlbgorICAgICAgICBlaXRoZXIg
bmV0d29ya0RhdGFUYXNrIG9yIGNvbXBsZXRpb25IYW5kbGVyIGFyZSBudWxscHRyIGJlY2F1c2Ug
d2UgYXJlIHVzaW5nIGJvdGggdW5jb25kaXRpb25hbGx5LCB3ZSBzaG91bGQKKyAgICAgICAgcmV0
dXJuIGVlYXJseSBpZiBib3RoIGFyZSBudWxscHRyIHRvIGF2b2lkIGNyYXNoZXMuIEhvd2V2ZXIs
IHdlIGFyZSBjaGVja2luZyB0aGF0IHRoZSBkb3dubG9hZCBpcyBpbiB0aGUKKyAgICAgICAgbV9k
b3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24gYW5kIGluIHRoYXQgY2FzZSB3ZSBzaG91bGQg
YWx3YXlzIGhhdmUgYm90aCwgc28gYmV0dGVyIGFkZCBhc3NlcnRzIHRoZXJlLiBJZgorICAgICAg
ICB0aGUgZG93bmxvYWQgaXMgYWxyZWFkeSBpbiB0aGUgbWFwIGFmdGVyIHRoZSBjb21wbGV0aW9u
IGhhbmRsZXIgaXQgbWVhbnMgdGhhdCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpIGhhcwor
ICAgICAgICBhbHJhZHkgYmVlbiBjYWxsZWQsIHNvIHdlIGNhbiBqdXN0IHJldHVybiBpbiB0aGF0
IGNhc2UuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOmRhdGFU
YXNrOmRpZEJlY29tZURvd25sb2FkVGFzazpdKTogUHJvdGVjdCB0aGUgTmV0d29ya0RhdGFUYXNr
IHRoYXQgY2FuCisgICAgICAgIGJlIGRlbGV0ZWQgYnkgZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRh
c2soKS4KKworMjAxNi0xMC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKICAgICAgICAgTmV0d29ya1Nlc3Npb246IGRvd25sb2FkcyBzdGFydGVkIGJ5IHN0
YXJ0RG93bmxvYWQoKSBjYW4gZmFpbCBiZWZvcmUgc3RhcnRpbmcgZnJvbSB0aGUgQVBJIHBvaW50
IG9mIHZpZXcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzEwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IDA2OWU0NzQuLjBjYWQ0M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC02NywxOCArNjcsMTIgQEAgdm9pZCBEb3dubG9hZE1h
bmFnZXI6OnN0YXJ0RG93bmxvYWQoU2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3du
bG9hZElELAogfQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLXN0ZDo6cGFpcjxSZWZQdHI8
TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+IERvd25s
b2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCit2b2lkIERvd25sb2Fk
TWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9hZElE
LCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCiB7Ci0gICAgLy8gVGhpcyBp
cyBuZWVkZWQgZm9yIGRvd25sb2FkcyBzdGFydGVkIHdpdGggc3RhcnREb3dubG9hZCwgb3RoZXJ3
aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBt
X3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKLQotICAgIC8vIFRoaXMgaXMgbmVl
ZGVkIGZvciBkb3dubG9hZHMgc3RhcnRlZCB3aXRoIGNvbnZlcnRUYXNrVG9Eb3dubG9hZCwgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCi0gICAgYXV0byBkb3dubG9hZEFmdGVyTG9j
YXRpb25EZWNpZGVkID0gbV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC50YWtlKGRv
d25sb2FkSUQpOwotICAgIAotICAgIEFTU0VSVCghIXBlbmRpbmdEb3dubG9hZCAhPSAhIWRvd25s
b2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpOwotICAgIAorICAgIEFTU0VSVCghbV9wZW5kaW5nRG93
bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNv
bnRhaW5zKGRvd25sb2FkSUQpKTsKKyAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNp
ZGVkLnJlbW92ZShkb3dubG9hZElEKTsKICAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwg
V1RGTW92ZShkb3dubG9hZCkpOwotICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXVEZNb3ZlKGRv
d25sb2FkQWZ0ZXJMb2NhdGlvbkRlY2lkZWQpLCBXVEZNb3ZlKHBlbmRpbmdEb3dubG9hZCkpOwog
fQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwMiw4ICs5
Niw2IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6d2ls
bERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29y
a0RhdGFUYXNrLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZElEKCk7Ci0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3dubG9hZHMudGFr
ZShkb3dubG9hZElEKTsKLSAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9h
ZCgpID09IHBlbmRpbmdEb3dubG9hZC5nZXQoKSk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2Rv
d25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5zZXQoZG93bmxvYWRJRCwgc3RkOjptYWtlX3Bh
aXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI+KCZu
ZXR3b3JrRGF0YVRhc2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KQEAgLTEyMiwxNSAr
MTE0LDIyIEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKICAgICBpZiAobV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24uY29udGFpbnMo
ZG93bmxvYWRJRCkpIHsKKyAgICAgICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdE
b3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBwYWlyID0gbV9kb3dubG9h
ZHNXYWl0aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKICAgICAgICAgYXV0byBu
ZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwogICAgICAgICBhdXRvIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Ci0gICAgICAgIGlmICghbmV0d29y
a0RhdGFUYXNrIHx8ICFjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgQVNTRVJUKG5ldHdvcmtEYXRhVGFzayk7CisgICAgICAgIEFTU0VSVChjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgICAgIEFTU0VSVCghcGVuZGluZ0Rvd25sb2FkIHx8IHBlbmRpbmdEb3du
bG9hZC5nZXQoKSA9PSBuZXR3b3JrRGF0YVRhc2sucGVuZGluZ0Rvd25sb2FkKCkpOwogCiAgICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlKTsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOwogCisgICAgICAgIGlmIChtX2Rvd25sb2Fk
cy5jb250YWlucyhkb3dubG9hZElEKSkgeworICAgICAgICAgICAgLy8gVGhlIGNvbXBsZXRpb24g
aGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzaygpLgorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2Fk
c0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKICAgICAgICAg
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5zZXQoZG93bmxvYWRJRCwgbmV0d29y
a0RhdGFUYXNrKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCmluZGV4IDY3MGU0
YzAuLjA3MWVhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWROYW1lID0geyB9KTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIHN0ZDo6cGFpcjxS
ZWZQdHI8TmV0d29ya0RhdGFUYXNrPiwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+
IGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxE
b3dubG9hZD4mJik7CisgICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoRG93bmxvYWRJRCwgYm9vbCBjYW5BdXRoZW50aWNhdGUpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA2NTQzOGY5Li5jZWRmYzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0KQEAgLTI5NSwxNCArMjk1LDE0IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gdG9OU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
CiB7CiAgICAgYXV0byBzdG9yZWRDcmVkZW50aWFscyA9IF93aXRoQ3JlZGVudGlhbHMgPyBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsczo6QWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzOjpEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgaWYg
KGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRhVGFza0ZvcklkZW50aWZpZXIo
W2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSwgc3RvcmVkQ3JlZGVudGlhbHMpKSB7CisgICAgICAg
IFJlZjxOZXR3b3JrRGF0YVRhc2s+IHByb3RlY3RlZE5ldHdvcmtEYXRhVGFzaygqbmV0d29ya0Rh
dGFUYXNrKTsKICAgICAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLT5wZW5k
aW5nRG93bmxvYWRJRCgpOwogICAgICAgICBhdXRvJiBkb3dubG9hZE1hbmFnZXIgPSBXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5kb3dubG9hZE1hbmFnZXIoKTsKICAgICAgICAg
YXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpEb3dubG9hZD4oZG93bmxv
YWRNYW5hZ2VyLCBkb3dubG9hZElELCBkb3dubG9hZFRhc2ssIF9zZXNzaW9uLT5zZXNzaW9uSUQo
KSwgbmV0d29ya0RhdGFUYXNrLT5zdWdnZXN0ZWRGaWxlbmFtZSgpKTsKICAgICAgICAgbmV0d29y
a0RhdGFUYXNrLT50cmFuc2ZlclNhbmRib3hFeHRlbnNpb25Ub0Rvd25sb2FkKCpkb3dubG9hZCk7
CiAgICAgICAgIEFTU0VSVChXZWJDb3JlOjpmaWxlRXhpc3RzKG5ldHdvcmtEYXRhVGFzay0+cGVu
ZGluZ0Rvd25sb2FkTG9jYXRpb24oKSkpOwogICAgICAgICBkb3dubG9hZC0+ZGlkQ3JlYXRlRGVz
dGluYXRpb24obmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRMb2NhdGlvbigpKTsKLSAg
ICAgICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBkb3dubG9hZE1hbmFnZXIuZGF0YVRhc2tCZWNh
bWVEb3dubG9hZFRhc2soZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwotCisgICAgICAg
IGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhkb3dubG9hZElELCBX
VEZNb3ZlKGRvd25sb2FkKSk7CiAgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+ZGlkQmVjb21lRG93
bmxvYWQoKTsKIAogICAgICAgICBfc2Vzc2lvbi0+YWRkRG93bmxvYWRJRChbZG93bmxvYWRUYXNr
IHRhc2tJZGVudGlmaWVyXSwgZG93bmxvYWRJRCk7Cg==
</data>
<flag name="review"
          id="314088"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="314115"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>