Граф коммитов

762 Коммитов

Автор SHA1 Сообщение Дата
Cykesiopka 150742ba74 Bug 641120 - Enhance PKCS #11 module load dialog. r=keeler
This changes does several things:
1. Changes some titles to include the word "driver" for better clarity.
2. Moves and cleans up the JS implementation of load_device.xul. Having a
   cleaner implementation in a separate file makes the code easier to discover
   and maintain.
3. Removes code that tries to show a special case message if a module was
   already loaded.
3A. The backend code doesn't provide distinction from this case and failure to
    add in general.
3B. The backend code would only return the error code being checked for if a
    blank module name was provided.
4. Adds tests.

MozReview-Commit-ID: 8BxKWKw5rvp

--HG--
extra : rebase_source : 15a29bf7d46f523a11eac37c9f0c6efb2b5d0114
2017-04-18 22:18:53 +08:00
Florian Queze f935ddc4b3 Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
Florian Queze 37ff4fc7cc Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Sebastian Hengst a07223d699 Backed out changeset 322fde2d53bf (bug 1356569) so bug 1355161 can be backed out. r=backout 2017-04-14 23:39:22 +02:00
Sebastian Hengst 738d097aae Backed out changeset 55f3df15eaa6 (bug 1356569) 2017-04-14 23:39:17 +02:00
Florian Queze 3c564a2b02 Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
Florian Queze 95d4d20c17 Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Cykesiopka a4b87029fc Bug 1346315 - Enable gcc/clang -Wextra for security/apps/, security/manager/pki/ and security/manager/ssl/. r=keeler
-Wextra implies -Wmissing-field-initializers, but since the latter warning seems
to warn about mostly uninteresting instances (XPCOM module definitions etc), we
disable it for now.

(Note that -Wall is already enabled by default for all directories for gcc and
clang.)

MozReview-Commit-ID: 8RdF51sLPC8

--HG--
extra : rebase_source : 003c1c04e090ec215d058f5adf4c9e72558bbae3
2017-04-04 16:56:26 +08:00
David Keeler cb2ce54903 bug 1347859 - prevent dialog overflow in certificate exception dialog by resizing to content r=Cykesiopka
MozReview-Commit-ID: HDjE9QldcxF

--HG--
extra : rebase_source : c0240e37ee10ece4e908b0f542627ab41457242a
2017-03-30 14:00:29 -07:00
Cykesiopka 895edf7133 Bug 1338895 - Avoid non-smart string IDL types in remaining PSM IDL files. r=aklotz,keeler
Smart string classes like nsCString are safer to use than raw |char*| strings,
and are typically easier to deal with as well.

MozReview-Commit-ID: 18C293zWrJw

--HG--
extra : rebase_source : 350191d4c3047fb38d18e8c6d9370cd059007861
2017-02-26 20:36:40 +08:00
Florian Quèze 9d62681259 Bug 1345253 - Use element.firstChild.remove() instead of element.removeChild(element.firstChild), r=jaws. 2017-03-08 10:17:52 +01:00
Sam Foster 589c1b5503 Bug 1344308 - Extend toolkit's eslint rules and fix lint errors in PSM r=jaws
* Remove eslint rules for PSM which are redundant with toolkit/.eslintrc.js
* Fix missing plugins block in mochitest.eslintrc.js
* Disable brace-style checking in mixed-content mochitests which use boilerplate where calls to runTest and afterNavigationTest all use opening brace on newline. I've left this for a follow-up.
* Fix lint errors resulting from new rules defined by toolkit's eslintrc.js

MozReview-Commit-ID: EepCLrzAsdM

--HG--
extra : rebase_source : e74e008403d9cd70703d60cf829af01dbede0353
2017-03-07 10:15:49 -08:00
Andrea Marchesini 24004054a8 Bug 1334975 - Get rid of nsIFilePicker.show() use in gecko, r=ochameau 2017-03-03 09:42:27 +01:00
David Keeler 05acf3850b bug 1334694 - remove token arguments from nsIX509CertDB.importPKCS12File and exportPKCS12File r=Cykesiopka
MozReview-Commit-ID: Ceo48mcF38I

