Commit Graph

3953 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
336105a0de merge mozilla-inbound to mozilla-central a=merge 2016-07-22 11:58:02 +02:00
Jim Chen
ce45a595ab Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 13:49:04 -04:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Carsten "Tomcat" Book
e8bc59a87a Backed out changeset 684888aeee81 (bug 1287946) 2016-07-21 08:07:12 +02:00
Jim Chen
78f67d1f6f Bug 1287946 - Update existing code to use mozilla::java; r=me 2016-07-21 00:42:26 -04:00
Thomas Zimmermann
4bee1b2945 Bug 1288077: Forward declare arrays by including 'nsTArrayForwardDeclare.h', r=froydnj
MozReview-Commit-ID: 4RBeHDyhQgr
2016-07-20 17:29:36 +02:00
Julian Descottes
095a6309b9 Bug 1285936 - eslint mozilla plugin: fix filename in import globals & bump to 0.1.1
The file base/content/browser-fullScreen.js was renamed. This patch updates the reference
to this filename in the esling rule import-browserjs-globals.js and bumps the version to
0.1.1.

MozReview-Commit-ID: 9hibfDnbtp
2016-07-19 12:51:47 -05:00
J. Ryan Stinnett
574e0a972a Backed out changeset b82022d2347a (bug 1280883) for ESLint issues 2016-07-19 11:53:16 -05:00
Nicholas Nethercote
a913f99107 Bug 1285554 - Remove remnants of widget/qt. r=dougt,mshal.
Because bug 1282866 removed Qt support but missed a bunch of things.
* * *
Bug 1285554 - more

--HG--
extra : rebase_source : c48d2485f1fdf1c961e08d91651bbca41e3a1a53
2016-07-12 09:16:45 +10:00
Ting-Yu Lin
fe24b5c55f Bug 1285484 - Remove "mach mxr" command. r=gps
Remove it due to the announcement "MXR permanently offline".
https://groups.google.com/forum/#!topic/mozilla.dev.platform/_k-ditFrne4

MozReview-Commit-ID: HvQ18uABGec

--HG--
extra : rebase_source : 2977dcf40f713eb284de8989e257a26263f358c6
2016-07-08 16:31:30 +08:00
Chris Peterson
2b3b60f7b1 Bug 1277155 - Part 1: Remove snprintf() polyfills for VS2013 in Sprintf.h and #defines. r=froydnj r=mhowell 2016-06-27 20:45:03 -07:00
Andrew Halberstadt
3c8be23f37 Bug 1281899 - [mozlint] Add ability to lint files touched by revisions and/or the working directory, r=smacleod
This adds two parameters, --rev and --workdir. Each works both with mercurial and git (though the syntax for
specifying revisions is different between them). The value is simply forwarded to either |hg log| or |git diff|
so syntax like |mach lint -r .~4::.| or |mach lint -r "HEAD~4 HEAD"| will work as expected.

MozReview-Commit-ID: aOGp2Yrncs

--HG--
extra : rebase_source : d2cb834d4cc1a083171a3551af4e72c8a7d14021
2016-06-24 14:09:58 -04:00
Andrew Halberstadt
482f8a956c Bug 1281899 - [mozlint] Create cli module and move logic from tools/lint/mach_commands.py there, r=smacleod
There is currently no built-in user interface to mozlint. The only existing interface is the
external cli provided by |mach lint|. However, in the future mozlint may need to be used in a
context where mach isn't readily available (i.e version-control-tools). This patch basically
just moves the cli logic out of mach_commands.py, and into mozlint core. That way it can be
re-used in other places without needing to be re-implemented.

The |mach lint setup| subcommand was removed because apparently subcommands don't work with
the parser attribute. Nothing was using it yet anyway, so I removed it for now. It may get
re-added in some form in the future.

MozReview-Commit-ID: aOGp2Yrncs

