Commit Graph

33588 Commits

Author SHA1 Message Date
Andrew Ozz
2d94e025a2 Replace wp_upload_dir() with the new wp_get_upload_dir() in all cases where a file is not being uploaded. Deprecate _wp_upload_dir_baseurl(), and replace it with wp_get_upload_dir().
See #34359.
Built from https://develop.svn.wordpress.org/trunk@36569


git-svn-id: http://core.svn.wordpress.org/trunk@36536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-18 00:24:27 +00:00
Drew Jaynes
c6ee6246ef Docs: Remove a duplicate @static tag from the WP_Customize_Panel->instance_count property DocBlock.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@36568


git-svn-id: http://core.svn.wordpress.org/trunk@36535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-18 00:14:26 +00:00
Boone Gorges
d9945e5bd4 Reintroduce term meta unit test accidentally removed in [36566].
Built from https://develop.svn.wordpress.org/trunk@36567


git-svn-id: http://core.svn.wordpress.org/trunk@36534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 23:02:25 +00:00
Boone Gorges
571e14f897 More performance improvements to metadata lazyloading.
Comment and term meta lazyloading for `WP_Query` loops, introduced in 4.4,
depended on filter callback methods belonging to `WP_Query` objects. This meant
storing `WP_Query` objects in the `$wp_filter` global (via `add_filter()`),
requiring that PHP retain the objects in memory, even when the local variables
would typically be expunged during normal garbage collection. In cases where a
large number of `WP_Query` objects were instantiated on a single pageload,
and/or where the contents of the `WP_Query` objects were quite large, serious
performance issues could result.

We skirt this problem by moving metadata lazyloading out of `WP_Query`. The
new `WP_Metadata_Lazyloader` class acts as a lazyload queue. Query instances
register items whose metadata should be lazyloaded - such as post terms, or
comments - and a `WP_Metadata_Lazyloader` method will intercept comment and
term meta requests to perform the cache priming. Since `WP_Metadata_Lazyloader`
instances are far smaller than `WP_Query` (containing only object IDs), and
clean up after themselves far better than the previous `WP_Query` methods (bp
only running their callbacks a single time for a given set of queued objects),
the resource use is decreased dramatically.

See [36525] for an earlier step in this direction.

Props lpawlik, stevegrunwell, boonebgorges.
Fixes #35816.
Built from https://develop.svn.wordpress.org/trunk@36566


git-svn-id: http://core.svn.wordpress.org/trunk@36533 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 22:58:26 +00:00
Andrew Ozz
da5b3a55c4 Improve the performance of wp_upload_dir():
- Cache the output in non-persistent cache.
- Cache the result from `wp_mkdir_p()` in persistent cache (when present).
- Introduce `wp_get_upload_dir()` for use when not uploading files. It is equivalent to `wp_upload_dir()` but does not check for the existence or create the upload directory.
- Change tests to use the non-cached `_wp_upload_dir()`. They change options on the fly (should never be used in production) to simulate different environments.
- Introduce `_upload_dir_no_subdir()` and `_upload_dir_https()` to facilitate testing. These use the proper `upload_dir` filter to simulate different environments.

Props kovshenin, azaozz.
See #34359.
Built from https://develop.svn.wordpress.org/trunk@36565


git-svn-id: http://core.svn.wordpress.org/trunk@36532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 22:51:26 +00:00
Boone Gorges
84350eb6b6 Add changelog entry for publicly_queryable argument in register_taxonomy().
Missed in [36525].

Fixes #34491.
Built from https://develop.svn.wordpress.org/trunk@36564


git-svn-id: http://core.svn.wordpress.org/trunk@36531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 22:04:32 +00:00
Dominik Schilling
ca6726f331 Tests: Add test for wp_get_installed_translations().
Introduces language files in /tests/phpunit/data/language. Each file includes the header and 5 translations.

Props realloc for initial patch.
Fixes #35284.
Built from https://develop.svn.wordpress.org/trunk@36563


git-svn-id: http://core.svn.wordpress.org/trunk@36530 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 22:02:26 +00:00
Jeremy Felt
3e14571132 Multisite: Make view mode sticky for network users and sites list tables.
Fixes #34365.

Built from https://develop.svn.wordpress.org/trunk@36562