--HG--
extra : rebase_source : c2738fa9c9bc178059831e9460209bde954fdc84
2017-01-27 15:26:20 -08:00
Cykesiopka 6f68bd00b2 Bug 1329248 - Enable 26 more ESLint rules for PSM. r=mgoodwin
The "no-mixed-spaces-and-tabs" rule is also disabled since there's no point
having it enabled when the "no-tabs" rule is also enabled.

MozReview-Commit-ID: 49addnnmmvf

--HG--
extra : rebase_source : 577d89ddc6b487a6f157b40caacc0572c1249eb3
2017-01-14 13:18:03 +08:00
Cykesiopka 737a826174 Bug 1325648 - Remove token choosing functionality from changepassword.(js|xul). r=keeler
The functionality is unnecessary duplication of what the Device Manager already
does, and nsITokenDialogs.ChooseToken() exists as a dedicated UI for choosing
tokens anyways.

Since we're already breaking addon compat, the changes here also update
nsITokenPasswordDialogs.setPassword() to not unnecessarily return the `canceled`
value through an outparam.

MozReview-Commit-ID: C2KVXzrpDR3

--HG--
extra : rebase_source : e0e6eb89735125a9b85491356c9d367eab0c2a3b
2017-01-06 23:11:26 +08:00
David Keeler 1e8a66e52b bug 1328456 - disallow empty token names for nsIPK11TokenDB.findTokenByName r=Cykesiopka
MozReview-Commit-ID: 5SBxAUjX579

--HG--
extra : rebase_source : 1530dcb18556bdcbe99f9aee73ddfe69f8a9124f
2017-01-03 16:23:39 -08:00
David Keeler 104c38c723 bug 1324071 - add nsIPK11Token.hasPassword to replace unnecessary uses of nsIPKCS11Slot.status r=Cykesiopka,gps,MattN,sebastian
MozReview-Commit-ID: C2jwQHPEDC0

--HG--
extra : rebase_source : 16271e70ef32da8657cdc4f8df41b7822430e3bf
2016-12-02 15:09:35 -08:00
Cykesiopka 9e010f1049 Bug 1324184 - Enable "no-tabs", "no-template-curly-in-string" and "quotes" ESLint rules for PSM. r=keeler
Also sorts the rule list alphabetically.

MozReview-Commit-ID: 9LwgwfiViom

--HG--
extra : rebase_source : 4fb1e49f3c3d9fe363654d0b7398f2088a7e3aea
2016-12-21 00:43:17 +08:00
Jonathan Hao 8ed11ff0ff Bug 1282279 - Tests that make sure user certificates are Origin Attribute aware. r=baku
--HG--
extra : rebase_source : 960fc999bfc84fe9d651fa19c7c9b0dc92badfcf
2016-11-29 14:21:09 +08:00
David Keeler 858957f033 bug 857627 - 2/4: remove nsIX509Cert.nickname r=Cykesiopka,jcj
In general, any code that was using nsIX509Cert.nickname should be able to use
the attribute displayName (if using nickname for display purposes) or the
attribute dbKey (if using nickname as a unique identifier for a certificate).

MozReview-Commit-ID: G9CfMJDfLqe

--HG--
extra : rebase_source : 1c464dab8f028568cedd5a42cf87428b8bb63fc0
2016-11-18 13:12:29 -08:00
David Keeler b92dd26f47 bug 857627 - 1/4: improve nsIX509Cert.windowTitle (and rename to displayName) r=Cykesiopka,jcj
This patch makes the following changes:
1. renames nsIX509Cert.windowTitle to displayName
2. removes (most of*) displayName's use of the NSS certificate nickname API
3. adds additional fields that displayName will attempt to use to find a good
name to return (namely, organizationalUnitName and organizationName)

*except for built-in roots, where we have a good hard-coded value for the name

MozReview-Commit-ID: Bt864GnOu7D

--HG--
extra : rebase_source : 5d85aaf68fd4fbe563596354a5ed50e541689934
2016-11-18 11:18:23 -08:00
Cykesiopka e2541cac13 Bug 1313849 – Stop using nsIDialogParamBlock in setp12password.xul. r=keeler
nsIDialogParamBlock isn't a great API, and is best avoided.