--HG--
extra : rebase_source : 8f7530de96e5c131d2ed5bfcdd7a159329401e5b
2016-06-24 14:06:22 -04:00
malayaleecoder
a39c5a1a22 Bug 1283044 - Fix all flake8 error in testing/talos for python3. r=jmaher 2016-07-01 21:18:07 +05:30
Nathan Froyd
b4dc060490 Bug 1281581 - save and restore errno in the profiler's signal handler; r=BenWa
The profiler's signal handler clobbers errno, via its calls to sem_post,
or via other functions that it transitively calls.  TSan complains about
this, as a sample arriving at the wrong time could make it look like a
function that failed actually succeeded, or vice versa.  Ensure that the
signal handler preserves the state of the world by saving and restoring
errno around its operation.
2016-06-28 19:17:43 -04:00
Carsten "Tomcat" Book
261fe13dcd merge mozilla-inbound to mozilla-central a=merge 2016-06-28 16:09:05 +02:00
Philipp Kewisch
d03635aa1e Bug 1282392 - xbl bindings fail with unused "bindings" when no-unused-vars is enabled. r=miker 2016-06-27 12:23:58 +02:00
Philipp Kewisch
3ca9eb9112 Bug 1280883 - ESLint shows unreachable statement for xbl fields. r=miker 2016-06-27 12:24:57 +02:00
malayaleecoder
3317aafa12 Bug 1277490 - add flake8 linter support to talos r=jmaher
MozReview-Commit-ID: Erijz8ywllA
2016-06-28 13:32:11 +05:30
James Graham
39eed5e913 Bug 1279801 - Add wpt lint to mozlint, r=ahal
MozReview-Commit-ID: CcRBC5XzUQJ
2016-06-23 10:36:47 +01:00
Justin Wood
15b23fced1 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2

--HG--
extra : rebase_source : 04a32cea2de133cb75472092cffb8a215f7dc603
2016-06-20 21:06:55 -04:00
Thomas Zimmermann
89ae3af487 Bug 1276927: Fix breakpad to build on B2G, r=mshal
This patch unifies the include search directories for the breakpad
on B2G and Android, and protects breakpad-internal workarounds against
multiple definition.

As a side-effect of the patch set, no more Gonk-specific headers from
'gonk-include' are requried to build toolkit/ or xpcom/. The related
artifacts are removed by this patch.

MozReview-Commit-ID: E94I2rspDtJ
2016-06-16 08:43:51 +01:00
Sebastian Hengst
277e158ff3 Backed out changeset a7cc17d184bd (bug 1276927) 2016-06-15 12:23:59 +02:00
Thomas Zimmermann
5693604fd0 Bug 1276927: Fix breakpad to build on B2G, r=mshal
This patch unifies the include search directories for the breakpad
on B2G and Android, and protects breakpad-internal workarounds against
multiple definition.

As a side-effect of the patch set, no more Gonk-specific headers from
'gonk-include' are requried to build toolkit/ or xpcom/. The related
artifacts are removed by this patch.

MozReview-Commit-ID: E94I2rspDtJ
2016-06-15 10:59:49 +01:00
Carsten "Tomcat" Book
c6816bf0df merge mozilla-inbound to mozilla-central a=merge 2016-06-12 11:26:13 +02:00
J. Ryan Stinnett
51611069ed Bug 1279515 - Update ESLint plugin version after rule change. r=jdescottes
MozReview-Commit-ID: ECSIVMfsGHL
2016-06-10 11:28:03 -05:00
Andrew Halberstadt
13a551f7f9 Bug 1277641 - [mozlint] Add --no-filter option to make experimenting locally easier, r=smacleod
This makes it easier to lint a path that otherwise wouldn't have been linted due to the include/exclude
directives. Now, you can pass in -n/--no-filter instead of needing to modify the linter configuration file.

MozReview-Commit-ID: GMJuE2C1NyY

--HG--
extra : rebase_source : 03627e930f76903ad629cb01b58c4ae7372e4bb1
2016-06-02 15:14:07 -04:00
Ralph Giles
e91e062ab0 Bug 1275744 - Reference MOZ_LOG in leak_gauge. r=dbaron
NSPR_LOG_MODULES is deprecated.

MozReview-Commit-ID: 5mugF8txPPR

--HG--
extra : rebase_source : e77e805799b79e9f3cd6a1eaaa58d64592d81f33
2016-05-25 15:21:04 -07:00
Ralph Giles
abf915d42c Bug 1275630 - Update breakpad documentation links. r=ted
These locations have changed since the end of Google Code.

MozReview-Commit-ID: FSGhFBDaTCq