git-svn-id: http://core.svn.wordpress.org/trunk@36529 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 22:00:27 +00:00
Jeremy Felt
e7a7f08c8b Multisite: Avoid a PHP Notice when saving a site address without a path.
Props kjbenk.
Fixes #35631.

Built from https://develop.svn.wordpress.org/trunk@36561


git-svn-id: http://core.svn.wordpress.org/trunk@36528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 20:50:27 +00:00
Dominik Schilling
bffdae7b1d Plugins: Remove slashes from search terms and use urldecode() in non-URL contexts.
Fixes #35712.
Built from https://develop.svn.wordpress.org/trunk@36560


git-svn-id: http://core.svn.wordpress.org/trunk@36527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 20:15:26 +00:00
Dominik Schilling
10234c1907 Tests: Add a test for testing wp_enqueue_script() with an alias handle in the footer.
Props kovshenin.
See #35643.
Built from https://develop.svn.wordpress.org/trunk@36559


git-svn-id: http://core.svn.wordpress.org/trunk@36526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:53:26 +00:00
Dominik Schilling
8b781dfaa7 Updates: Prevent further actions if an update button is disabled.
Props adamsilverstein, afercia.
Fixes #35257.
Built from https://develop.svn.wordpress.org/trunk@36558


git-svn-id: http://core.svn.wordpress.org/trunk@36525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:42:26 +00:00
Dominik Schilling
d1d90a3263 Make $wp_local_package explicitly global in wp-settings.php.
Props danielbachhuber.
Fixes #34975.
Built from https://develop.svn.wordpress.org/trunk@36557


git-svn-id: http://core.svn.wordpress.org/trunk@36524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:32:25 +00:00
Jeremy Felt
309ea2f138 Multisite: Add a hook to the end of the network's Add New User form.
The `network_user_new_form` action can be used to extend the new user form.

Props ptahdunbar.
Fixes #15389.

Built from https://develop.svn.wordpress.org/trunk@36556


git-svn-id: http://core.svn.wordpress.org/trunk@36523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:15:26 +00:00
Jeremy Felt
39cd3583a4 Multisite: Add a hook to the end of the Add Site form.
The `network_site_new_form` action can be used to extend the new site form.

Props igmoweb, ocean90.
Fixes #34739.

Built from https://develop.svn.wordpress.org/trunk@36555


git-svn-id: http://core.svn.wordpress.org/trunk@36522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:03:25 +00:00
Dominik Schilling
7e5a563876 Credits: Remove unused strings.
Props Ankit K Gupta.
Fixes #34909.
Built from https://develop.svn.wordpress.org/trunk@36554


git-svn-id: http://core.svn.wordpress.org/trunk@36521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 19:00:28 +00:00
Dominik Schilling
de0e09983d Install: Enhance the language of the "Success" message.
Props ckoerner.
Fixes #34897.
Built from https://develop.svn.wordpress.org/trunk@36553


git-svn-id: http://core.svn.wordpress.org/trunk@36520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 18:58:26 +00:00
Dominik Schilling
442a637e1e Tests: Add Tests_dbDelta::assertTableHasPrimaryKey().
Also fix a typo in the name for the compound key.

Props charlestonsw.
Fixes #34877.
Built from https://develop.svn.wordpress.org/trunk@36552


git-svn-id: http://core.svn.wordpress.org/trunk@36519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 18:55:27 +00:00
Andrew Ozz
27b3dddb2e Styles:
- Restore loading order for wp-admin: open-sans, dashicons, etc.
- Remove couple of redundant dependencies.

See #35229.
Built from https://develop.svn.wordpress.org/trunk@36551


git-svn-id: http://core.svn.wordpress.org/trunk@36518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 18:01:26 +00:00
Dominik Schilling
bc5d22266d Script/Style Dependencies: Make sure that inline styles for handles without a source are printed.
This prevents breaking plugins which are adding inline styles to the `wp-admin` handle after [36341].

Props dd32, ocean90.
Fixes #35229.
Built from https://develop.svn.wordpress.org/trunk@36550


git-svn-id: http://core.svn.wordpress.org/trunk@36517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 17:11:26 +00:00
Dominik Schilling
0d89816985 Tests: Indent test_wp_register_script() with tabs.
Built from https://develop.svn.wordpress.org/trunk@36549