This patch also splits password.js into two files that implement the
functionality of changepassword.xul and setp12password.xul
respectively, and adds a test.

MozReview-Commit-ID: A1GlnIFl8h

--HG--
rename : security/manager/pki/resources/content/password.js => security/manager/pki/resources/content/changepassword.js
extra : rebase_source : ae3e4491951e749fe0ffb6f2c25205072a3698b0
2016-11-05 01:23:35 +08:00
Cykesiopka 9e1d463270 Bug 1313849 - Alphabetically sort security/manager/pki/resources/jar.mn. r=keeler
MozReview-Commit-ID: HOrj8vt7Hta

--HG--
extra : rebase_source : 956b4dd89c761e04cd704f98717fbc90fa55edac
2016-11-05 01:23:21 +08:00
Cykesiopka 6acb5b36ed Bug 1310961 - Stop using nsIDialogParamBlock in deletecert.(js|xul). r=mgoodwin
An nsIDialogParamBlock is unnecessary for how deletecert.(js|xul) is currently
used. Moreover, nsIDialogParamBlock is arguably a poor API, so moving away from
it is also advantageous.

In addition, this patch also fixes this bug:
1. Select a cert to delete in one of the cert manager tabs.
2. Press the delete button to launch the confirmation dialog, but don't accept
or cancel.
3. Switch to another tab in the cert manager.
4. Press the accept button in the confirmation dialog.

ER:
Cert selected in the original tab is deleted.

AR:
Cert at the same index of the new tab is deleted, even though it was never
selected.

MozReview-Commit-ID: 3N8klOhrVzi

--HG--
extra : rebase_source : 92c11209e0fed36ab88f4a9d0fa7e82c88a1ca4a
2016-10-19 22:47:29 +08:00
Cykesiopka 1c951538c1 Bug 1312154 – Stop using nsIDialogParamBlock in downloadcert.(js|xul). r=keeler
nsIDialogParamBlock isn't a great API, and is best avoided.

This patch also updates downloadcert.js to match modern PSM style, and adds a
test.

MozReview-Commit-ID: J2g2H0iBAn4

--HG--
extra : rebase_source : 9365f7b1c7a88caef84f0353e18510dcab9a5d32
2016-10-28 02:13:38 +08:00
Cykesiopka a64f9baa1e Bug 1312152 - Stop using nsIDialogParamBlock in the client auth UI. r=keeler
nsIDialogParamBlock isn't a great API, and is best avoided.

MozReview-Commit-ID: 2B0HkKNJizo

--HG--
extra : rebase_source : a05e7a05ff0745f26d08616a74b532bc8a37c4fd
2016-10-23 12:57:41 +08:00
Cykesiopka 7658cbf8e1 Bug 1308888 - Simplify passing handle to the cert to view in the cert viewer. r=keeler
The cert viewer currently supports two ways to pass a handle to the cert:
1. Passing the nickname of the cert via window.name.
2. Via an nsIDialogParamBlock, which is itself accessed through window.arguments.

Method 1 is unused and unnecessary.
Method 2 is overly complex: the relevant nsIX509Cert can just be passed directly.

This patch does the following:
1. Makes it so that there is only a single, straightforward way to pass a handle
to the cert.
2. Makes the cert viewer title localisable while we're nearby.
3. Renames viewCertDetails.js to better reflect the current use of the file.

MozReview-Commit-ID: pqtfNgvImT

--HG--
rename : security/manager/pki/resources/content/viewCertDetails.js => security/manager/pki/resources/content/certViewer.js
extra : rebase_source : 776a27111ab26cdcdc91b002890c43a3fe4f48e8
2016-10-21 00:33:36 +08:00
Cykesiopka 817eb91a1d Bug 332442 - Stop abusing window name to pass cert ref to editcerts.js. r=mgoodwin
editcacert.xul/editcerts.js currently requires the |dbKey| attribute of an
nsIX509Cert to be passed to it via the window name so it can get a handle to the
nsIX509Cert.

This has two problems:
1. This used to trigger warnings, and is unwise to do in any case.
2. It's unnecessary complexity - the nsIX509Cert can be passed directly.