--HG--
extra : rebase_source : 4ef004b2d0b8f1a6331db0f44ccf70d05ad62774
2016-05-25 10:01:52 -07:00
Carsten "Tomcat" Book
4ee1ed2b8f merge mozilla-inbound to central a=merge
--HG--
extra : amend_source : 10247ace8885c608987dcf31d47368e0dec09b19
2016-06-10 15:39:23 +02:00
J. Ryan Stinnett
66ea2b9a74 Bug 1193390 - Add ESLint rule to check for single argument Cu.import. r=tromey
MozReview-Commit-ID: 1IRTa7kgdiF
2016-06-09 14:10:07 -05:00
Andrew Halberstadt
fc24b11e43 Bug 1271734 - Move all eslint related infrastructure to tools/lint, r=miker
This commit simply moves 'testing/eslint' to 'tools/lint/eslint' and the eslint related
mach command from 'python/mach_commands.py' to 'tools/lint/mach_commands.py'. It shouldn't
have any functional change on running eslint, either through mach or taskcluster.

This is in preparation for bug 1258341, to make the diffs there a little easier to read.

MozReview-Commit-ID: K03sn9lv9Lv

--HG--
rename : testing/eslint/eslint-plugin-mozilla/LICENSE => tools/lint/eslint/eslint-plugin-mozilla/LICENSE
rename : testing/eslint/eslint-plugin-mozilla/docs/balanced-listeners.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/balanced-listeners.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-browserjs-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-browserjs-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/import-headjs-globals.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/import-headjs-globals.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/index.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/index.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/mark-test-function-used.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/mark-test-function-used.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/no-aArgs.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/no-aArgs.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/no-cpows-in-tests.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/no-cpows-in-tests.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/reject-importGlobalProperties.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/reject-importGlobalProperties.rst
rename : testing/eslint/eslint-plugin-mozilla/docs/var-only-at-top-level.rst => tools/lint/eslint/eslint-plugin-mozilla/docs/var-only-at-top-level.rst
rename : testing/eslint/eslint-plugin-mozilla/lib/globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/helpers.js => tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js
rename : testing/eslint/eslint-plugin-mozilla/lib/index.js => tools/lint/eslint/eslint-plugin-mozilla/lib/index.js
rename : testing/eslint/eslint-plugin-mozilla/lib/processors/xbl-bindings.js => tools/lint/eslint/eslint-plugin-mozilla/lib/processors/xbl-bindings.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/.eslintrc => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/.eslintrc
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/balanced-listeners.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/balanced-listeners.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browserjs-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/mark-test-function-used.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-test-function-used.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/no-aArgs.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-aArgs.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/no-cpows-in-tests.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-cpows-in-tests.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/reject-importGlobalProperties.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-importGlobalProperties.js
rename : testing/eslint/eslint-plugin-mozilla/lib/rules/var-only-at-top-level.js => tools/lint/eslint/eslint-plugin-mozilla/lib/rules/var-only-at-top-level.js
rename : testing/eslint/eslint-plugin-mozilla/moz.build => tools/lint/eslint/eslint-plugin-mozilla/moz.build
rename : testing/eslint/eslint-plugin-mozilla/package.json => tools/lint/eslint/eslint-plugin-mozilla/package.json
rename : testing/eslint/manifest.tt => tools/lint/eslint/manifest.tt
rename : testing/eslint/npm-shrinkwrap.json => tools/lint/eslint/npm-shrinkwrap.json
rename : testing/eslint/package.json => tools/lint/eslint/package.json
rename : testing/eslint/update => tools/lint/eslint/update
extra : rebase_source : bb44b6285acf4625079cb6a3aaca7d9ada778c3a
2016-06-02 15:38:36 -04:00
Julian Descottes
eace7c89ed Bug 1279210 - eslint setup: fix eslint module path;r=ahal
MozReview-Commit-ID: HL4tIwgkSau

--HG--
extra : rebase_source : 8169cbc543528a6b2a6e2bffbf4a202dfcea1a93
2016-06-09 14:40:48 +02:00
Gregory Szorc
f0ab95aa08 Bug 1277406 - Delete now-unused Mercurial setup wizard; r=glandium
The wizard has been ported to the version-control-tools repository
and in-tree consumers have been switched to consume it from there. This
code is now dead. Kill it.

References to the now-defunct code have been removed/updated.

MozReview-Commit-ID: 5fpCXdNIp8L

--HG--
extra : rebase_source : 6c1e2363793fe2cd3a506ce5d962788657871203
extra : histedit_source : c40d2203aaa54bbd48e4e2b46178e277dcdc2e3f
2016-06-09 13:20:53 -07:00
Gregory Szorc
517e7b2b60 Bug 1277406 - Move mach mercurial-setup implementation into bootstrap; r=glandium
This begins the consolidation of `mach mercurial-setup` into
`mach bootstrap`. The first step is to move the content of the
mach_commands.py file into the bootstrapper's.