git-svn-id: http://core.svn.wordpress.org/trunk@36516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 16:07:26 +00:00
Dominik Schilling
c673740166 Autoprefixer for [36532].
See #31195.
Built from https://develop.svn.wordpress.org/trunk@36548


git-svn-id: http://core.svn.wordpress.org/trunk@36515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 15:39:26 +00:00
Dominik Schilling
a9afddcd20 Tests: Indent test_wp_register_style() with tabs.
Built from https://develop.svn.wordpress.org/trunk@36547


git-svn-id: http://core.svn.wordpress.org/trunk@36514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 15:37:26 +00:00
Dominik Schilling
4693b25171 Update Backbone and Underscore to the latest versions.
Backbone, from 1.1.2 to 1.2.3. Underscore, from 1.6.0 to 1.8.3.

The new versions of Backbone and Underscore offer numerous small bug fixes and some optimizations and other improvements. Check the [http://backbonejs.org/#changelog Backbone changelog] and [http://underscorejs.org/#changelog Underscore changelog] for the full details. 

The new versions include some significant changes that may break existing code. Plugins or themes that rely on the bundled Backbone and/or Underscore libraries should carefully check functionality with the latest versions and run any available unit tests to ensure compatibility.

Some changes of note that were addressed in core as part of this upgrade:

* `_.flatten` no longer works with objects since Underscore.js 1.7. `_.flatten()` working with objects was an unintended side-affect of the implementation, see [https://github.com/jashkenas/underscore/issues/1904#issuecomment-60241576 underscore#1904]. Check any `_flatten` usage and only flatten arrays.
* As of Backbone 1.2.0, you can no longer modify the `events` hash or your view's `el` property in `initialize`, so don't try to modify them there. 
* Since Underscore 1.7, Underscore templates no longer accept an initial data object. `_.template` always returns a function now so make sure you use it that way.

Props adamsilverstein.
Fixes #34350.
Built from https://develop.svn.wordpress.org/trunk@36546


git-svn-id: http://core.svn.wordpress.org/trunk@36513 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 15:22:26 +00:00
Dominik Schilling
53245b1294 Setup: Improve wording on the page for the database connection details.
See #26879.
Built from https://develop.svn.wordpress.org/trunk@36545


git-svn-id: http://core.svn.wordpress.org/trunk@36512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 15:03:26 +00:00
Dominik Schilling
7482a4d4ac Setup: Use "Username" instead of "User Name".
Props thisisit.
Fixes #35850.
Built from https://develop.svn.wordpress.org/trunk@36544


git-svn-id: http://core.svn.wordpress.org/trunk@36511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 15:00:28 +00:00
Andrew Ozz
2413e41f8c Do not strip slashes from the whole &_POST when doing autosaves.
Props joehoyle.
Fixes #35408.
Built from https://develop.svn.wordpress.org/trunk@36543


git-svn-id: http://core.svn.wordpress.org/trunk@36510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-17 00:10:27 +00:00
Andrew Ozz
0ff58701e0 Comments: look for wp_error when checking whether $wpdb->get_col_length() has failed.
See #10377.
Built from https://develop.svn.wordpress.org/trunk@36542


git-svn-id: http://core.svn.wordpress.org/trunk@36509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 23:50:27 +00:00
Dominik Schilling
9e73dea03a Introduce a $parent_class parameter for _deprecated_constructor().
Use the parameter for the deprecated constructor warning in `WP_Widget` to provide an indication to which widget is using the PHP4 style constructor.

Props sebastian.pisula.
Fixes #33440.
Built from https://develop.svn.wordpress.org/trunk@36541


git-svn-id: http://core.svn.wordpress.org/trunk@36508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 23:20:26 +00:00
Dominik Schilling
8a52014638 In wp_title() fix a 7 year old typo.
Props joelerr.
Fixes #34879.
Built from https://develop.svn.wordpress.org/trunk@36540


git-svn-id: http://core.svn.wordpress.org/trunk@36507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 22:28:26 +00:00
Dominik Schilling
3f3fe5a7ed Themes: Use the attachment ID as the key in get_uploaded_header_images().
Prevents missing header images when an image has the same name as another header image.

Props sirbrillig.
Fixes #31786.
Built from https://develop.svn.wordpress.org/trunk@36539


git-svn-id: http://core.svn.wordpress.org/trunk@36506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 22:12:27 +00:00
Dominik Schilling
51473acfb3 i18n: Prevent is_textdomain_loaded() from returning true even if there are no translations for the domain.
In `get_translations_for_domain()` don't fill the global `$l10n` with `NOOP_Translations` instances, return a `NOOP_Translations` instance instead.

Props nacin, jrf.
Fixes #21319.
Built from https://develop.svn.wordpress.org/trunk@36538


git-svn-id: http://core.svn.wordpress.org/trunk@36505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 21:15:29 +00:00
Andrea Fercia
008cba0333 Accessibility: Reduce the WordPress shades of grey, first part.
See #35783.
Built from https://develop.svn.wordpress.org/trunk@36537


git-svn-id: http://core.svn.wordpress.org/trunk@36504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 16:09:29 +00:00
Ryan McCue
3e65236aa7 REST API: Apply rest_post_dispatch to embedded responses.
Fixes #35628.
Props @danielbachhuber.

Built from https://develop.svn.wordpress.org/trunk@36536


git-svn-id: http://core.svn.wordpress.org/trunk@36503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 06:06:27 +00:00
Ryan McCue
03ba67a0b7 REST API: Allow explicit HEAD callbacks.
HEAD callbacks can now be registered independently, with the GET
callback still used as a fallback.

Fixes #34841.

Built from https://develop.svn.wordpress.org/trunk@36535


git-svn-id: http://core.svn.wordpress.org/trunk@36502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 05:51:26 +00:00
Ryan McCue
0438795671 REST API: Add routing args to rest_dispatch_request filter.
This allows requests to be hijacked via the filter more easily.

Fixes #35507.

Built from https://develop.svn.wordpress.org/trunk@36534


git-svn-id: http://core.svn.wordpress.org/trunk@36501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 04:40:26 +00:00
Ryan McCue
47bee5157b REST API: Add support for CURIEs.
CURIEs are Compact URIs, which provide a more usable way to use
custom relations in the API. The `wp` CURIE is registered by default
for `https://api.w.org/` URI relations.

Fixes #34729.
Props joehoyle.

Built from https://develop.svn.wordpress.org/trunk@36533


git-svn-id: http://core.svn.wordpress.org/trunk@36500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 02:19:27 +00:00
Weston Ruter
b5e18056e5 Customize: Add a user-friendly way to preview site responsiveness for desktop, tablet, and mobile.
Introduces `WP_Customize_Manager::get_previewable_devices()` with a `customize_previewable_devices` filter to change the default device and which devices are available for previewing. This is a feature that was first pioneered on WordPress.com.

Props celloexpressions, folletto, valendesigns, westonruter, welcher, adamsilverstein, michaelarestad, Fab1en.
Fixes #31195.

Built from https://develop.svn.wordpress.org/trunk@36532


git-svn-id: http://core.svn.wordpress.org/trunk@36499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:57:26 +00:00
Ryan McCue
a6b6adb45d REST API: Fix tests from r36529.
See #35329.

Built from https://develop.svn.wordpress.org/trunk@36531


git-svn-id: http://core.svn.wordpress.org/trunk@36498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:51:25 +00:00
Rachel Baker
85e82cf571 REST API: Don’t display errors during REST API requests.
Uses `wp_debug_mode()` to prevent response from being broken by debug errors. Matches similar behavior of the XML-RPC API.

Props rockwell15.

Fixes #34915.
Built from https://develop.svn.wordpress.org/trunk@36530


git-svn-id: http://core.svn.wordpress.org/trunk@36497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:36:25 +00:00
Ryan McCue
796f0c844c REST API: Add helper function to get server instance.
This allows using rest_do_request() outside of the API itself easily.

Props danielbachhuber, swissspidy.

Built from https://develop.svn.wordpress.org/trunk@36529


git-svn-id: http://core.svn.wordpress.org/trunk@36496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:12:26 +00:00
Andrea Fercia
4ac63be963 Accessibility: improve the color contrast ratio for the TinyMCE button icons.
Also, tries to use the new grays from the Design Handbook wherever applicable.

Props michaelarestad, afercia.
Fixes #35604.
Built from https://develop.svn.wordpress.org/trunk@36528


git-svn-id: http://core.svn.wordpress.org/trunk@36495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-15 21:11:28 +00:00
Drew Jaynes
e41a0998e6 Docs: Add an internal note to the DocBlock for comment_form_title() explaining restoration of the $comment global.
See [36512]. See #35624.

Built from https://develop.svn.wordpress.org/trunk@36527


git-svn-id: http://core.svn.wordpress.org/trunk@36494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 19:15:28 +00:00
Boone Gorges
9a178f2510 Introduce {$taxonomy}_term_edit_form_top action to edit-tag-form.php.
This new action gives developers a place to output content at the beginning
of the form element on edit-tags.php.

Props flixos90.
Fixes #35252.
Built from https://develop.svn.wordpress.org/trunk@36526


git-svn-id: http://core.svn.wordpress.org/trunk@36493 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 04:01:26 +00:00
Boone Gorges
48b8ea78da Introduce publicly_queryable taxonomy argument.
Taxonomies registered as `publicly_queryable` can be queried as taxonomy
archives.

If not provided explicitly, the value of `publicly_queryable` is inherited
from `public`.

Props Chouby.
Fixes #34491.
Built from https://develop.svn.wordpress.org/trunk@36525


git-svn-id: http://core.svn.wordpress.org/trunk@36492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 03:51:26 +00:00
Boone Gorges
60cf073672 Improve WP_Query lazyloading logic, for better performance.
Lazyloading for comment meta and term meta, introduced into `WP_Query` in
4.4, used flags - `updated_term_meta_cache` and `updated_comment_meta_cache` -
in an attempt to prevent cache priming from happening more than once per query
object. This technique was mostly effective, but not entirely efficient, since
the flag didn't prevent the `lazyload_*_meta` callbacks from running. The
obvious solution - removing the filter callback after it'd be run once - was
dismissed for 4.4 because of concerns that `remove_filter()` could disable
lazyloading too generally in the context of nested queries, due to the way
`_wp_filter_build_unique_id()` doesn't always build sufficiently unique IDs for
similar objects. However, further testing shows that this concern is only valid
in a very small subset of cases, while the cost of keeping the query objects in
memory, via the `$wp_filter` global, is quite significant. As such, this
changeset removes the flags in favor of the `remove_filter()` technique.

See #35454, #35816.
Built from https://develop.svn.wordpress.org/trunk@36524


git-svn-id: http://core.svn.wordpress.org/trunk@36491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 03:05:27 +00:00
Weston Ruter
9343641855 Customize: Ensure that nav menu items can be shift-clicked to edit in secondary instances of the same nav menu.
When the same nav menu is shown multiple times on a page, only the first instance of the nav menu will include `id` attributes. Subsequent instances will have the `id` attributes omitted. However, in both cases the underlying nav menu item's post ID is available among the `class` names, so the post ID can be more reliably obtained from `class` instead of the `id` attribute.  

Amends [36383].
Fixes #32681.

Built from https://develop.svn.wordpress.org/trunk@36523


git-svn-id: http://core.svn.wordpress.org/trunk@36490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 00:12:25 +00:00
Weston Ruter
453ff22d7f Customize: Hide widgets re-order button when no re-ordering is possible.
Hide the re-order button if there are no widgets in the sidebar, or if there is there is only one sidebar and there is only one widget in the sidebar.

Props rabmalin, westonruter.
Fixes #35533.

Built from https://develop.svn.wordpress.org/trunk@36522


git-svn-id: http://core.svn.wordpress.org/trunk@36489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 23:52:27 +00:00
Rachel Baker
f99ec3db18 Comments: In the comments list table, only link rows inside the “Submitted On” column to the comment if it is publicly viewable.
The date within the comments list table “Submitted On” column will only be wrapped in `get_comment_link()` if the comment is approved and associated with a valid `comment_post_ID`.

Fixes #35279.
Built from https://develop.svn.wordpress.org/trunk@36521


git-svn-id: http://core.svn.wordpress.org/trunk@36488 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 21:43:26 +00:00
Boone Gorges
f846e08f2c Make sure fixtures have empty post_content in search test.
The generator sequence was causing false positives when the search terms
('1' and '0') happened to match the current sequence number (eg,
'Post content 190').

Introduced in [36278].

See #31025.
Built from https://develop.svn.wordpress.org/trunk@36520


git-svn-id: http://core.svn.wordpress.org/trunk@36487 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 21:07:25 +00:00