This patch:
1. Addresses the two problems.
2. Adds a test to ensure the functionality of editcerts.js actually works.
3. Rewrites editcerts.js to better fit modern PSM style.
4. Updates the name of editcerts.js so it's more consistent with the general
   convention under security/pki/resources/content

MozReview-Commit-ID: ECxziXq5TmL

--HG--
rename : security/manager/pki/resources/content/editcerts.js => security/manager/pki/resources/content/editcacert.js
extra : rebase_source : ae140466dccf947cd28cbda102c1e5b3ea0eb9d4
2016-10-18 00:02:42 +08:00
Sebastian Hengst 7134c41b30 Backed out changeset c833c9f92554 (bug 332442)
--HG--
rename : security/manager/pki/resources/content/editcacert.js => security/manager/pki/resources/content/editcerts.js
2016-10-12 19:13:46 +02:00
Carsten "Tomcat" Book 2844380bd4 merge mozilla-inbound to mozilla-central a=merge
--HG--
rename : media/gmp-clearkey/0.1/ClearKeyCencParser.cpp => media/psshparser/PsshParser.cpp
rename : media/gmp-clearkey/0.1/ClearKeyCencParser.h => media/psshparser/PsshParser.h
rename : media/gmp-clearkey/0.1/gtest/TestClearKeyUtils.cpp => media/psshparser/gtest/TestPsshParser.cpp
rename : media/gmp-clearkey/0.1/gtest/moz.build => media/psshparser/gtest/moz.build
2016-10-12 12:01:48 +02:00
Cykesiopka 7d56c9e7e6 Bug 332442 - Stop abusing window name to pass cert ref to editcerts.js. r=mgoodwin
editcacert.xul/editcerts.js currently requires the |dbKey| attribute of an
nsIX509Cert to be passed to it via the window name so it can get a handle to the
nsIX509Cert.

This has two problems:
1. This used to trigger warnings, and is unwise to do in any case.
2. It's unnecessary complexity - the nsIX509Cert can be passed directly.

This patch:
1. Addresses the two problems.
2. Adds a test to ensure the functionality of editcerts.js actually works.
3. Rewrites editcerts.js to better fit modern PSM style.
4. Updates the name of editcerts.js so it's more consistent with the general
   convention under security/pki/resources/content

MozReview-Commit-ID: ECxziXq5TmL

--HG--
rename : security/manager/pki/resources/content/editcerts.js => security/manager/pki/resources/content/editcacert.js
extra : rebase_source : 46a6b2ff2ee90aded61a27b21ce3d5c1a8bed5c2
2016-10-10 16:08:36 +08:00
Cykesiopka 05531e0517 Bug 1017616 - Filter out some more unnecessary characters when exporting certs. r=keeler
MozReview-Commit-ID: 2dHJTo3xusc

--HG--
extra : amend_source : a9c7ec2c1085e87bc850e7afaa08c96c0583f5fc
2016-10-11 10:17:57 -07:00
Cykesiopka 1d6f642d9d Bug 1186286 - Consult more than just the CN when deleting a cert so it's always clear what's being deleted. r=mgoodwin
Deleting certs via the cert manager results in a confirmation dialog popping up.
This dialog contains a list of certs that were selected for deletion.

Currently, only the Common Name of each cert is used to represent it in the list.
This is a problem for certs that don't have a CN. More jarringly, the cert
manager itself falls back to various other attributes, so for example selecting
a cert that is represented by its OU ends up popping up a dialog where an empty
list is shown.

MozReview-Commit-ID: 3z4BebW8Ucd

--HG--
extra : rebase_source : 468eb3de470e3ec42471c80183a9c48ebfb130c9
extra : histedit_source : 90e1d2fc73aaba4ded68d933b6ea3a6092d60636
2016-10-07 20:14:27 +08:00
Cykesiopka ebfb27c403 Bug 1142350 - Remove nsIUserCertPicker, nsICertPickDialogs and associated code from mozilla-central. r=keeler
The code is used in comm-central, but is unused in mozilla-central. It will be
imported into comm-central in Bug 1297368.

MozReview-Commit-ID: BEY9BR0YRiD