I'm not crazy about adding the sys.path entry for tools/mercurial.
I intend to clean this up later.

MozReview-Commit-ID: Cq56wPG8sO1

--HG--
extra : rebase_source : 48d6d2631760c9333bf99285673430948085630e
extra : histedit_source : e062f6fbc0ae9678347801b4a1f1c9b6912afd52
2016-06-01 17:06:01 -07:00
Gregory Szorc
0da1045b72 Bug 1277406 - Remove nagging to run mach mercurial-setup from mach; r=glandium
I never really liked this. Other people had even more visceral
reactions. Let's get rid of it.

The code for touching a file when it runs has also been removed because
the only thing it was used for was the nagging feature.

MozReview-Commit-ID: ERUVkEYgkzx

--HG--
extra : rebase_source : 1c1ed9c00eb2164d19e4405f2b8becf59680d1ed
extra : histedit_source : 9f2ebc64443140c0bc853ee5a3418f4e0f03db7b
2016-06-01 16:58:01 -07:00
Andrew Halberstadt
7c3487a2d7 Bug 1277851 - [mozlint] Run flake8 directories that contain a .flake8 file separately, r=maja_zf
This is a crude workaround to get subdirectory .flake8 files working. Hopefully
this is temporary until flake8 3.0 is released with support for multiple config
files.

Note that .flake8 files that live outside of a directory that is explicitly
listed in the 'include' directive, will not be considered.

MozReview-Commit-ID: GtpUZHJKq52

--HG--
extra : rebase_source : 0294e135673a3b580316a46ec13e37749422edba
2016-06-03 10:39:32 -04:00
David Burns
c99cc3f3c1 Bug 1277672: Add Marionette Client to included directories for linting. r=ahal
MozReview-Commit-ID: 58sHBjqHpxV

--HG--
extra : rebase_source : c60b6b545551f5b567b7abc9a17e85e993b792ea
2016-06-02 21:25:24 +01:00
Andrew Halberstadt
557cd94acb Bug 1273634 - [mozlint] Create a flake8 task, r=dustin
Enables flake8 linting! To start, only these directories are actually linted:
- python/mozlint
- tools/lint

To enable new directories, add them to the 'include' directive at the bottom of:
tools/lint/flake8.lint

Edit topsrcdir/.flake8 to modify global configuration. Add a new .flake8 to a
subdirectory to override the global. The current configuration is more or less
just the default and we should tweak it to our needs.

MozReview-Commit-ID: iXbToRhm3b

--HG--
extra : transplant_source : %E7i%04%07%1C%B3%E4%FD%FF%BB%A6w%CF%27t%FFz%CD%5EE
2016-05-17 16:24:24 -04:00
Andrew Halberstadt
031698ae90 Bug 1273634 - [mozlint] Add a treeherder formatter, r=jgraham
This is a really simple and ugly formatter that is compatible with
treeherder's error highlighting mechanism. It is designed to be identical
to the current eslint output on treeherder:
https://dxr.mozilla.org/mozilla-central/rev/4d63dde701b47b8661ab7990f197b6b60e543839/tools/lint/eslint-formatter.js

Eventually eslint will also use this and we can remove that file. Once
bug 1276486 is fixed, we can make this look a little nicer. But for now
it gets the job done.

MozReview-Commit-ID: CwfWPcwWFxF

--HG--
extra : transplant_source : %F3PJ%CB%27%A5%82U%D2%CF%B3%9E%A7%9F%0F%A4%F4%E9%5D%BB
2016-05-28 23:38:30 -04:00
Carsten "Tomcat" Book
c30c6ba10e Backed out changeset c48f3b04c9de (bug 1273634) 2016-06-02 15:05:01 +02:00
Carsten "Tomcat" Book
3891fd3556 Backed out changeset 3f521a9d4d1f (bug 1273634) 2016-06-02 15:05:00 +02:00
Jeremy Chen
0350d6fe11 Bug 1277134 - Add built-in fsmonitor support for Mercurial version>=3.8. r=gps
The hgwatchman project has been renamed to fsmonitor and has been moved
into Mercurial core, as of version 3.8.
Accordingly, for Mercurial >= 3.8, we shall skip installing hgwatchman
but just set fsmonitor in hgrc file instead.

