summary refs log tree commit diff
Commit message (Expand)AuthorAgeFilesLines
* Cached functions must be accessed through the dictDavid Baker2016-05-101-1/+2
* Pass though _get_state_group_for_eventsDavid Baker2016-05-101-0/+4
* Pass through get_state_groupsDavid Baker2016-05-101-0/+4
* Also pass through get_profile_displaynameDavid Baker2016-05-101-0/+4
* Uncommit accidentally commited edit to cipher listDavid Baker2016-05-101-1/+1
* Pass through get_events to pusher tooDavid Baker2016-05-101-0/+1
* Pass through _get_event_txnDavid Baker2016-05-102-1/+2
* unbreak schemaMatrix2016-05-102-0/+0
* Merge pull request #759 from matrix-org/dbkr/email_notifsMatthew Hodgson2016-05-1031-34/+1470
|\
| * Merge remote-tracking branch 'origin/develop' into dbkr/email_notifsDavid Baker2016-05-1023-88/+619
| |\
| * | More consistent config namingDavid Baker2016-05-102-2/+2
| * | Add config option to not send email notifs for new usersDavid Baker2016-05-102-1/+8
| * | Make pep8 happyDavid Baker2016-05-101-1/+1
| * | Switch from CSS to Table layout for HTML mails so they work in Outlook ak...Matthew Hodgson2016-05-1013-302/+240
| * | Switch from CSS to Table layout for HTML mails so they work in Outlook aka WordMatthew Hodgson2016-05-091-0/+7
| * | better mail subject linesMatthew Hodgson2016-05-051-1/+1
| * | fix layout; handle app naming in synapse, not jinjaMatthew Hodgson2016-05-057-22/+45
| * | fix app brandingMatthew Hodgson2016-05-053-3/+3
| * | pep8Matthew Hodgson2016-05-051-2/+4
| * | fix room.txtMatthew Hodgson2016-05-051-4/+7
| * | First cut at Vector-branded mail templatesMatthew Hodgson2016-05-057-0/+229
| * | handle fragments correctly on mxc URLs.Matthew Hodgson2016-05-051-14/+45
| * | spell out emailpusher full pathMatthew Hodgson2016-05-051-1/+1
| * | Include no contextDavid Baker2016-05-041-1/+1
| * | Add date header & message idDavid Baker2016-05-042-1/+4
| * | Correct SQL statement for postgresDavid Baker2016-05-041-2/+3
| * | Add db functions used for email to the pusher appDavid Baker2016-05-041-0/+12
| * | pep8David Baker2016-05-041-0/+1
| * | copyrightMatthew Hodgson2016-05-041-0/+22
| * | fix assorted typos in default configMatthew Hodgson2016-05-041-3/+3
| * | Unused importDavid Baker2016-05-041-1/+0
| * | Catch all exceptions when creating a pusherDavid Baker2016-05-041-2/+2
| * | Merge remote-tracking branch 'origin/develop' into dbkr/email_notifsDavid Baker2016-04-291-0/+1
| |\ \
| * | | Add constant for throttle multiplierDavid Baker2016-04-291-1/+2
| * | | Remove unused functionDavid Baker2016-04-292-26/+0
| * | | Remove unused argDavid Baker2016-04-291-2/+2
| * | | DocstringDavid Baker2016-04-291-0/+14
| * | | Use explicit joinDavid Baker2016-04-291-3/+3
| * | | Oops, actually specify the user idDavid Baker2016-04-291-1/+3
| * | | Remove unnecessary ifDavid Baker2016-04-291-1/+1
| * | | Put spaces at start of lineDavid Baker2016-04-291-16/+16
| * | | Try imports in configDavid Baker2016-04-291-0/+7
| * | | Use the constantDavid Baker2016-04-291-1/+2
| * | | Avoid `vars` builtinDavid Baker2016-04-291-15/+15
| * | | Use named parameter formatDavid Baker2016-04-291-14/+22
| * | | Default enable email notifs to FalseDavid Baker2016-04-291-1/+1
| * | | Include res in the manifestDavid Baker2016-04-291-0/+1
| * | | pep8David Baker2016-04-291-1/+0
| * | | Remove rather pointless get functionDavid Baker2016-04-291-9/+1
| * | | Stop processing notifs once we've sent a mailDavid Baker2016-04-291-0/+1
| * | | Correct public_baseurl defaultDavid Baker2016-04-291-2/+2
| * | | Nicer get() shorthandDavid Baker2016-04-291-3/+2
| * | | Remove redundant docstringDavid Baker2016-04-291-4/+0
| * | | Correct default template and add text templateDavid Baker2016-04-291-1/+2
| * | | Send mail notifs with a plaintext part tooDavid Baker2016-04-295-7/+50
| * | | Add an email pusher for new usersDavid Baker2016-04-292-0/+27
| * | | pep8 newlineDavid Baker2016-04-291-1/+1
| * | | Merge remote-tracking branch 'origin/develop' into dbkr/email_notifsDavid Baker2016-04-2942-454/+1371
| |\ \ \
| * | | | Remove vector specific styleDavid Baker2016-04-281-14/+0
| * | | | Some basic css to make it halfway legibleDavid Baker2016-04-283-16/+58
| * | | | Fix notification linkDavid Baker2016-04-281-1/+1
| * | | | May as well always include room linkDavid Baker2016-04-281-4/+3
| * | | | Put back real delay before mailingDavid Baker2016-04-281-1/+1
| * | | | Support file messages & fix plain textDavid Baker2016-04-282-7/+6
| * | | | Support image notifsDavid Baker2016-04-282-15/+33
| * | | | pep8David Baker2016-04-282-3/+6
| * | | | Only import email pusher if email notifs are onDavid Baker2016-04-281-6/+8
| * | | | Handle room invites in email notifsDavid Baker2016-04-283-13/+42
| * | | | Add the jinja template for individual notifsDavid Baker2016-04-281-0/+32
| * | | | Linkify plain text messages tooDavid Baker2016-04-281-1/+12
| * | | | Run filter_events_for_clientDavid Baker2016-04-277-20/+24
| * | | | Make html messages workDavid Baker2016-04-271-10/+21
| * | | | Better grammar for multiple messages in a roomDavid Baker2016-04-272-10/+33
| * | | | Hopefully all remaining bits for email notifsDavid Baker2016-04-277-42/+195
| * | | | More variable calculation for email notifsDavid Baker2016-04-253-19/+76
| * | | | TypoDavid Baker2016-04-251-1/+1
| * | | | No we don't: it's just the display nameDavid Baker2016-04-221-1/+0
| * | | | Actually do UTF8 correctlyDavid Baker2016-04-221-1/+1
| * | | | Sort member eventsDavid Baker2016-04-221-0/+4
| * | | | Mime part is binary so encode it first.David Baker2016-04-221-1/+1
| * | | | Implement group-of-people namesDavid Baker2016-04-221-17/+14
| * | | | No inlineCallbacks necessary on thisDavid Baker2016-04-221-1/+0
| * | | | Add WIP email template filesDavid Baker2016-04-212-0/+20
| * | | | Flesh out email templatingDavid Baker2016-04-214-4/+208
| * | | | Generate mails from a templateDavid Baker2016-04-204-31/+49
| * | | | more pep8David Baker2016-04-201-1/+1
| * | | | Send a rather basic email notifDavid Baker2016-04-206-12/+136
| * | | | Add single instance & logging stuffDavid Baker2016-04-191-8/+39
| * | | | First bits of emailpusherDavid Baker2016-04-197-8/+335
* | | | | Merge pull request #763 from matrix-org/erikj/ignore_userErik Johnston2016-05-104-9/+93
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/ignore_userErik Johnston2016-05-096-28/+23
| |\ \ \ \ | |/ / / / |/| | | |
* | | | | Merge pull request #773 from matrix-org/erikj/get_domian_from_idErik Johnston2016-05-096-28/+23
|\ \ \ \ \
| * | | | | Add and use get_domian_from_idErik Johnston2016-05-096-28/+23
| | * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/ignore_userErik Johnston2016-05-0913-58/+479
| | |\ \ \ \ | |_|/ / / / |/| | | | |
* | | | | | Merge pull request #764 from matrix-org/erikj/replication_loggingErik Johnston2016-05-091-0/+9
|\ \ \ \ \ \
| * | | | | | Don't warnErik Johnston2016-05-051-2/+0
| * | | | | | Add some log information at returned replication streamsErik Johnston2016-05-051-0/+11
* | | | | | | Merge pull request #772 from matrix-org/erikj/get_user_cacheErik Johnston2016-05-091-0/+3
|\ \ \ \ \ \ \
| * | | | | | | Add cache to get_user_by_idErik Johnston2016-05-091-0/+3
| | |/ / / / / | |/| | | | |
* | | | | | | Merge pull request #770 from matrix-org/erikj/transaction_reactorErik Johnston2016-05-091-0/+3
|\ \ \ \ \ \ \
| * | | | | | | Run transaction queue on reactorErik Johnston2016-05-091-0/+3
| |/ / / / / /
* | | | | | | Merge pull request #768 from matrix-org/erikj/queue_evens_persistErik Johnston2016-05-091-11/+149
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | |
| * | | | | | Remove unused importErik Johnston2016-05-061-1/+1
| * | | | | | Pull loop one level upErik Johnston2016-05-061-36/+41
| * | | | | | Queue events for persistenceErik Johnston2016-05-061-11/+144
|/ / / / / /
* | | | | | Merge pull request #767 from matrix-org/erikj/transaction_txnErik Johnston2016-05-062-45/+122
|\ \ \ \ \ \
| * | | | | | Pull prev txn from in memoryErik Johnston2016-05-061-5/+13
| * | | | | | Don't needlessly enter transactionErik Johnston2016-05-061-9/+9
| * | | | | | Reduce database inserts when sending transactionsErik Johnston2016-05-062-45/+114
|/ / / / / /
* | | | | | Merge pull request #765 from matrix-org/markjh/open_idMark Haines2016-05-057-2/+193
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Rename openid/token to openid/request_tokenMark Haines2016-05-051-2/+2
| * | | | | Add an openidish mechanism for proving to third parties that you own a given ...Mark Haines2016-05-057-2/+193
|/ / / / /
| * | | | Add bulk fetch storage APIErik Johnston2016-05-053-11/+26
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/ignore_userErik Johnston2016-05-048-2/+117
| |\ \ \ \ | |/ / / / |/| | | |
* | | | | Merge pull request #762 from matrix-org/erikj/report_eventErik Johnston2016-05-046-1/+106
|\ \ \ \ \
| * | | | | Add primary keyErik Johnston2016-05-041-1/+1
| * | | | | Add timestamp and auto incrementing IDErik Johnston2016-05-044-1/+10
| * | | | | Move event_id to pathErik Johnston2016-05-041-4/+2
| * | | | | Add /report endpointErik Johnston2016-05-045-1/+99
| | |_|_|/ | |/| | |
* | | | | starting point for doc on how log contexts are supposed to workMatthew Hodgson2016-05-041-0/+10
* | | | | Merge pull request #757 from matrix-org/erikj/event_auth_typoErik Johnston2016-05-031-1/+1
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Fix typo in event_auth servlet pathErik Johnston2016-04-291-1/+1
| | |_|/ | |/| |
| | * | Implement basic ignore userErik Johnston2016-05-044-9/+78
| |/ / |/| |
* | | Merge pull request #758 from matrix-org/dbkr/fix_password_resetDavid Baker2016-04-291-0/+1
|\ \ \ | |/ / |/| |
| * | Fix password resetDavid Baker2016-04-291-0/+1
|/ /
* | Fix more typos in per-request metricsMark Haines2016-04-281-4/+5
* | Fix typo in request metricsMark Haines2016-04-281-1/+1
* | fix typoMatthew Hodgson2016-04-281-1/+1
* | Merge pull request #756 from matrix-org/markjh/more_metricsMark Haines2016-04-289-47/+81
|\ \
| * | Add a comment explaining why automatic metric reporting is disabled for JsonR...Mark Haines2016-04-281-0/+4
| * | Check if report_metrics is TrueMark Haines2016-04-281-3/+4
| * | Report per request metrics for all of the things using request_handlerMark Haines2016-04-289-47/+76
|/ /
* | Merge pull request #755 from matrix-org/markjh/right_directionMark Haines2016-04-272-3/+3
|\ \
| * | Fix backfill replication to advance the stream correctlyMark Haines2016-04-272-3/+3
* | | Merge pull request #754 from matrix-org/markjh/check_for_nopMark Haines2016-04-273-2/+14
|\ \ \ | |/ / |/| |
| * | Check that somethign has happend before running the selectsMark Haines2016-04-273-2/+14
|/ /
* | Actually start the pusher daemonMark Haines2016-04-261-0/+2
* | Fix typo in default pusher configMark Haines2016-04-261-1/+1
* | Merge pull request #753 from matrix-org/markjh/daemon_pusherMark Haines2016-04-261-4/+36
|\ \
| * | Add a log context to the daemonized pusherMark Haines2016-04-261-1/+6
| * | Optionally daemonize the pusherMark Haines2016-04-261-4/+31
|/ /
* | Merge pull request #750 from matrix-org/erikj/jwt_optionalErik Johnston2016-04-263-7/+23
|\ \
| * | Make pyjwt dependency optionalErik Johnston2016-04-253-7/+23
* | | Merge pull request #752 from matrix-org/markjh/more_updatesMark Haines2016-04-261-0/+8
|\ \ \
| * | | Add a couple of update methods to the PusherSlaveStoreMark Haines2016-04-261-0/+8
|/ / /
* | | Merge pull request #751 from matrix-org/markjh/pusher_metrics_manholeMark Haines2016-04-262-3/+92
|\ \ \
| * | | Remove the uncomments from the commentsMark Haines2016-04-251-2/+2
| * | | Add a metrics listener and a ssh listener to the pusherMark Haines2016-04-252-3/+92
|/ / /
* | | Merge pull request #749 from matrix-org/markjh/split_manholeMark Haines2016-04-252-23/+52
|\ \ \ | |/ / |/| |
| * | Move the listenTCP call outside the manhole functionMark Haines2016-04-252-16/+14
| * | Split out setting up the manhole to a separate fileMark Haines2016-04-222-26/+57
* | | Merge pull request #748 from matrix-org/markjh/split_out_site.pyMark Haines2016-04-222-130/+149
|\| |
| * | Merge branch 'develop' into markjh/split_out_site.pyMark Haines2016-04-222-82/+105
| |\ \ | |/ / |/| |
* | | Merge pull request #747 from matrix-org/markjh/http_resource_treeMark Haines2016-04-222-82/+105
|\ \ \
| * | | Split out create_resource_tree to a separate fileMark Haines2016-04-222-82/+105
|/ / /
| * / Move SynapseSite to its own fileMark Haines2016-04-222-130/+149
|/ /
* | Merge pull request #746 from matrix-org/markjh/split_out_pusherMark Haines2016-04-225-1/+217
|\ \
| * | Optionally split out the pushers into a separate processMark Haines2016-04-215-1/+217
* | | Merge pull request #745 from matrix-org/erikj/search-indexErik Johnston2016-04-225-49/+250
|\ \ \
| * | | Update port scriptErik Johnston2016-04-221-42/+81
| * | | Simplify query and handle finishing correctlyErik Johnston2016-04-222-17/+16
| * | | Order NULLs firstErik Johnston2016-04-212-5/+16
| * | | Fix queryErik Johnston2016-04-211-2/+2
| * | | Use special UPDATE syntaxErik Johnston2016-04-212-22/+14
| * | | TypoErik Johnston2016-04-211-1/+1
| * | | Need to do _background_update_progress_txn in actual transactionErik Johnston2016-04-211-6/+8
| * | | Update progress when creating indexErik Johnston2016-04-211-0/+7
| * | | Fix SQL statementErik Johnston2016-04-211-3/+3
| * | | Create index must be on a connErik Johnston2016-04-211-6/+13
| * | | Create index concurrentlyErik Johnston2016-04-212-6/+14
| * | | Add missing run_upgradeErik Johnston2016-04-211-0/+4
| * | | Optimise event_search in postgresErik Johnston2016-04-213-5/+137
* | | | Merge pull request #687 from nikriek/jwt-fixErik Johnston2016-04-212-3/+8
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix issues with JWT loginNiklas Riekenbrauck2016-04-212-3/+8
* | | | Merge pull request #743 from matrix-org/markjh/slave_pushersMark Haines2016-04-211-0/+52
|\ \ \ \
| * | | | Replicate the pushersMark Haines2016-04-211-0/+52
| | |/ / | |/| |
* | | | Merge pull request #744 from matrix-org/markjh/replication_remove_pusherMark Haines2016-04-212-3/+57
|\ \ \ \
| * | | | Add a replication endpoint for deleting pushersMark Haines2016-04-212-3/+57
| |/ / /
* | | | Merge pull request #742 from matrix-org/markjh/slave_event_push_actionsMark Haines2016-04-212-0/+57
|\ \ \ \ | |/ / / |/| | |
| * | | Merge branch 'develop' into markjh/slave_event_push_actionsMark Haines2016-04-213-86/+2
| |\ \ \ | |/ / / |/| | |
* | | | pip install new python dependencies in jenkins.shMark Haines2016-04-213-86/+2
| * | | Merge branch 'develop' into markjh/slave_event_push_actionsMark Haines2016-04-212-0/+2
| |\ \ \ | |/ / / |/| | |
* | | | Make jenkins install lxmlErik Johnston2016-04-212-0/+2
| * | | Replicate push actionsMark Haines2016-04-212-0/+57
|/ / /
* | | Merge pull request #740 from matrix-org/erikj/state_cacheErik Johnston2016-04-201-3/+10
|\ \ \
| * | | Always use state cache entry if it existsErik Johnston2016-04-201-3/+10
|/ / /
* | | Add some logging to state resolve_eventsErik Johnston2016-04-201-0/+5
* | | Merge pull request #739 from matrix-org/erikj/cache_get_state_groups_for_groupsErik Johnston2016-04-191-3/+16
|\ \ \
| * | | Add cache to _get_state_groups_from_groupsErik Johnston2016-04-191-3/+16
* | | | Merge pull request #738 from matrix-org/markjh/slaved_receiptsMark Haines2016-04-194-3/+104
|\ \ \ \ | |/ / / |/| | |
| * | | Add a slaved receipts storeMark Haines2016-04-194-3/+104
* | | | Merge pull request #737 from matrix-org/erikj/spider_ssl_factoryErik Johnston2016-04-191-1/+4
|\ \ \ \
| * | | | Make InsecureInterceptableContextFactory work with SpiderEndpointErik Johnston2016-04-191-1/+4
| |/ / /
* | | | Merge pull request #736 from matrix-org/markjh/slave_invited_rooms_for_userMark Haines2016-04-192-2/+19
|\ \ \ \ | |/ / / |/| | |
| * | | Replicate get_invited_rooms_for_userMark Haines2016-04-192-2/+19
|/ / /
* | | Add self.media_repo to PreviewUrlResourceErik Johnston2016-04-191-0/+1
* | | _make_dirs was moved to MediaRepositoryErik Johnston2016-04-191-1/+1
* | | Add store to PreviewUrlResourceErik Johnston2016-04-191-0/+1
* | | Reorder importsErik Johnston2016-04-191-7/+8
| |/ |/|
* | Merge pull request #735 from matrix-org/erikj/media_resource_cleanupErik Johnston2016-04-197-531/+580
|\ \
| * | Move MediaRepository to media_repository moduleErik Johnston2016-04-195-489/+496
| * | Split out BaseMediaResource into MediaRepositoryErik Johnston2016-04-196-138/+180
|/ /
* | Merge pull request #734 from matrix-org/erikj/measureErik Johnston2016-04-182-8/+19
|\ \
| * | Create log context in Measure if one doesn't existErik Johnston2016-04-182-8/+19
|/ /
* | Merge pull request #733 from matrix-org/erikj/make_member_timeoutErik Johnston2016-04-181-1/+2
|\ \
| * | Lower timeout for make_membership_eventErik Johnston2016-04-151-1/+2
* | | Merge pull request #732 from matrix-org/erikj/loginErik Johnston2016-04-181-5/+9
|\ \ \
| * | | Simplify _check_passwordErik Johnston2016-04-151-5/+9
| |/ /
* | | explicitly pass in the charset from Content-Type to lxml to fix cyrillic woes...Matthew Hodgson2016-04-151-6/+18
* | | fix cyrillic URL previews by hardcoding all page decoding to UTF-8 for now, r...Matthew Hodgson2016-04-151-16/+8
|/ /
* | Merge pull request #731 from matrix-org/erikj/timed_otuErik Johnston2016-04-151-1/+2
|\ \
| * | Use SynapseError 504 for Timeout errorsErik Johnston2016-04-151-1/+2
|/ /
* | Fix check_password rather than inverting the meaning of _check_local_password...Mark Haines2016-04-141-9/+12
* | Merge pull request #729 from matrix-org/dbkr/fix_login_nonexistent_userDavid Baker2016-04-141-1/+1
|\ \
| * | Fix login to error for nonexistent usersDavid Baker2016-04-141-1/+1
* | | fix urlparse import thinko breaking tiny URLsMatthew Hodgson2016-04-141-5/+5
* | | Merge pull request #727 from matrix-org/kegan/fix-asapi-regKegsay2016-04-141-0/+5
|\ \ \
| * | | Make v2_alpha reg follow the AS API specificationKegan Dougal2016-04-141-0/+5
|/ / /
* | | comment out 2c838f6459db35ad9812a83184d85a06ca5d940a due to risk of https://e...Matthew Hodgson2016-04-141-16/+16
* | | Merge pull request #726 from matrix-org/erikj/push_metricErik Johnston2016-04-141-11/+15
|\ \ \ | |/ / |/| |
| * | Measure push action generatorErik Johnston2016-04-141-11/+15
|/ /
* | Merge pull request #725 from matrix-org/dbkr/push_only_joinedErik Johnston2016-04-141-1/+13
|\ \
| * | Don't push for everyone who ever sent an RR to the roomDavid Baker2016-04-141-1/+13
* | | Add missing yieldErik Johnston2016-04-141-1/+1
* | | Rename log contextErik Johnston2016-04-141-1/+1
* | | Merge pull request #724 from matrix-org/erikj/push_measureErik Johnston2016-04-143-25/+50
|\ \ \
| * | | Make send_badge privateErik Johnston2016-04-141-2/+2
| * | | Add desc argErik Johnston2016-04-141-1/+5
| * | | Add necessary logging contextsErik Johnston2016-04-141-24/+25
| * | | Add indexErik Johnston2016-04-141-0/+18
| * | | Add extra MeasureErik Johnston2016-04-141-14/+16
|/ / /
* | | Fix query for get_unread_push_actions_for_user_in_rangeErik Johnston2016-04-141-1/+2
* | | Merge pull request #721 from matrix-org/erikj/spiderErik Johnston2016-04-144-38/+41
|\ \ \ | |/ / |/| |
| * | Give install requirementsErik Johnston2016-04-131-1/+7
| * | Add back in helpful description for missing url_preview_ip_range_blacklistErik Johnston2016-04-131-1/+5
| * | Sanitize the optional dependencies for spider APIErik Johnston2016-04-134-38/+31
* | | Merge pull request #722 from matrix-org/dbkr/only_unread_event_actionsDavid Baker2016-04-131-9/+50
|\ \ \
| * | | pep8David Baker2016-04-131-1/+1
| * | | Only return unread notificationsDavid Baker2016-04-131-9/+50
* | | | Merge pull request #718 from matrix-org/erikj/public_room_listErik Johnston2016-04-131-5/+8
|\ \ \ \
| * | | | Don't return empty public roomsErik Johnston2016-04-121-5/+8
| | |/ / | |/| |
* | | | Merge pull request #720 from matrix-org/erikj/auth_checErik Johnston2016-04-133-18/+35
|\ \ \ \ | |_|/ / |/| | |
| * | | Measure Auth.checkErik Johnston2016-04-131-47/+50
| * | | Don't auto log failed auth checksErik Johnston2016-04-133-62/+76
| |/ /
* / / Unused member variableDavid Baker2016-04-121-1/+0
|/ /
* | Update replication.rstMark Haines2016-04-121-1/+1
* | Add some design documentation for replicationMark Haines2016-04-121-0/+58
* | Merge pull request #716 from matrix-org/dbkr/get_pushersDavid Baker2016-04-122-17/+71
|\ \
| * | UnneccessarywhitespaceisunnecessaryDavid Baker2016-04-121-1/+0
| * | Oops, forgot the desc.David Baker2016-04-121-1/+1