--HG--
extra : rebase_source : 6d34c1e82cd749a009f26be50fde0537373f2f9e
2016-09-21 19:34:12 +08:00
Joseph Yeh d51b2b87d0 Bug 1298872 - Fix text cropped and overflowed in advanced pane in-content dialogs; r=MattN
MozReview-Commit-ID: C7Q5VnipTIa

--HG--
extra : rebase_source : 7a7a967c6a58c2d54ed69ec6a41802f5b6fe747f
2016-09-05 18:11:08 +08:00
Joseph Yeh eb7643afdc Bug 1049001 - Convert the certManager dialog to in-content; r=MattN
MozReview-Commit-ID: GKkbxlWboPO

--HG--
extra : rebase_source : 6a4814b3d3f7d733a6361f8adcca76371df6039f
2016-09-13 14:27:13 -07:00
Michael Layzell e12728495c Bug 1018486 - Part 9: Changes to account for modifications to clang plugin, r=ehsan
MozReview-Commit-ID: EPQMbfHYxUK
2016-09-07 10:50:47 -04:00
Michael Layzell 36e08437d0 Bug 1018486 - Part 8: Various other changes, r=smaug
MozReview-Commit-ID: B0dsomkWgEk
2016-09-07 10:50:45 -04:00
Cykesiopka cb172720f2 Bug 623917 - Add basic client authentication tests. r=keeler
This patch adds tests for the core aspects of the client authentication code,
mainly to ensure the client auth process even works.

MozReview-Commit-ID: DzV4BuwlrDE

--HG--
extra : rebase_source : 43224d3159964f02b175e8c54491b2cabba2cb8a
2016-08-12 16:36:43 +08:00
Cykesiopka 13116b6d68 Bug 1289151 - Remove obsolete nsIWalletService related code. r=jcj
It appears the wallet code was not included during the initial 2007 import of
code from CVS to Mercurial, so anything referencing wallet has been dead code
ever since.

MozReview-Commit-ID: BRTd1M0DsT0

--HG--
extra : transplant_source : %BC%FC%05%AE%B5%8C%DC%21J%DC%B4%B17M%19%AA%F3%B9%05L
2016-07-27 01:53:20 +08:00
Cykesiopka 8297eb8984 Bug 1281665 - Change nsIClientAuthDialogs.chooseCertificate() to use hostname instead of CN. r=keeler
chooseCertificate() currently uses a concatenation of the Common Name of the
server cert and the port of the server to allow the user to identify the server
requesting client authentication. Unfortunately, this approach is flawed, since
it doesn't take into account things like SAN entries, which might be very
different from the CN.

Using the hostname instead avoids this problem.

MozReview-Commit-ID: 6XjGCknWNi9

--HG--
extra : transplant_source : k%10N%7B%E8%A4%9B%C9%9A%23Q%D1%99%D2%A3%C0.%2B%7F%A5
2016-07-26 20:16:58 +08: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
Chris Peterson b175c9fdd5 Bug 1277106 - Part 2: Expand MOZ_UTF16() strings to u"" string literals. r=Waldo 2016-07-20 22:03:25 -07:00
David Keeler 56d2f86c86 bug 1284946 - remove usages-related APIs from nsIX509Cert r=Cykesiopka,Felipe,jcj
nsIX509Cert provided the APIs getUsagesArray, requestUsagesArrayAsync, and
getUsagesString. These APIs were problematic in that the synchronous ones would
cause certificate verification to block the main thread and the asynchronous one
was needlessly indirect in its definition (it made use of two additional
special-case xpidl types) and needlessly complex in its implementation (it
required nsNSSComponent to manually manage a background thread without the aid
of recent improvements in that area (e.g. CryptoTask)). Furthermore, these APIs
would return string descriptions of the usages the certificate in question had
been verified for rather than using more concrete identifiers or values. This
paradigm is usable but imprecise. The new nsIX509CertDB API
asyncVerifyCertAtTime is much more expressive, enforces off-main-thread
computation, and makes use of CryptoTask for a simple implementation. Using this
API, previous uses of the old nsIX509Cert APIs can be replaced. As an additional
benefit, this removes a ton of obsolete C++ code.