DONTBUILD (NPOTB)

MozReview-Commit-ID: 426rla5riCM

--HG--
extra : rebase_source : 359eb135a2c16361125da6f1fe97eedf9434032e
2016-06-01 16:40:55 +08:00
Andrew Halberstadt
f6bad5ec2a Bug 1273634 - [mozlint] Create a flake8 task, r=garndt
Enables flake8 linting! To start, only these directories are actually linted:
- python/mozlint
- tools/lint

To enable new directories, add them to the 'include' directive at the bottom of:
tools/lint/flake8.lint

Edit topsrcdir/.flake8 to modify global configuration. Add a new .flake8 to a
subdirectory to override the global. The current configuration is more or less
just the default and we should tweak it to our needs.

MozReview-Commit-ID: iXbToRhm3b

--HG--
extra : rebase_source : 78c4491261ba36421110b0d9fca73c1f6d1f85c3
2016-05-17 16:24:24 -04:00
Andrew Halberstadt
df97806e5f Bug 1273634 - [mozlint] Add a treeherder formatter, r=jgraham
This is a really simple and ugly formatter that is compatible with
treeherder's error highlighting mechanism. It is designed to be identical
to the current eslint output on treeherder:
https://dxr.mozilla.org/mozilla-central/rev/4d63dde701b47b8661ab7990f197b6b60e543839/tools/lint/eslint-formatter.js

Eventually eslint will also use this and we can remove that file. Once
bug 1276486 is fixed, we can make this look a little nicer. But for now
it gets the job done.

MozReview-Commit-ID: CwfWPcwWFxF

--HG--
extra : rebase_source : 8dd39aefec1064e0836c847c6d223db43df4755b
2016-05-28 23:38:30 -04:00
Chris Peterson
11ef78ae89 Bug 1275016 - Rename Endian.h to EndianUtils.h to avoid #include confusion with Android's endian.h stdlib header. r=froydnj
--HG--
rename : mfbt/Endian.h => mfbt/EndianUtils.h
2016-05-22 13:31:11 -07:00
Gregory Szorc
f1dea21d39 Bug 1267781 - Bump minimum Mercurial version on a number of extensions; r=smacleod
Our policy is to support the last 4 releases of Mercurial. 3.8 is out.
So we bump the minimum version to 3.5.

MozReview-Commit-ID: 9cftV7CscRL

--HG--
extra : rebase_source : c1875946afc0b8a586d3ec474adece7321812be7
extra : amend_source : 0fa318cd26de3dc0b73033713818f371e43ddd9c
2016-04-26 12:14:40 -07:00
Gregory Szorc
dd8c6db496 Bug 1267781 - Bump modern Mercurial version to 3.7.3; r=smacleod
These variables specify a version of Mercurial that is considered
modern and won't trigger giant warnings about being out of date.

We bump to 3.7.3 because 3.7.3 contains security fixes and it is
important for as many users as possible to get these security fixes.

We also update the messaging to indicate security issues with older
releases.

MozReview-Commit-ID: H4utKINrW0V

--HG--
extra : rebase_source : 5247fec94d7df351ef3c7bb2aa60396bb19a6196
extra : amend_source : 70b9aa52cde71d11e2b6d65a1a83567b8a0c7965
2016-04-26 12:11:29 -07:00
Gregory Szorc
64ad1bcdcd Bug 1275105 - Remove references to MQ from mach mercurial-setup; r=smacleod
MQ isn't recommended for modern Mercurial development. Stop advertising
it.

MozReview-Commit-ID: IOx3A5ZeJnJ

--HG--
extra : rebase_source : a6b49ebdba3fbdb0b0bab13fd59aae3fcdcf167c
2016-05-23 14:24:14 -07:00
L. David Baron
2579d85cb5 Bug 1274041 - Make child process write its memory map to a different file name. r=jesup
This makes the child process write its memory map to a different file
name, just like it does for the jprof log.  It tries to share the
variables between the two so that they're both connected in the code and
consistent with each other.

Note that I haven't yet written the patch to make jprof.cpp *read* the
map from that file, so this currently requires manually renaming the
generated map with the numeric suffix to jprof-map in order to run
jprof.  I should probably write that patch eventually, but I haven't
actually needed to.

This at least prevents the child process's map file from being
overwritten by the parent's a fraction of a second later.

MozReview-Commit-ID: 7L4wT9BdQYI
2016-05-20 19:57:31 -07:00