MozReview-Commit-ID: KXVTcjAKehu

--HG--
extra : rebase_source : 50c51f73b2b61ed0ad4dc9702cc5df470ce998bc
2016-07-06 14:45:36 -07:00
David Keeler fbd578cfcf bug 826783 - make certificate viewer more flexible about its minimum size r=mgoodwin
This makes the certificate viewer able to shrink itself down a bit on small
screen sizes. Without this patch, the "Close" button would be off the screen on
small resolutions like 1024x768. On larger screen sizes, this patch should have
no effect on the initial size of the certificate viewer window (although it now
can be made smaller manually).

MozReview-Commit-ID: IET9dxx23Xc

--HG--
extra : rebase_source : 487c88d626df7184502226b9ce02410adc504f12
2016-06-24 10:23:18 -07:00
Cykesiopka 577a05865b Bug 307081 - Make nsIClientAuthDialogs::ChooseCertificate() pass an nsIArray of nsIX509Certs, not strings. r=kats,keeler
This provides implementations of ChooseCertificate() with more flexibility, and
allows callers of ChooseCertificate() to be less complex.

A portion of this work involves reimplementing
nsNSSCertificate::FormatUIStrings() in JS and improving UI strings for l10n.

MozReview-Commit-ID: CE7Uc2ntwmZ

--HG--
extra : transplant_source : R%A8eC%CEO2%DC%20%F7%B4V%F3g%E6h%EB%D5%8D3
2016-06-24 00:12:16 -07:00
Cykesiopka 313db6b516 Bug 307081 - Clean up nsIClientAuthDialogs.idl and implementations. r=kats,keeler
This fixes the following in the IDL:
1. Misleading or unclear parameter names in the IDL. |cn| in practice is the
   concatenation of the CN of the server cert and the port of the server, and
   |issuer| is the Organization of the issuer cert of the server cert.
2. Use of the |wstring| type. |AString| is generally preferred, and has the
   benefit of letting implementations skip null checks due to the use of
   references.
3. Using an explicit |canceled| outparam instead of just setting a return type.
   There is no need for the outparam if the return type can be used.
4. Using |long| (int32_t) for |selectedIndex|. |unsigned long| (uint32_t) is
   more logical, and paves the way for future changes.

This fixes the following in the Android implementation:
1. Lack of checks to ensure the QueryInterface() call succeeded. In practice,
   the call will always succeed, but it's good practice to check anyways.
2. Setting a variable to an nsIPrefService instance initially, then later
   setting it to a pref branch instance later on. This is confusing and
   unnecessary.

This fixes the following in the desktop implementation:
1. Lack of null pointer checking.
2. Trying to get a parent window ref off a context that doesn't actually support
   doing so.
3. Setting a variable to an nsIPrefService instance initially, then later
   setting it to a pref branch instance later on. This is confusing and
   unnecessary.
4. Abusal of the CAPS bundle.
5. Unnecessary variables.
6. Variables declared far away from where they are used.
7. Variable shadowing.
8. Style issues.
9. Lack of documentation.

This also fixes the following:
1. Lack of localisation notes.

MozReview-Commit-ID: FTc6XecJd6h

--HG--
extra : transplant_source : %ABQ%8F%E6%A3%25%FE%94%E4%D6X%3D%28%2C%05%5E%FB%84.-
2016-06-24 00:12:11 -07:00
Cykesiopka 5598e0ec78 Bug 1268365 - Check argument validity more in nsASN1Tree.cpp. r=jcj
MozReview-Commit-ID: 6DqyT1veMR7

--HG--
extra : rebase_source : ca4d914285e651fe4fec1cd032e3106c8fc3a5b3
2016-05-03 21:31:13 -07:00
Dave Townsend bf59524a62 Bug 1257246: Update security/manager for eslint 2. r=cykesiopka
MozReview-Commit-ID: C04uJOhTbjw

--HG--
extra : rebase_source : 39fb9a3ce183b05e0b924563e055431828bab50d
extra : histedit_source : aacec3a02d251d0ec8e13e78900a6f53bc205ec3
2016-04-05 11:32:28 -07:00