MediaWiki 1.20/wmf5

Deployment of MediaWiki 1.20wmf5 to Wikimedia sites
The latest version (labeled "1.20wmf5") of MediaWiki, the software that powers Wikipedia and its sister sites, will soon be deployed to all Wikimedia sites in stages.

Deployment will start on Monday, June 11 and continue until Wednesday, June 20 (see the roadmap).

We will continue to deploy the latest software every two weeks. This is intended to minimize disruption and possible issues, and make it easier to identify the cause of problems, since the possibly problematic code will be much more recent.

Core changes

 * f431dd5 - update MobileFrontend to master
 * c050d32 - Updating PageTriage ext to master
 * 319fa42 - debug start of jobs
 * 1562ea3 - Update MobileFrontend to trunk
 * 04d3ed9 - Update Extension Distributor to trunk
 * 804f5ad - Revert "Update ArticleFeedbackv5 to master"
 * 5d0bc71 - Update ArticleFeedbackv5 to master
 * 25914a7 - Update MobileFrontend to master
 * 4f57f25 - Update math to master
 * de5b6ce - 1.20wmf5: Update WikiEditor submodule
 * b728521 - Update VisualEditor
 * 3a60a6b - Update VisualEditor
 * 0f9d93d - Update VisualEditor
 * d2348a3 - Alias mw.action.watch.ajax to mw.page.watch.ajax
 * 8b4c09d - Followup to 2e089a4e5: rename watch to watchpage
 * 6498b22 - Move action.watch to a more suitable place and expose updateWatchLink method in mw.page.watch. Update method to toggle watch, unwatch list item id attribute. Patchset 2- Expose method with less code duplication, restore comments, cleanup whitespace. Patchset 3-5 Whitespace cleanup Patchset 6 - Trigger a watch event on the updated li Patchset 7 - Only trigger watch event if not updating state, announce opposite of icon action, to properly indicate action taken. Patchset 8 - Cleanup spacing and comments issues, change event namespace. Patchset 9 - actually add the change Change-Id: I591f9f847db391c5d1477dc2ed41de54ec266261
 * e373c5f - Update LastModified
 * 8aeecd4 - Update LastModified ext to master
 * 8688996 - EP to master again to fix fatal
 * 59fae9c - EducationProgram to HEAD
 * 4979af4 - Update ArticleFeedbackv5 to master
 * 90d4fb8 - Update ArticleFeedbackv5 to master
 * 1e9233f - Update ArticleFeedbackv5 to master
 * bbf2e01 - Updating TranslationNotifications to master on 1.20wmf5
 * e53310f - Update FlaggedRevs to master (5bd8267c02ecd8caf9f52568be9f59fc6e327038)
 * 2755f25 - Revert " remove obsoletes *.deps.php"
 * 2dfca45 - Updating LastModified ext to master
 * eb7d7df - Update MoodBar to master
 * b312e4f - Update PageTriage to master
 * d5d99b4 - EP upto trunk
 * 0ca2d2b - Adding EducationProgram
 * 82742bc - Avoid stale "latest revision" cache when loadPageData is called.
 * 2470243 - Vector to master
 * 537bb24 - Update FlaggedRevs to master
 * 5ea4c7d - Update MobileFrontend to master
 * 2d6467e - Update ZeroRatedMobileAccess extension to master
 * 8556674 - Update ArticleFeedbackv5 to master
 * a14dc79 - Fix typo in .gitreview that broke stuff
 * 22f90c9 - Updating .gitreview to point at the wmf/1.20wmf5 branch
 * 8a241ae - Applied patches to new WMF 1.20wmf5 branch
 * 868cb9b - Creating new WMF 1.20wmf5 branch
 * 26aade1 - Remove more register_globals remote includes in the tests backupPrefetchTest.php, backupTextPassTest.php, fetchTextTest.php and getSlaveServerTest.php
 * a9d92e0 - Added missing GPLv2 headers in some places.
 * b7ed027 - Added missing GPLv2 headers in some places.
 * 9358a8f - Changed two remaining calls to Language::timeanddate to Language::userTimeAndDate in includes/specials.
 * 1f5925f - mw.language: Document ability to set multiple values at once.
 * 48e8185 - jQuery UI 1.8.21
 * 7492e90 - Add a bit more slave waiting...
 * 1e69ac2 - Added missing GPLv2 headers in some places.
 * dc9c2a6 - (but 37072) - infinite loop with runJobs.php
 * 5fab788 - Fix PHP notice in 3695486 (Ie35a8b91).
 * 2524f39 - [FileBackend] Fixed writer-populater cache race condition.
 * e6fadad - Update jquery.qunit to upstream v1.7.0
 * 5ce5b0e - Userlogin: Do not add a language link if it's the currently used language
 * 5b760e4 - Added missing GPLv2 headers in some places.
 * 9d00a6a - Misc fixes in RevisionDelete.php.
 * 5923105 - Added nested-list tests for covering additional cases for Parsoid.
 * 32eaef7 - Added missing GPLv2 headers in some places.
 * 59a390c - ResourceLoaderLanguageDataModule: clean up
 * 43e88d7 - Interlanguage link title for Uzbek is Oʻzbekcha
 * 54a4a82 - Change order of login/create account
 * 590f05e - do not output numberofviews, if $wgDisableCounters = true
 * f263c6b - Use Title::newFromRow in ApiPageSet::processDbRow
 * 556b096 - revision id in export.xsd is not optional
 * 47de3d2 - Fixed infinite loop in tests with FSLockManager.
 * 90e2073 - ForeignAPIFile::getDescription should match parent
 * c29fd59 - Big oops - merged to wrong branch. Revert "Revert to arbitrarily old point before initial remote branch creation to help clean up"
 * 52aa2aa - Added missing GPLv2 headers in some places.
 * 3b073fa - Fix broken Google sitesearch in DatabaseError
 * 3fc0174 - Clean up Resources.php
 * 4c6c50f - Reverse the dependency for mediawiki.language.data
 * 3c3b564 - Add new message 'showhideselectedlogentries' for revdel of logs.
 * dac90fa - Fix wrong block being displayed due to autoblock in place.
 * cf5f055 - Added missing GPLv2 headers in some places.
 * f5790ba - Improve / add two passing link tests
 * 49a7806 - Changed a call to Title::getEscapedText which is now deprecated.
 * da0dd98 - Add passing test for padleft and padright as substr
 * 69591db - Removed hard coded parentheses in SpecialVersion.php
 * 1267e41 - MessagesFa.php: whitespace consistency
 * 3c1495e - Made default BagOStuff functions work consistently.
 * 79dcce0 - Allow undelete revision rows l10n
 * 10c37d5 - Revert "Purge Squid variant pages based on page language (not $wgContLang)" per CR comments. I merged this one too quickly.
 * 2c7bf8b - Added missing GPLv2 headers in some places.
 * ad6072f - Use new xsd schema 0.7 in Export.php
 * 1de07ac - update &lt;redirect&gt; in export.xsd to match export xml
 * 0f9b9d5 - Purge Squid variant pages based on page language (not $wgContLang)
 * 92d6102 - Inherit DumpTestCase from MediaWikiLangTestCase, since backup_PageTest expect the ContentLanguage to be English (backupTextPassTest and backup_LogTest also get the change, but don't require it)
 * d80273d - Updating extensions/README file, using Git and https:// in the URLs
 * abce6ed - Replace calls to deprecated Article::doWatch and Article::doUnwatch
 * 03b3543 - Rename $exclude_patterns to $excludePatterns and $wgDoxyGenerateMan to $doxyGenerateMan.
 * e4b2dea - Use canonical class name. Include ORMRowTest.php
 * 7218b00 - Removed hard coded parentheses in SpecialMIMEsearch.php
 * 86d740f - Removed hard coded parentheses in SpecialStatistics.php
 * e3e46ba - Removed hard coded parentheses in SpecialListfiles.php
 * d7f7a62 - Revert "Adding sanity check to Title::isRedirect."
 * 11d1680 - Allow pagination link l10n
 * 0b8b797 - document CASE (0th array element) for $magicWords
 * 2f06a99 - Fixed destructor in FSLockManager to clear all the locks.
 * 799a291 - Select all nedded fields for Title::newFromRow when fetch a revision from the database.
 * d55ccfd - Use local context to get messages and don't use implicit Message object to string conversion.
 * 411b2b1 - Removed hard coded parentheses in RevisionDelete.php
 * ee0d3d3 - Revert to arbitrarily old point before initial remote branch creation to help clean up
 * 6eac0a4 - setSquidMaxage globally if we can purge it, instead of in actions.
 * d142444 - Removed hard coded parentheses in RevisionList.php
 * c42131d - Prevent action=purge&amp;forcelinkupdate crash
 * 3695486 - Make revision row localisable.
 * bf7a4bc - clean up User::getOptions a bit
 * 00e2594 - update export-demo.xml
 * 6209ef4 - &lt;logitem&gt; is at wrong location in export.xsd
 * 07c643f - Fix bug in getXVO that produced XVO headers with stray semicolons
 * f3c8358 - Fix for Ibe3e88fa (a12ce17c): Moved WikiPage::getDeletionUpdates near WikiPage::doDeleteUpdates.
 * 4c7dc36 - The 4th Database::select parameter is the function name. The ORDER BY should be at $options. This was throwing errors in PHP 5.4 due to the array being converted to a string down at Database.php:862
 * 72bf1fb - Add BackupDumper to the tests AutoLoader and kill the register globals include vulnerability added in 8ba9856.
 * 4e20a47 - reverse text/sha1 output in export to match xsd
 * 6c39a17 - Wrong type used for &lt;ns&gt; in export.xsd
 * 3e59f15 - Set the status code to 500 on exceptions.
 * 2e506c4 - PHP &gt;= 5.4.0 started taking advantage of $limit optimization of wfDebugBacktrace, which we weren't treating right.
 * af74e25 - cleanup EditWatchlist a bit
 * f99f494 - Change of Title-&gt;exists to Title-&gt;isKnown for subpage links
 * 58f390e - missing $dbr instance in JobQueue
 * 9780085 - wrong class name: JobQueue -&gt; Job
 * 6908025 - Use local context to get messages
 * 8c65834 - Add new message 'brackets' and use it to kill some hardcoded []s.
 * 2dbea5d - Removed dead code since PHP minimum is &gt; 5.2.1.
 * 74fa463 - Change if/else to a ternary operator
 * 1ea18df - Minor changes to Ic50d01f5 Accept-Language code.
 * 669b1e1 - Unused variable $wgUser
 * 2c15039 - wfProfileOut for new return added in c6396 (c4e407c)
 * 42fcb72 - Fix user rights check to display the "revert" link on file histories.
 * 8241670 - Handle more ES exceptions when getting text.
 * aa305c0 - `mobile` sub-directories for mobile-related code
 * a6c9dcc - Adding sanity check to the LinksUpdate constructor.
 * 7d12b7b - Adding sanity check to Title::isRedirect.
 * d97b7d6 - tests covering WebRequest-&gt;getAcceptLang
 * 932774a - Fixed the API doc. for aurights (list=allusers)
 * 0ec77e2 - remove obsoletes *.deps.php
 * fb69ee4 - - prevents infinite job loop
 * 58bb669 - Added missing GPLv2 headers in some places.
 * 22b00ec - Remove hard coded parentheses in ImagePage.php
 * 64e7a6b - Use localised parentheses for Han script autonyms
 * ed5413f - All zh messages should be falling back to a variant (zh-hans currently)
 * ce62df7 - Use message 'parentheses' in prefs-changeemail.
 * af919fe - Fix error message for MySQL connection failures
 * e73515b - $wgUseSquid unused since parent commit (fa1a8d5)
 * 298c8b4 - Added base class for testing ORMRow deriving classes and added a mock implementation in order to test the abstract parent class itself
 * 894c5c1 - Tweak Accept-Language sorting method to respect RFC 3282.
 * 4a27951 - Revision::getTitle produce rev_id IS NULL query
 * 1d5e764 - Make language names lowercase first letter where usual
 * 9f6afea - [FileRepo] Made getDescription respect *_deleted fields.
 * dc16ea1 - Adding interfaces for ORM row and table classes so these can be used for type hinting in a way that does not prevent doing stuff such as the decorator pattern. Also made some minor fixes in the docs
 * 6435a6e - [FileBackend] Purge Swift process cache before container delete for sanity.
 * d30c514 - [FileBackend] Gave doQuickOperations some wrapper methods just like doOperations.
 * ec002cd - [FileBackend] Worked around Akamai CDN purge limits.
 * 15599d3 - Adds support to HTMLForm for rendering form fields wrapped in divs or just plain old (mostly) raw form fields.

AbuseFilter

 * 5ceefb0 - Put back messages that were removed for some reason in Id2e45623.

ApiSandbox

 * c611df0 - Bug 35276 - Allow permanent links to specific requests on Special:ApiSandbox

ArticleFeedbackv5

 * 9c5c32b - do away with the fallback talk page link
 * 93178bb - update bucketing version number
 * cb17161 - 100% option 6 with CTA5
 * 7e2f3a0 - update messages for CTA4
 * 1a82d30 - Make the AFTv5 lottery the inverse of the AFTv4 lottery
 * 598bf3c - Bug 37434 - "Learn more" links on actions need to link to the help materials
 * 0745431 - fix url to signup/login in CTA4
 * b802fe3 - process feedback on 11728
 * bc5613f - Bug 37616 - Article Feedback - Increase Test Sample to 10% of English Wikipedia (using article ID code)
 * b8dee02 - Bug 37630 - Feedback Form simplification
 * 5924dfe - fix problem with mood not registering for form 6 votes
 * e49ed51 - Refactored the flagging class
 * 57dd786 - Show the just-posted comment at the top of the list
 * 85249a3 - - CTA 4: Sign up or login
 * 11d75a4 - Hidden filters were missing a where clause in filter count refresh script

Babel

 * 610328f - Remove some invisible comments in message documentation.

CentralAuth

 * 9e65865 - * Add some message documentation. * Removed trailing whitespace.

ClickTracking

 * eb8c7aa - Script to demux log streams

ConfirmEdit

 * b6f8fdf - fix syntax error
 * 440cb15 - Added label for captcha field shown in forms

DonationInterface

 * e1d6cc8 - Changes that ultiamtely allow command-line utils (example: orphan slayer) to use the original donor's IP when querying minfraud.
 * 018aed7 - Adding utm_key support to DonationInterface for all trxns that use DI.
 * db61cf4 - Added a blacklist and whitelist to the IP velocity filter, and fixed various things
 * 6170bd5 - (mingle-fr-2012-426) Handle non-existent or disabled forms

EducationProgram

 * Newly deployed extension

ExtensionDistributor

 * 19b4e98 - Updates to cron.php like svn-invoker.php in https://gerrit.wikimedia.org/r/13162
 * 1b53d53 - Checkout master before pulling (otherwise git can whinge it doesn't know where to pull from...)
 * fa77c9c - Update gitignore
 * a7fbab9 - Remove subversion from error messages

FlaggedRevs

 * 5bd8267 - Fixed Article type-hint in redirect hook.
 * d2daa24 - Fixed reviewedEditsCheck use of third argument.
 * 43b8cf3 - Fixed warning for legacy autopromote param.
 * f78c3b4 - add missing message action-unreviewedpages

FundraiserLandingPage

 * 6aab3b0 - Adding support for redirects for fundraising chapter countries.

Math

 * 7eefc9f - Double escaping of html characters in Math module
 * 8a0e533 - Ignore .DS_Store

MobileFrontend

 * d3f4ca7 - Change the copy text of the footer
 * 702fd56 - Clarify 'mobile-frontend-settings-site-description'.
 * c617a64 - fix problem with left navigation in beta
 * 507940d - hide address bar as soon as script loads
 * c19a247 - fix broken settings test
 * ee3f5f9 - Bug 37769 Fix directionaly of floatright/floatleft classes on mobile.
 * f35414a - support position fixed nav bar
 * 8211130 - allow user to switch site-wide language from the MobileOptions/Language page
 * b112e27 - hide sections where toggling hasn't been loaded yet
 * 770a201 - Fix tests
 * 30172e2 - Ignore noheadings on the main page
 * e0402bb - Remove title attribute from main page divs
 * ffcb6a0 - drop unnecessary prefix
 * d0ca9a5 - write mobiletoken cookie on the current domain
 * be6bdd5 - Add logging of format=json usage for WMF.
 * 01d1e1e - Bug 36182 - Switching between desktop and mobile view should redirect to canonical URLs
 * 219d8bb - more prominent configuration message
 * 20e6ad4 - Fix fatal when requesting refsections for main page
 * af0f7cd - mobileview: option to skip mobile-specific transformations
 * 7000930 - make sections visible as soon as toggling code has been initialised
 * 47e4bf1 - add further information to feedback ( and )
 * d7c4be7 - detect Maemo browser
 * be7d8ff - remove opera mobile hacks

Narayam

 * 5344c8d - Tamil99 ksh bug
 * 8de3f6f - Qunit Fixes for Narayam
 * 130ce54 - . Avro Bangla keyboard fixes

NewUserMessage

 * 6fae9ac - Cleanup the talk page notification code

PageTriage

 * e1d247f - Making deletion wizard turn-off-able
 * 4c2da40 - Fixing test for articleinfo
 * da62079 - Better mark as reviewed message
 * a5b36a2 - clone objects
 * 872d9bc - Add var to variable declaration
 * 0419703 - Fixing common tags checked from other categories
 * 8f391c4 - Some CSS tweaking
 * 36c51bb - Add var to variable declaration in for loop
 * 68cca18 - Adding missing messages to module definition
 * 70c4dd4 - Disable NOINDEX feature temporarily
 * 370131e - Remove use of Wikipedia and change article to page.
 * 0fd292e - Fixing plural i18n message
 * 4fe200f - fix message key and trailing whitespace
 * 35db2a2 - Fixing the display of the parameter form

StringFunctionsEscaped

 * 490713a - Adding .gitreview

SyntaxHighlight_GeSHi

 * 3d3b818 - Fixed HTML5 syntax highlight typo

Translate

 * af6c5cb - Update release notes for the past few months.
 * 21865fb - Allow black listing and white listing of languages in YAML configuration
 * 2f1baa0 - Allow setting message group state for a group only for specific user right
 * f0b0cdc - Option skipgroup added to export.php to filter wildcard groups.
 * 38c5f66 - Introduce $wgTranslateDisablePreSaveTransform
 * 910965c - Cleanup messagetable.js
 * cc05f50 - Added some profiling to debug
 * d599756 - Ignore dynamic groups in Special:MessageGroupStats
 * 73df320 - Show the priority languages in Special:Translate.
 * 8365584 - Implemented and use convertWhiteSpaceToHTML in JavaScript
 * 056ed81 - Fix for catchable fatal error

TranslationNotifications

 * 20ff48f - Correct the filtering of the notifications and avoid duplicates per page.
 * 14203d2 - Added success message to signup page
 * 2c21dc8 -  Talk page message improvements
 * 972b1d2 - Changed staff to translation administrators.
 * ec056a6 - Fixing the language of the priority in the log
 * 4b73c92 - Delete unused language preferences
 * a5a1d8d - Fix Bug 37372 - Add unsubscribe information to all e-mails
 * 0ecb3a0 - Fix Bug 37371 - Update signup button text on Special:TranslatorSignup
 * 91bedb0 - Fix Bug 37369 - Add legal babble to Special:TranslatorSignup
 * 68eb5aa - Added missing global statement
 * 165baf0 - PHPUnit tests for digest email feature.

UploadWizard

 * 6538b51 - Fix sqlite compat
 * 03e340a - Get rid of globals and some cleanup
 * 94a0ba8 - Fix deprecation warnings in MW 1.19 and above.

Vector

 * 0bc4471 - Typo: isfunction-&gt;isFunction (breaks SimpleSearch in wmf5)
 * d9d2e3d - EditWarning: Does not appear when search box is used
 * 484890f - Vector: clean up js/css
 * 350dc17 - add links to h5's for accessibility

VisualEditor

 * 1ea3999 - Fixed drop-down menu to match items more carefully
 * fb38655 - When trying to turn list items into headings, unlist them
 * 62b78c9 - Adjust oldRange in the rebuildNodes call as well
 * a0d8798 - You know what, just don't render hrefs, these links aren't clickable anyway
 * 6ddfc4b - Use title for rendering internal links, and guard against undefined
 * 9f54bbf - Added support for localsettings.js and improved logging of instance status
 * 9576f8f - Escape the href attribute on links
 * 4f43ece - No need to apply selection in this transaction
 * 41f5f73 - In Firefox hitting enter fires both events - keydown and keypress. We want to ignore key press for enter.
 * f58b5b6 - Reconcile the order and completeness of textStyles in 2 different places
 * 050134d - Undo and redo keyboard shortcuts
 * 0776065 - Don't use custom handling for left and right arrow while metaKey is pressed as well.
 * e163463 - Actually block blocked users in the Parsoid API
 * ae48f15 - Fix display of edit summary message in save dialog
 * 6381709 - In case of IE use non-breaking spaces inside slugs instead of invisible separators - as in different browsers.
 * 3f8863b - If siteNotice is visible, add class and slide it up. On ve exit, SlideDown fast if hidden by ve
 * f28a239 - Create init methods which hide and restore siteNotice if present.
 * fba013b - Tear down the beforeUnload handler when redirecting after page creation
 * 5784d2b - Fix external link inspector
 * d4473da - Move visualeditor-loadwarning message to the correct module
 * 82d3040 - Fix problem in hasSlugAtOffset when a given offset is out of range of the document - so no node is returned from getNodeAtOffset
 * 8f7ce74 - Aggressive keyboard shortcut fix for all browsers and platforms
 * 847fddd - Fix for drawing selection in IE - temporary approach
 * a904bcc - Rename watch to watchpage, per https://gerrit.wikimedia.org/r/12423
 * 5aa3bbe - Fixed output of translateOffset when collapsing a range
 * f27425e - Firefox has some crazy bindings for browser features. This prevents it and properly annotates.
 * cc1afb2 - Support dt/dd transitions in the middle of the stack
 * b3bd2ff - Fix definition list parsing and round-trip single vs. multi-line dt/dd
 * e584e35 - Improve nested definition list serialization
 * ab286d6 - Empty elements only use the start handler info
 * 68d2ab7 - Add localhost interwiki prefix by default, and fix links after default change
 * 861ce8d - Fixed pressing backspace in a slug, now we just move the cursor to some nearby content
 * 07eb2df - Got rid of iteration to get the surface
 * 00c555e - Removed attach and detach methods from ve.ce.Node
 * dc646ff - Track adjustments in DocumentSynchronizer and apply them to oldRange
 * 0b9934b - Fix adjustment of newRange in TransactionProcessor
 * 74440be - Fix minor bug with space replacement in TextNode
 * ab16987 - Better support for left & right arrow keys
 * 4d7e467 - Properly hide and show inspectors.
 * 9b1e96c - Logic for moving cursor left and right programmatically
 * 772716b - Fix the exception that is thrown when document is passed as a start parameter to traverseLeafNodes method.
 * 11c3e8b - Allow initial value to be accepted in link inspector if it is the default text.
 * dd1db50 - Support protocol-relative URLs in the link inspector
 * 4df69b0 - Fixing backspace when at the beginning of the document.
 * 7eae9cd - Support for insertion in slugs.
 * 0ab3b65 - Pressing enter in the last listItem, if empty, will exit the list
 * 8bccdf9 - Added getSelectionText method to link inspector so that the default text for a link is the selected text. patchset 2 - add case for if data offset is an object, be sure it is a string prior to adding it. truncate to 255 chars. patchset 3 - actually add the patched file Change-Id: Ibddf942c2a0ba3412d93cf9730f74eb858025fad
 * 36ee496 - Added onbeforeunload handler which warns before someone leaves the page if they have unsaved changes
 * 46c7910 - Use mediawiki.org as the default source in production
 * b9acd5c - Revert "Added localhost to available sources and made it default"
 * 8556888 - Fixing handleEnter to allow splitting headlines
 * 597d8b5 - Remove old cruft in contentEditable/, hasn't been touched since Feb 9
 * 691de5f - i18n for error messages
 * 9b514b7 - Fix off-by-one bug in the ve.msg's fallback $1 replacement
 * f49ef7d - Cleaned up selection and focus code for inspectors
 * 7291485 - Move slugs logic into doSlugs since it is being used in onSplice and in cleanup methods.
 * 14054be - Keyboard shortcuts for bold and italic
 * f3b7454 - Hide each inspector in the iframe, works for now. Will need to be rewritten for multiple inspectors
 * e8702e8 - Use getClonedElement rather than manually building a node
 * 3743b75 - Modified handleEnter to insert a paragraph above/below a non-paragraph if at the edges
 * 58917f5 - When there is a selection range, pressing arrow keys should not remove the selection in Firefox.
 * 1462a6c - Add commented-out tab key support for indentation button tool
 * c5ddfb7 - Disable indentation button tool, doesn't work yet
 * f2c178f - Document how to remove attributes
 * 5ac30a2 - Apparently every object in FF has a watch method. Added better Checking for this for when mw.page.watch module is not loaded.
 * c1225ac - Fix method hasSlugAtOffset to return true when length of the element is 0
 * a62e782 - Add slugs inside empty branch nodes so cursor can be correctly placed.
 * 6fe115a - Removed trailing whitespace and other cruft
 * 93594d1 - Pressing backspace or delete at boundary of dislike nodes will cause adoption
 * 7c8ae5e - Set defaultrebase=0
 * 4b88339 - If user is anonymous, mw.page.watch is not loaded. Only call method if module is loaded.
 * e175292 - Typo fixes throughout the codebase
 * 5968991 - Broke the grouping functionality of ve.ui.ListButtonTool.list method into ve.Document.getCoveredSiblingGroups
 * bbaa17a - * Replace spaces at the beginning and at the end of text node with &amp;nbsp; * Alternate double spaces with &amp;nbsp, " " -&gt; " &amp;nbsp;"
 * 8178237 - Update list tool updateState method so that if you have nodes not contained by a list node the button is off. Button is now only toggled on if all nodes in selection have a parent list node. Patchset 2 - cleanup whitespace Change-Id: Ia9adc39c0d5c75e2e96580f0e172f5b602540ac3
 * 37600d0 - Add ve.dm.Transaction.translateOffset and translateRange
 * cf32b34 - First attempt at the definition list bug (work in progress)
 * cc47a4d - Add Hook for 'watch' event triggered on MW watch link or icon to update save dialog checkbox with correct watched state. Call mw.page.watch.updateWatchLink onSave to refresh icon with watched state. Patchset 2- updated event name Change-Id: I23ef1aad9c8ace13df1b9a6bf0bfeddb9d8bcb37
 * 5df5d84 - Rewrote listification
 * bcf93eb - Automatically bind and unbind context's window event bindings on documentNode focus and blur
 * 7a1d74f - Change state variable so updates work more than once
 * 427406a - After creating a page, refresh the page rather than going back
 * 9f5f43f - Fix residual selectNodes breakage from fc4ba3019a1a15f479d6e7cc6a3104e635a1a886
 * a22c187 - Fix ve2 paths in RL modules and tests
 * b9eb063 - Switch path from ve2 to ve help with Dmrewrite merge
 * 344fac1 - Improve preformatted text handling
 * 6054a4a - Clean up serializer newline handling a bit further
 * 2426901 - Fix definition lists with multiple dds
 * c9d3db8 - Fix a few round-tripping and list issues
 * 93b834a - Update JS and CSS references in demo to point to new location - ve instead of ve2
 * 748b34c - ve2 -&gt; ve in the tests directory too
 * 6afed5e - Move ve2/ back to ve/
 * fc4ba30 - Fix selectNodes bug: empty range at the start of a node returned []
 * b94cad4 - Fix single-line mode for nested lists
 * 9d25b97 - Switch back to line-based diff, refineDiff hides some diffs
 * babb636 - Cleanup
 * 61f4a8a - Update the code to account for the fact that sHref is now a string
 * b6ad916 - Make external links (mostly) work
 * a80dcf8 - Prevent the newline hacks from adding newlines before a link
 * 980ae78 - Prevent the converter from creating empty list items
 * 41b6ccf - Fixed ve.dm.Surface tests that broke when setSelection was deprecated
 * 268e793 - Fixed class names to match what's in the DOM now, fixes inspector positioning
 * 33dc9ab - Clean up sHref handling a bit
 * ba88697 - Remove the context menu stuff when tearing down
 * c39577a - Made context menu not open after selection ends over top of it
 * e117f09 - Wikitext escaping and quite complete source range tracking
 * 89df02c - remove on transact proxy as only listening to change
 * 44d50c9 - Added i18n messages to mw.msg fallback
 * 39dc10d - Fixed drop-down styling to avoid wrapping
 * dc6ab4f - Introduced ve.msg, an alias for mw.msg if it's available
 * ecabf9d - Fixed the history buttons to be locked out when disabled
 * 9f3a8e7 - Rewrite updateState for listButtonTool
 * cc17c81 - Convert content branches to paragraphs before wrapping them in a list
 * 70c8a4f - Allow retry after load failure
 * 9dd09e6 - Improved error handling and locked the save dialog save button while saving
 * 4192d17 - Actually fix the error in the previous commit
 * 56a98e0 - Use jQuery for lastChild as well, for consistency and to prevent errors
 * f2a0701 - Set sHref on links on the way out
 * f08c0ca - Don't add newlines to text nodes inside lists
 * 6bc9b91 - Add link inspector page title message
 * d01911e - Revert "Fixed newline stripping in rtve mode."
 * a62e011 - Reduced selecting on the documentNode
 * fed9915 - Reset the save dialog between uses
 * bb7d7c0 - Fixed newline stripping in rtve mode.
 * d3cb2cc - write update and unlist method for list button tool
 * 97a1edf - Crusade against hardcoded English, i18n for everything
 * 6a48f2b - Fix inconsistent parameter lists for loadError and saveError events
 * c15b9d0 - Fix typos in license text
 * 5db6504 - Fix method docs for change, you can't actually pass multiple transactions
 * 3ac2c8e - Improve handling for enter key - and support typing "on the selection" by removing selection first.
 * 4cef635 - Replace every second space with &amp;nbsp; and do the same for the first space and last space.
 * ca4f19c - Fixed remaining uses of transact to change
 * d6dd113 - Adjusted fades and cleaned up URI objects
 * 26dee2c - Switched to using "pageName" instead of "title" since page names include the namespace prefix, so it's more correct
 * ea81d21 - Work around broken .clone in mw.Uri
 * 563db3c - Make the API module handle missing pages and page creations
 * 675bd28 - Make the converter not return an empty document
 * 0e95b20 - If the page doesn't exist, create a "Create" tab, not an "Edit" tab
 * f9f9328 - Remove userCan hook that had no effect
 * 44d297f - Fixed post-save behavior
 * 4ffc6ff - Was checking the wrong thing for undefined
 * cf1c033 - Added section edit link functionality from diff pages
 * f97ef02 - Early version of support for typing in "slug" (turning it into paragraph)
 * 6276938 - Fix problem with turning elements of one type into elements of another type.
 * 9e2a47d - Switch diff algo back to diffWords by default
 * 6d5e524 - Cleanup in ve.ce.Surface - no significant changes
 * 52aaabd - Fix ListButtonTool to use method "change" instead of old "transact"
 * 78028ff - Ported method debounce from underscore.js to ve.
 * f49aa14 - Redirect through the view page when coming from a diff page
 * 8137569 - Fix minor bug in ve.log
 * 70b8c92 - Converted more uses of console.log to ve.log
 * 76bca4f - Added veaction param which auto-initializes the editor
 * 5fbc803 - Improve newline handling for comments and nowiki/noinclude tags
 * 11a3d88 - Using resource loader debug scripts to unstub ve.log
 * 8b823a7 - Introduce new method in Surface model called "change" and get rid of "setSelection" and "transact". Start using new method in Surface view - which right away fixes two bugs - typing at the and of the document, and typing in newly created paragraph/heading.
 * 005721c - Major cleanup, fixes and refactoring of ve.init
 * debef56 - Made the first paragraph in a list item have no margins or padding to simulate raw text
 * 97fb2d3 - Serializer refactoring
 * ad1e494 - Fixing ve.log for IE9
 * 18541f0 - Couple minor bug fixes in serializer
 * 1d2866f - Experimental /_rtve/ round-trip test mode for web API
 * de47a68 - Emit SpaceCharacters token for HTML5 'space' chars
 * 9b5404e - First pass redoing serialization code to handle newline requirements from Parsoid HTML output as well as VE HTML output. There are still some newline related failures from parser tests that needs fixing, but this is getting close.  So committing for now so other eyes can make the bugs shallow :).
 * 2271f19 - Removed newline normalization between paragraphs.
 * 8fd9018 - Fix for href handling.
 * 18de05b - Updated newline handling around lists and nested lists.
 * 9e5ed59 - Minor code refactoring
 * 031602f - Fixed/updated newline handling for &lt;p&gt; tags
 * 7c5a0f6 - Refix &lt;pre&gt; serialization.
 * f745633 - Improved, simplified newline handling in wikitext serializer.
 * f1d03f3 - Couple minor bug fixes in serializer
 * 910f2ed - Experimental /_rtve/ round-trip test mode for web API
 * 41d8212 - Emit SpaceCharacters token for HTML5 'space' chars
 * a229f72 - First pass redoing serialization code to handle newline requirements from Parsoid HTML output as well as VE HTML output. There are still some newline related failures from parser tests that needs fixing, but this is getting close.  So committing for now so other eyes can make the bugs shallow :).
 * b74f248 - Actually fix getRange this time. Hopefully.
 * 3885eb7 - Using empty pseudo selector and blank image dataURI to battle IE's ridiculous hasLayout bug.
 * 8805ceb - Start/stop poll handling for cut and paste
 * d1eba67 - Write a better debounced onSelect method for showing the context view icon after select events are finished being fired.
 * 0be0ebf - Forgot to add dl as a sublist type
 * a458910 - Add a TODO note about preventDefault in alien nodes
 * be05c9d - Add a TODO to the image code about width&amp;height
 * aefd6a9 - Fix domWrapperElementType entries in ce that were out of sync with dm
 * dae599a - Fix the newline workarounds (for Parsoid newline handling) for headings
 * 13c44dd - Apply &lt;p&gt; tag workaround to &lt;dd&gt; and &lt;dt&gt; too
 * 37a1bf7 - Fix indentation of comment, remove commented-out debugger statements
 * 6b8d8d2 - Clear state of contextview when there is no selection length. Make context update method work on single call
 * b31a25c - Fix context icon update method
 * 6b2fb7b - More dirty hacks to deal with Parsoid's behavior re newlines in &lt;p&gt;s
 * 7f97520 - Don't produce an invalid range
 * ef0c551 - When deleting, collapse the selection before issuing a transaction
 * c0b3de3 - Don't add empty annotation objects when inserting text
 * fc138f3 - Start polling in async mode after document node is focused
 * 846d027 - Rewrite listButtonTool list and unlist methods. Need to rewrite updateState method and polish unlist.
 * 9f1885b - Typo. Sorry )-:
 * 8782383 - Starting and stopping polling for Enter
 * e9d02b5 - Little bit of a cleanup to stopPolling, startPolling and clearPollData
 * 4ea6d7e - fixing timer var name
 * 0413c5b - Stop and start polling for undo and redo
 * 884e107 - Fix typo rawr
 * 3f92f39 - Removed newline normalization between paragraphs.
 * 50999cb - Attach handlers to mousedown, mouseup and keydown events on document node focus and disattach on document node blur.
 * 6d6914c - Fix missing adjustment in TransactionProcessor
 * 54f12d1 - Fix for href handling.
 * 45bf357 - Restored animated toolbar positioning
 * 2393ce4 - Fix broken getRange function, wasn't skipping the opening element
 * bd69fdd - Don't blow away attributes coming from toDataElement
 * c0fc9e9 - Updated newline handling around lists and nested lists.
 * 932324c - Fix clear button tool. Getting / clearing all annotations
 * 7ab079b - Add ve.log, ve.debug and change rendering animation debug effect used in TextNode.
 * 260d3c0 - Fix bug with losing selection direction.
 * 6564392 - Added support for clicking section edit links
 * 1e45a06 - Debounced contextView icon on selection in surfaceView. Squashed old list button methods, list & unlist.
 * 8978e40 - Minor code refactoring
 * d7e83c4 - Fixed/updated newline handling for &lt;p&gt; tags
 * bb5c827 - Handle aliens correctly in the converter
 * 86d8916 - Most of backspace and delete support, methods for starting and stopping polling.
 * 13e03ec - Refix &lt;pre&gt; serialization.
 * 9d487c1 - Special handling in pollChanges loop for case when node is null.
 * 3667c2c - Block triple click (select node) - temporary - as long as we don't have robust support for it.
 * 51227f2 - Improved, simplified newline handling in wikitext serializer.
 * c3cf561 - Use ve.ce.getDomText and ve.ce.getDomHash instead of ve.ce.Surface.getDOMText and ve.ce.Surface.getDOMHash.
 * ba680af - Fix bugs in getDomText method.
 * f4a4952 - OMG. We have typing, autocorrect and spellcheck working. (Still no IME and still may break cut/paste)
 * e6751e3 - Set data.title based on sHref so LinkInspector can use it
 * f83cdc4 - Hack around Parsoid bug in link handling
 * 9c93904 - Fix return value of ve.ui.LinkInspector.getSelectedLinkAnnotations
 * d0adb11 - Needs copyArray instead of copyObject, d'oh
 * 75ac5b0 - Improved appearance of activating and deactivating editor
 * 31a2a02 - Removed duplicate update event on length change and cleaned up some methods that were being called by symbolic operation name
 * e266905 - Moved history tracking into a startable/stoppable service
 * efa93c2 - Copy objects in newFromWrap to prevent reference pollution
 * 81473a8 - Make method ve.dm.Document.addAnnotationsToData accept collection of annotations as a param - instead of an array
 * 7dd65cd - Add newFromWrap, ported 98% verbatim from the old code
 * 0bc1693 - Fix partial undo of ab0c37 in 2ea103
 * 429225f - Whitespace fixes (jshint was tweaking out)
 * 56c0f59 - Fixed use of "pre", "preformatted" is the correct symbolic name
 * 84ce839 - Removed context menus on tear down of surface
 * 1628038 - Using wikiLink instead of internal to match actual documents
 * 95c601c - Make save dialog initially hidden
 * 169b7e7 - Cleaned up toolbar annotation updates
 * 26e0f6e - Real cross browser fix for invisible iframe bug.
 * 51958e4 - Removed unused parser pipeline construction
 * bf0f5d1 - Minor code cleanup
 * 23ec054 - Fixed round-tripping of interwiki links.
 * 445780b - Revert default tokenization result from null to ''
 * cfe94ee - Minor code refactoring
 * 6bf7947 - Add suggested development configuration in comments
 * a991cef - Fix inspector close bug where iframe was blocking editor below Fix Inspector bug which prevented applying a link annotation to data already containing annotations.
 * b843762 - rewrite comment
 * 75e9b2c - On transact, redraw selection
 * f882a65 - Fix serialization of &lt;pre&gt; tags
 * bf5b682 - Fix clearButtonTool
 * bf08347 - Fix js error
 * 2ea1030 - Rewrite document annotation getters to return collection objects vs arrays
 * da3e366 - Updating tools on transactions. Working towards finishing clear button
 * 722c304 - Got rid of wrapping whitespace (like \n and \t) in a span that made text white
 * 9b9dcca - Made save page button only work when an edit is made
 * cd3cf1d - Changed use of getSurfaceModel to getModel and surfaceModel to model
 * 05ee4e7 - Binding to 'before paste' for IE only
 * 1e4c522 - Enter key handling
 * 70234d2 - Fixed missing arg, kept stuff from saving
 * 4cc88b9 - Fixed some minor-ish UI stuff
 * f0ef6bd - Fixed drop-down arrow placement
 * 92d715d - Fix some comment typos
 * 44af6bd - Factor out redundant getNodeFromOffset call
 * ab0c37d - Rip out the offset map
 * 77e923e - Update tests for Parsoid workarounds
 * 407ea15 - Make the LinkAnnotation code a bit more robust
 * 48abc8e - Terrible hacks to work around Parsoid bugs
 * dcf1044 - Clear button tool now properly clearning selection annotations. Create method to return matched annotations button tool pattern.
 * 810ba6d - Modify FormatDropDownTool to use new transaction builder newFromContentBranchConversion
 * 59f9bdf - Made use of ve.proxy instead of surface having it's own implementation
 * 7d7fd74 - Renamed EditPageTarget to ViewPageTarget (since it's targeting view pages, not edit pages, duh...)
 * c8c4ed8 - Added ve.dm.Transaction.newFromContentBranchConversion
 * 2c393d4 - Added normalization to ranges given to selectNodes
 * 9891adf - Added getRange and getOuterRange to ve.dm.Node
 * 727c211 - Refactored serializeToken method and added special-case handling of paragraphs in lists.
 * a609afe - Port static method addAnnotationsToData from ve to ve2
 * 542131e - Properly clearing link annotations now
 * b26649a - Guard against passing undefined into ve.compareObjects, was causing errors
 * 82c409c - Changed loading graphic, added focus on load
 * 29c76e6 - Fix link annotation from inspector by changing link type to wikiLink
 * a0d5cbd - Animated the margin of the first heading and fixed animation of save dialog
 * 17fff0d - Fixed dependency on mw, now demo works again
 * 21ff108 - Bring link converter in line with Parsoid
 * c40dd95 - Remove stray debugger statement
 * bf643de - Fix escaping in API module
 * ea73773 - Added node_modules and node error log file to git ignore
 * ce8efd6 - Refactored veCore class into ve.init and ve.init.EditPageTarget
 * 38e6441 - Move inspectors into iframe loaded in contextView. TODO- needs cleanup
 * 2e1b304 - Cleaned up styles for editor in both demo and sandbox/integration
 * 8019426 - Undo and Redo
 * 60fc5a3 - Using MediaWiki facility for HTTP post
 * a2231cb - jQuery expects a string for the data, not a DOM element
 * 89b2260 - Revert "Support for basic text insertion - typing"
 * 21056ff - Support for basic text insertion - typing
 * 0e0d9fb - Added localhost to available sources and made it default
 * 925695d - Switched to using MediaWiki facility for getting data over HTTP
 * 3cef118 - Added real round-tripping, instead of canned HTML
 * d610450 - Fixed link conversions to match parser
 * 20d1c29 - Fixed multi-auto-wrapping issue and added tests to track regressions
 * 402d6dc - Added rendering for link/unknown
 * 773be35 - Fixed element summaries to not rely on HTML serialization, which can render attributes in any order and tends to differ between browsers
 * 2efc12f - Adding node_modules and npm-debug.log to ignore list
 * 5969f55 - Delete HTMLConverter and update demo&amp;sandbox
 * 61ba00a - Add a tableSection to the example data and update offsets and stuff in almost all tests
 * 2e0d4ef - Make tableCell represent both &lt;td&gt; and &lt;th&gt;
 * c614d33 - Add ve.dm.TableSectionNode and ve.ce.TableSectionNode
 * 5e6713e - Throw an exception when attempting to annotate a closing element
 * 5aa6f4b - Fix bug in fixupInsertion
 * 911ee32 - Test getDomFromData using getDataFromDom's tests
 * acdd567 - Finish implementing ve.dm.Converter and document it
 * cc0c490 - Fix typo in LinkAnnotation
 * f2b3df8 - Cleaned up some useless/unused functions
 * e1b8f94 - Fix bug in getAnnotationsFromRange where if the range length was 0 it would return no annotations.
 * 244551f - Updating model selection after cut and paste
 * 453bec4 - Fixed alienInline and alienBlock conversion (was missing closings)
 * fa9fe8b - Added support for alienInline nodes
 * 9fe6658 - Put getSelectionRect method back in surface view.
 * 4b940c3 - Init rangy in case of Toshiba Annotate button redraws selection after annotation Added contextView hooks to select listener in toolbar.
 * 1f86885 - Fixing copy and paste
 * 9cab267 - Fix some JS errors in the ve.ui code
 * 3c1de3d - Add ve.dm.Document.getBalancedData
 * feac2f6 - Factor out element cloning into a getClonedElement function
 * 5c41fa2 - Define min-height for P and HX tags - needed when those tags are empty.
 * 1846138 - Roan officially does not owe the team lunch (at this precise moment)
 * 22ebab2 - Simplify example document that we are currently using in our sandbox (now it does not include Alien nodes and Images - because we are not going to support them for June release).
 * 88ae9b0 - Simplified demo HTML (no images or aliens)
 * 02f913a - Added accidently removed registrations for events handling.
 * 97001e1 - Improvements to selection mechanism.
 * 95297a2 - Delete from ce.BranchNode code that is not needed anymore.
 * c8ec9fc - Added a test for removing all the content of a paragraph in the middle of a document
 * 3f61dc9 - Link talk page separately
 * 3549a16 - Add a 'report issue' link below round-trip results
 * bec7fb2 - Mention citations as not round-tripping
 * 76cca06 - Add hint on where to support issues in web service entry page
 * 1ca586e - Improve interwiki config a bit
 * 2fa5baa - Make it easier to configure the default wiki, and add support for mediawiki.org
 * b491022 - Remove a few entries we now care about from the whitelist
 * b665a25 - Fixed bugs handing/transforming quotes
 * 51aa317 - Undo and Redo support
 * d8359da - Change calls to getElementType (which doesn't exist) to getType
 * 72ee6ba - Comment out robs selection test stuff
 * 232f2c5 - Fix linkInspector tool
 * b62beed - Added implementation for ve.dm.Converter.getDataFromDom
 * 8db70ed - Annotation buttons now working Created new document method to determine if a specific annotation object is inside an annotation array.
 * 77d5cae - Consecutive spaces
 * 3383dc9 - Delete old ApiQueryParseTree module, unused
 * 41684c7 - Quick hack to make Parsoid URL configurable
 * f34b41f - Add a test case for a complex removal
 * 5e47bdc - Maintain a transaction-wide offset adjustment
 * 02b19f3 - Add zero-length text nodes to empty content nodes
 * ae3d31d - Shallow-copy annotation objects in HTMLConverter
 * e524152 - Fix typo in variable name
 * 21ee17a - Fix up some tools to not break on selection, added some test selection stuff to sandbox
 * 1429a3d - Rewrite newFromRemoval using 'covered' mode
 * 1566306 - Add 'covered' mode in selectNodes
 * 61229a5 - Make selectNodes tests actually compare nodeOuterRange
 * 1498ac7 - Fix broken input data in selectNodes tests
 * 244349a - Fix stupid typo in selectNodes
 * d39fb9d - Make pushReplace([], []) do nothing
 * 2439c01 - Created secondary method for getMatchingAnnotations new static method looks for annotation in annotation object. ve2 Cleanup on annotate method and surface model. Partially revive UI tools by exchaning old method usage for ve2 methods.
 * 413df0c - Strip \r from form input- we normalize everything to Unix
 * 5d20f45 - Added getHtmlElementFromDataElement and getDataElementFromHtmlElement
 * 47204c4 - Use diffChars instead of diffWords, as the former misses some changes
 * f8221b1 - Used a more robust heuristic for merging consecutive diffs
 * 2bc066b - Up the diff merge size heuristic a bit and always use the same algorithm
 * bc1a77a - Make modified newlines visible by replacing empty lines with a space
 * 1876d78 - Swap ins/del in the diff
 * 350e700 - Add core-upgrade
 * a146fcb - Improve the handling of newlines for round-tripping
 * 59fc634 - Update patched html5 library to version 0.3.8
 * bff08b7 - Improvement to the refineDiffs function to improve diff quality.
 * b095db4 - Simpler implementation of flatten.
 * dc3168c - A few tweaks to link round-tripping
 * 0f9d939 - Use word diff if—color is enabled
 * d378182 - Reapply typo fixes from c0e1991, were undone in b0f6f64
 * 5287285 - Fix bug in selectNodes's logic for traversing back up the tree
 * d16032a - Track html syntax in block_tag production
 * c1d8270 - Fix wgScriptPath in round-trip mode without interwiki
 * 3346aed - Support interwiki links, and some cleanup
 * cc96ff4 - Very basic interwiki support
 * b0f6f64 - Made pushRetain do nothing if you give it 0 and throw an exception if you give it a negative length
 * 9111e34 - Added nodeOuterRange to selectNodes
 * a0ea700 - Added tests for transactions that deal with removing alien nodes
 * c0e1991 - Typo fixes and missing 'var' in newFromRemoval
 * db79300 - fixupInsertion variable documentation and cleanup
 * f7445b3 - Retain attributes when reopening closed nodes
 * b167453 - Add ve.dm.Node.getAttributes to get a reference to the attributes object
 * e67b2fd - Add some more tests for newFromInsertion
 * 109624e - fixupInsertion fixes, wrapping content works now
 * fd5eb80 - Document annotate method in surface model. Comment cleanup
 * f958297 - Create tests for surface model annotate method. Fix up surface model tests
 * c338304 - Rewrite annotate as more low level method in Surface model. TODO: follow up with annotate tests
 * 92f753a - Pre and link target improvements
 * ee2ddbd - Fix list handler issues
 * f821eac - Optionally round-trip sHref in data-mw
 * e080920 - Don't set the data-mw attribute if the object is actually empty.
 * 2774e5a - Actually replace all underscores in wikilink target
 * 3f2c72f - Fix padleft / padright (mis)use as substr
 * 0eabd2c - Add round-trip form and split out rt diffing
 * 99c98d6 - Diff refinement fixes
 * d2602c4 - Switch back to word-based diff
 * 4533c27 - Fix a crasher in the serializer
 * d01581c - Create a 'refinement diff' algorithm
 * b11b8d8 - Revert to line diff, word diff explodes on some pages
 * b5e067e - Some more web service tweaks
 * 7c18891 - Snazzy html word diff for roundtrip view
 * 4cf7449 - Update web service start page documentation
 * 31522d3 - Add ApiRequest
 * 7c7ddd2 - Retrieve content from the main namespace instead of templates
 * 63abd57 - Improve newline-before-paragraph round-tripping support
 * d3975a8 - Very basic round-trip test mode for the API
 * 74135b2 - Some more switch fixes
 * 8f216af - Handle link tails properly.
 * 73c5dd8 - Added ve.dm.Node.getOffset
 * cf63a2d - Support for pasting into a range
 * 3f3b525 - Add MakeGlobalVariablesScript hook to add new global, vePageWatched. This allows us to check the watchlist checkbox on save dialog. Added watchlist toggling to ve save api. Added some i18n messages to core integration.
 * 2bd615c - Cut, copy, and paste now working with images
 * 413fc5e - Fixed bug serializing wikilinks with implicit link text.
 * 386faa5 - Fixed ve.dm.Transaction.newFromRemoval so it supports trimming off extra openings and closings
 * 16219dd - Fix up #switch a bit
 * ece2b0f - Tokenizer backtracking cache bug fix and memory savings
 * e7f03c6 - More cleanup, removed ObjectAnnotation (they are inline elements now)
 * ba8d1b4 - Cleanup
 * 294abb0 - Simplified converters data structures
 * 7d96b84 - Created save dialog in core integration Stash content element styles and remove transitions Working towards a cleaner saving experience
 * 042ffb4 - Added foundation for new converter
 * f6864b0 - Changed use of "factory" to "nodeFactory" to make way for other kinds of factories
 * 32bddaf - Added ve.dm.Transaction.newFromRemoval
 * 1c80e2d - First pass implementing a general tag minimization routine
 * 2f18605 - Fix buggy replace behavior when inserting content that contains nodes
 * f6ca379 - Add ve.dm.Document.isContentData
 * e92db86 - Fix bug in ve.dm.Document constructor for input ending with text
 * d0db81c - Load DocumentSynchronizer as well
 * 4ea6b8e - Revert part of last template syntax tweak
 * 3112448 - Make canUserEditPage static
 * 0654949 - Add special handling in getOffset method for a case when cursor is inside slug - required in IE
 * b59d49a - Restrict edit access to VisualEditor namespace to sysops To allow non sysops to save via VE, refactored ve save api to use doEdit which bypasses namespace protection. Add edit link in view nav for non sysop so that they may edit Add View source link in dropdown for non sysops Add Edit source link in dropdown for sysops Cleaned up some of the integration core code UI tweaks
 * 43a6abe - Introduce two different types of slugs - inline and block - this is in order to fix bug in IE with placing cursor inside slug by clicking next to it
 * f7fb4be - Refactoring and performance optmization to method getNodeAndOffset - previously named getDOMNodeAndOffset
 * 46d26b9 - Added getNodeFromOffset to ce
 * 8328fc8 - Removed aliases for node type constants, on the client we have them already in Node
 * 5f9ea54 - Refactoring and performance optimizations to getOffset method in Surface view.
 * e216a6f - Fixed scroll jumping when pasting
 * 11b1bd8 - Using string constants for node types
 * c5d7e01 - Another tokenizer robustness improvement
 * a133768 - Don't eat '}}' in generic attributes and similar productions
 * e53bc93 - Check out old results before running tests
 * 36084c5 - Preserve original newlines in HTML and serialization
 * 8174c9d - First attempt implementing rewriting rules on the DOM
 * 8a52b41 - Working (but dirty) implementation of getOffset, getDOMNodeAndOffset and handlers for keydown/mousedown - to be refactored very soon
 * e923096 - Set contenteditable=false for Alien wrappers (both inline and block)
 * 7d9e2d6 - Restrict ext.visualEditor.core to the VisualEditor namespace in the hook
 * 8db39d0 - Support for plain text paste
 * 0227de8 - Remove edit token Ajax api request, get edit token from wgUser on save
 * 64b9b33 - IE and its silly events
 * 83e7edd - Support for paste
 * 4ca26f1 - Switch tabs from read to edit when loading editor. On cleanup, switch tabs back
 * 237c0fd - Created VE parsoid API save action. Save action 1) posts html to parsoid service in exchange for wikitext 2) saves wikitext 3) returns parsed content. On save, VE is hidden and page content is replaced. Demoing save in toolbar, followup commit will redesign save options
 * 1e5e14c - Add method hasSlugAtOffset to ve.ce.BranchNode
 * 14862a1 - Fixed bug in isStructuralOffset which didn't consider neighboring a non-content leaf to be a structural offset
 * 61413c4 - Create base integration core module Works on VisualEditor Namespace Created VE api wrapper for parsoid service to roundtrip pages
 * 80ed03f - Support for copying
 * 8f4f076 - Added handles for mouse events (down, up, move). Implemented method SurfaceView.getOffset and applied significant fixes to SurfaceView.getDOMNodeAndOffset.
 * afe18a6 - Fix methods getNearestStructuralOffset and getNearestContentOffset for case of passing offsets that are already structural or content
 * b56b6ba - Just for purpose of testing add some hardcoded border and cellspacing to all tables
 * 6017050 - Add class ve-ce-imageNode to all image nodes, also comment out mousedown event handler
 * d9bd47d - Make example demo document even more complicated
 * ea9191b - Copied CSS styles from ve to ve2
 * 0a3b5df - Image nodes are not draggable
 * 1cc8aca - Using invisible space character in slugs
 * f6eef19 - Added copying of .data( 'node' ) from old wrappers to new wrappers on wrapper updates
 * c8ccdb9 - Moved ve.ve.BranchNode.canNodeHaveSlug to ve.ce.Node.prototype.canHaveSlug
 * ebfafac - Added missing documentation to methods in ve.ce.BranchNode
 * 933ff67 - Focus can now be set in slugs using showCursor or showSelection.
 * 3ce7053 - Replaced static array with real logic inside of ve.ce.BranchNode.canNodeHaveSlug
 * e150ba2 - Moved "is slug gable" functionality to a static method of ve.ce.BranchNode
 * c9dddf6 - Made getRelativeOffset return -1 if no valid offset is found in document
 * 8d3044b - Added more test cases for the unrestricted option of getRelativeStructuralOffset and getNearestStructuralOffset
 * e7cd9e5 - Add missing JS files references to demo
 * 1ddaec8 - Added getRelativeOffset and several wrappers around it
 * e86c053 - Define better example/testing article in Sandbox
 * fdbf1ac - Define better example/testing article in Sandbox
 * 541d786 - Added optional "unrestricted" argument to isStructuralOffset
 * fe1482e - Added method proxy to ve.ce.Surface
 * bea881d - Refactor mechanism of adding slugs in before and after particular nodes in branch
 * cce3210 - Implement newFromInsertion
 * 3be3f55 - Rough first stab at ve.dm.fixupInsertion
 * 9a1ec62 - Remove pushInsert and pushRemove
 * 32b9ccd - Moving alien node styling to CSS file
 * 9af03a2 - Updated demo and fixed HTML converter
 * 86591e5 - Restructured static node rules
 * 0b9411c - Cleanup Sanxbox.js
 * 95e06e9 - Prepare for MediaWiki integration Create context instance in surface. Move over getSelectionRect into ce.surface Cleanup ve.surface contstructor class Move linmod/html test objects to sandbox.js
 * 8286508 - Include jquery.json.js in both demos to fix error
 * 7bf15b4 - Copy ui modules to ve2 Switch sandbox demo to use new ui modules Update VisualEditor.php to use ve2 modules SpecialPageSandbox working
 * 0a32898 - Added annotation and attribute tests for transaction constructors
 * c38a552 - Fixed case on mapping to $.toJSON
 * 272f502 - Modify getAnnotationsFromOffset to account for annotated leaf nodes. Refactor remaining annotation methods Refactor tests to use correct annotation types
 * 6d15028 - Making showCursor work again!
 * f19c591 - remove hasChildren method as I was using it to debug something on previous commit. change traverseLeafNode test name to follow ve2 test naming scheme
 * 62959be - ported traverseLeafNodes and tests to new dm
 * 19a02f3 - Disable objectResizing and inlineTableEditing within execCommand
 * 32c2366 - Logic for adding 'slugs' before, after and between nodes in certain cases
 * 4dd9a14 - Added newFromAttributeChange and newFromAnnotation
 * 445006d - Made tests a bit stricter before iterating over annotations
 * 43d62ee - Refactored getMatchingAnnotations and it's tests, and added offsetContainsMatchingAnnotations
 * b78875e - oops
 * e3cfaca - New demo for cursor placement
 * a937ad2 - Fix getAnnotatedRange to return propper contained range. Fixed tests
 * 3eb31da - Whitespace fixes and removed some console.log statements
 * 24c35b8 - Whitespace fixes
 * 08765fe - Merged ve.dm.DocumentFragment and ve.dm.Document
 * e8f1520 - Added skeletons for transaction builders
 * c2a8962 - Rewrite getMatchingAnnotations to return a hashmap of matching anntations in the new DM. Change method name getAnnotationRange from offset to getAnnotatedRangeFromOffset.  Write tests
 * 58aa0e8 - Whitespace fixes and cleanup
 * bcd7431 - Remove getScope, no longer used
 * 80db7a5 - Rethink of structural replacement code
 * 5e4f029 - Add ve.Range.coveringRange
 * 6f4b682 - Rename removeLevel to insertLevel
 * fbaea88 - Rewrite data model methods needed for ui tools getAnnotationRangeFromOffset and offsetContainsAnnotation which deprecated getAnnotationBoundaries, and getIndexOfAnnotation write unit tests for proof
 * 189e3ed - Another test for HTMLConverter
 * 0c69370 - Added merge test for ve.dm.TransactionProcessor
 * 5d06b26 - Compositionstart added into the mix to catch IME and Alt+0135 style key combinations
 * 9379c5e - Switching from parentElement to parentNode for IE support
 * 2c471c4 - New playground demo for testing hijackability of keypresses when there is a selection
 * 6d0a24b - Greatly simplified selection and node tree comparison tests
 * d6cf4ff - Add comment about bug that makes tests accidentally pass
 * cdda5e7 - Improve verbosity of selectNodes test descriptions
 * 0f0c3c9 - Improvements to nodeTreeEqual:
 * 3b1d809 - Added a replace test that splits elements
 * 7e1aa23 - Support splitting nodes in replace tree sync
 * 59f74de - Fix bug causing replacement tree sync to adjust the wrong node
 * 2008858 - Fix bug in selectNodes: input (0,0) returned []
 * 82cbb4a - New playground test for inspectors in iframes
 * 30a671f - Rename some tests
 * e28a1a1 - Fixes typo, need to check if object is empty, not if it's an object
 * 6e8bdde - Add tests for getAnnotationsFromRange
 * 14a4c7b - Fixed annotation processing to support leaf nodes and detect more errors
 * 9461358 - Removed more trailing whitespace in multi-line comment blocks
 * 68414e4 - give array bulider loop better names
 * d2fc95f - Optimize getAnnotationsFrom dramatically by less object manipulation Now returning an empty array when a non annotated character is found in the range. No longer looping through each annotation, simply comparing to previous characters annotations and trimming differences. Write additional test.
 * 5b398f9 - Fix botched rename: opReplacement -&gt; opInsert
 * e0de881 - Removed trailing whitespace in multi-line comment blocks
 * 5708c0e - Added transparent 1px image to make unit tests not show HTTP errors
 * 03be3c0 - Removed debugger statement from 5b9a2645a6180223cc88d24df6076f74244b1e09
 * aa9148c - Refactored ve.dm.TransactionProcessor tests to use data-providers
 * 17b58db - Optimize getAnnotationsFromOffset with ve.getObjectValues
 * f40e4f2 - Added ve.getObjectValues
 * 1363e7f - Added ve.getObjectKeys which falls back to Object.keys if present
 * b8302c7 - Rewrite getAnnotationsFromOffset to work with new Linear Model. Properly init variables in getAnnotationsFromRange Polish up tests.
 * e05863b - use proper assertion in getAnnotationsFromOffset
 * 6321821 - Rewrote tests for ve.dm.Transaction to use a data provider
 * 7d8e06c - Fix up wrapping on getAnnotationsFromRange test
 * bd9a0b6 - Rewrite DocumentFragment getAnnotationsFromRange method Write unit tests for getAnnotationsFromRange
 * 5b9a264 - Port getScope from the old VE code and add tests for it
 * 43c2393 - Remove outdated comment
 * c79b911 - Adding a little test that reports range info with alien nodes
 * db0e050 - Renamed uses of "replacement" to "insert"
 * 13f2668 - Removing data from annotations when empty, more tests for HTMLConverter
 * 9cdfb84 - Added tests to getRelativeContentOffset
 * ae7b0c8 - Whitespace changes
 * 11a6ff6 - Remove broken test, need to refactor
 * ced54d0 - Write better test for DocumentFragment getAnnotationsFromOffset Fix errors in example test data Remove whitespace
 * ca17ea0 - Port structural replace code from the old VE code
 * 3cc22b0 - Use index and indexFromNode (from selectNodes) in DocumentSynchronizer
 * 6652f75 - Add indexInNode to selectNodes output
 * 379bc8d - selectNodes fixes:
 * 7eeb6c7 - Throw an exception when DocumentFragment gets unbalanced input
 * 1475100 - Ported isContentOffset, isStructuralOffset, isElementData, containsElementData and getRelativeContentOffset
 * d1dbb32 - Fixing updateDomWrapper test
 * 8834145 - Fix nodeSelectionEqual so it doesn't explode when a and b have unequal lengths
 * 9b64028 - Fix the selectNodes bug that Inez reported
 * f79e56b - Document the stack properties used in selectNodes
 * ec449d1 - Fix startOffset computation in selectNodes
 * 38a9b8b - Fix typo in selectNodes
 * 07b4534 - Basic test for HTMLConverter
 * 13b79d3 - Add 'index' and 'nodeRange' to selectNodes output
 * e137659 - Fix spelling of 'equivalent'
 * 7168b4e - Removed duplicate node rules from tests
 * 8d07a4e - Fixed test so it doesn't break when nodes add classes in their constructors
 * d4363c0 - Don't set classes on non-wrapped elements
 * 3848e77 - Basic support for Alien node in HTMLDom -&gt; LinMod converter
 * 156e15c - Added missing reference to ve.Document.js
 * 41a7451 - Store reference to view node (ve.ce.Node) in jQuery data of it's wrapper
 * ee39e83 - Get Alien node (leaftnode) working - it reads its content from attribute 'html'
 * 1798a47 - Massive refactor of node trees, generalizing lots of previously dm only stuff
 * 3d28936 - Images and tables working with HTMLConverter
 * b447821 - Added tests for document synchronizer
 * 44b3119 - Cleanup/refactor/documentation work for ve.dm.DocumentSynchronizer
 * 2747ff0 - Added basic test for ve.dm.DocumentSychronizer
 * d417c57 - * Ported getAnnotationsFromOffset into DocumentFragment * Wrote unit test for getAnnotationsFromOffset
 * 89a2b1b - Fixed naming in test moved from ve.dm.DocumentFragment to ve.dm.Document
 * c017d74 - Removed use of expected in conjunction with ve.dm.example.*Equal methods
 * a0178fd - Cleanup and renaming
 * 17f4dc2 - Don't use data.length in selectNodes
 * 00950f3 - Add rebuild action to DocumentSynchronizer
 * 94697a3 - Emit an 'update' event in addition to an 'annotation' event
 * 09631f1 - Make TransactionProcessor actually use DocumentSynchronizer
 * 22c88f7 - Add a 'siblings' mode to selectNodes, and add tests for it
 * d061b62 - Added some documentation to ve.dm.DocumentSynchronizer constructor
 * d43ee56 - Cleanup of HTMLConverter
 * 123c64c - Added more tests for selectNodes
 * 4d9299b - Fix bugs in selectNodes, tests pass now
 * 32c65cd - Change 'leaf' to 'leaves' and document it
 * 770775e - Fix rebuildNodes tests, were messing up ve.dm.example
 * 4bae026 - Added additional test to rebuildNodes, now testing rebuilding after a change
 * 811110d - Simplified selectNode tests
 * 88a05b5 - Added another falling selectNodes test
 * e1f8fef - Changed selectNodes test to desired behavior (which fails atm)
 * f4fcf96 - Added documentation and tests for ve.dm.Document.selectNodes
 * 82ef058 - Add two more cats to demo/example article
 * ad5ee8f - First implementation of selectNodes
 * cbb8685 - Whitespace and syntax fixes
 * 93d6adb - Add an isWrapped property and make getOuterLength use it
 * 39b3755 - Line-length fixes
 * 6e7588a - Support for new annotation format
 * e34ec4b - Added canHaveChildren and canHaveGrandchildren to all nodes
 * 1d74945 - Fixes for Roan's crazy half-baked commit
 * 0433717 - Added attribute add and remove tests and cleaned some things up
 * bce5091 - Removed unused attributes in example data
 * 28eb0c8 - Adding HTML DOM -&gt; Linear Model converter
 * d11af2b - Queue and deduplicate events in DocumentSynchronizer
 * d42e738 - - Optimize surface model and write unit tests
 * bab1a96 - Fix method getDocument in dm.Surface and start using it
 * 2baeb55 - Initial stab at DocumentSynchronizer
 * dc27d8a - Refactored dom wrapper functionality in ce nodes
 * d2480ba - Removed bubbling update events in dm and ce node trees and splice events from ce branches
 * 9887dbd - Split Broke DefinitionListNode out of ListNode and DefinitionListItemNode out of ListItemNode
 * 11a3b68 - Implement basic replace processor
 * a9b26c8 - Removed recursive rendering calls in favor of 100% event driven updates
 * 458ba0b - Added tests for getModel, getParent, attach and detach on ve.ce.Node
 * 014084f - - fix demo styling for docs list
 * 0cd31fb - rename surfaceModel to model in ce.Surface
 * b05347a - removed margin-top for documentNode
 * da65ad4 - - extend surface model and surface view with event emitter - added surface view base methods - enabled toolbar in ve.Surface
 * 99e841d - Making document contenteditable
 * 23e32af - Added some styles to the demo to add spacing around stuff in the header
 * 4e8a9d7 - Added charset meta tag to demo
 * d01d27c - Get more tags/nodes working in the demo
 * f738e75 - Fixed mistakes in the linear and tree example models
 * cdcca3e - Move linearModel object into sandbox.js
 * 56dff6d - Added new node types
 * 6224c60 - Rendering works in very basic version
 * 07ca878 - Including ve.NodeFactory.js
 * 4f487bf - Updates to script includes in demo index.
 * 06ca808 - Missing keyword: new
 * 8051e77 - Create new instance of dm.Document
 * 7bcb65e - - Port surface constructor into dmrewrite. - Create document model object linear model instead of wikidom
 * 7b7ff5a - Added ve.dm.Surface, ve.ce.Surface, ve.ce.Document
 * b1b9fb5 - Added tests for getDataFromNode
 * 424e58a - - write tests for ve.dm.BranchNode setDocument
 * 71f36aa - Added tests for getOffsetFromNode
 * 619f101 - Minor fixes to getHtml method in TextNode
 * a1db153 - Minor fixes to getHtml method in TextNode
 * 09c7393 - Minot fix
 * a3b32b6 - Big refactoring to TextNode to make it work with new format of storing annotations.
 * d81b972 - Very dirty but working version of getHtml method for TextNode (with bunch of tests that are passing now).
 * 64d5697 - Removing unused code
 * 6a60c1f - Removed console.log
 * b7b2fc1 - Made render for ce leaf nodes abstract and added a test for it
 * 947c3dd - Fixed incorrect class name for method typo
 * d412c8c - Removed unused method (using factory instead)
 * 16e12de - Added ve.getHash and ported ve.Json
 * 6792762 - Added insertion and removal tests to ve.ce.BranchNode.onSplice
 * d97864a - Added removal test for ve.ce.BranchNode.onSplice
 * ff40652 - Get rid of range parameter in ve.ce.TextNode.prototype.getHtml as it is not being used anyway.
 * dd60948 - Created a test file for ve.ce.TextNode and fixed some minor issues.
 * b4313ae - Moved getOffsetFromNode to ve.dm.BranchNode
 * fd28fff - Added test for replaceDomWrapper and onSplice in ve.ce.BranchNode
 * 8bd0d38 - Added test for whitespacePattern, getDomText and getDomHash in ce
 * fee375c - Removed global variable introduction
 * 676ffa4 - Ported getDomText and getDomHtml from ve to ve2
 * 1d94af1 - Added update handlers to heading, list, list item and image ce nodes
 * 94f53dc - Made text nodes not rely on a wrapper
 * 158c9f7 - Consolidated before/after attach/detach events
 * dcd0fa3 - Fix variable name typo
 * 370070d - Lots of ce porting, got text nodes fully supported
 * d9cd139 - Add TransactionProcessor tests, and fix TP to make them pass
 * 7a0e086 - Fixed test name to match method name
 * 35af704 - Added initial ce nodes
 * de0debb - Added skeleton tests for ce nodes
 * c2d4a2d - Added basic ve.ce nodes
 * aaa3226 - Added ve.ce.NodeFactory and tests
 * a667425 - Moved canHaveChildren and canHaveGrandchildren back to ve.NodeFactory
 * 9b2098c - Added documentation to static rules on ve.dm nodes
 * 2cee2ad - Split node factory into dm specific implementation
 * b1d0ed0 - Added more canHaveChildren tests
 * 9339084 - Added getOuterLength tests for text and document nodes
 * 0d4fb6f - Got rebuildNodes tests working
 * 8ce7fd0 - Fixed length calculations and added tests for node tree
 * 139210d - Added getOuterLength override to ve.dm.BranchNode
 * a1846c8 - Fixed node tree example
 * 4d03be0 - Added comments and tests for canHaveChildren
 * 822e873 - Fixed numbering in comments in example data
 * 489794c - Renamed rootNode to documentNode and added tests
 * 80decda - Mostly-finished TransactionProcessor
 * a774b3d - Added test for getOffset map
 * fb9f6e0 - Fixed test module name typo
 * eeded0e - Renamed batchedSplice to batchSplice
 * 0245f6a - Fixes for 44fe109f14ad29abbdd131b951e017bc6f886c52 which mistakingly added .children to a few uses of batchedSplice
 * 44fe109 - Added test data and fixed test suite links
 * d4a99f2 - Removed "prototype." prefix from test names
 * 42eaba0 - First go at ve.dm.Document and ve.dm.DocumentFragment
 * 69df3ee - Implement ve.NodeFactory and add tests
 * a239b73 - Don't instantiate classes in ve.extendClass, it's unnecessary
 * e84b6b6 - Rename ve.dm.NodeFactory to ve.NodeFactory
 * d1d70dd - Add a note that I need to implement insert and remove as replace
 * 3d63914 - Added more nodes and removed canHave[Grandc|C]hildren methods
 * 5eca12c - Added skeleton class for ve.dm.NodeFactory
 * d4d2ae8 - Update lengthDifference in ve.dm.Transaction.pushReplace
 * f9fd9ea - Add tests for ve.dm.Transaction
 * 0a43cf1 - Remove documentation for nonexistent parameter
 * 08f792a - Remove the parameter from the ve.dm.Transaction constructor
 * d93f2f2 - Copy ve.dm.Transaction.js from modules/ve
 * b004b22 - Added tests for all exceptions
 * 9a37843 - Improved test coverage for ve.dm.BranchNode.splice and ve.dm.TwigNode.splice
 * f081c09 - A few fix ups for fd49e8d
 * fd49e8d - Added more tests for ve.*Node and ve.dm.*Node classes
 * c9ce7db - Added some basic coverage for ve.*Node classes
 * b16ed2b - Setup tests, which are still empty
 * 7ea475e - Initial commit of data model rewrite
 * bd900a4 - Add ve2 directory for rewriting code in

WebFonts

 * f09ac7c - Update Lohit Tamil fonts to 2.5.1 version
 * 6e2d781 - Fix Bug 33460 - WebFonts "Select font" portlet menu should only be shown if there are options to choose from
 * e05694e - Fix Bug 33348 Page jumps to top when you click on the menu
 * 3a2c967 - Fix Bug 35175 : WebFonts Menu goes beyond the menu heading after font change
 * 4189ca4 - Fix Bug 36666 Add UnifrakturMaguntia font

WikiEditor

 * e63ef41 - Update removeFromToolbar to select &lt;a&gt; instead of &lt;span&gt;.
 * 5098661 - Adding additional special characters
 * fbd5ef0 - Changing span tags of buttons to anchor tags
 * 63e396e - Remove wikieditor-preview=1 example from README

WikimediaMaintenance

 * 0a02a71 - Update globalblocking sql file

WikimediaMessages

 * c16d48c - Fix Bug 37369 - Add legal babble to Special:TranslatorSignup

cldr

 * b8c1738 - Update to CLDR 21.0.1 release
 * 7f6c086 - Updates for CLDR 21.0.1.
 * 57d1bde - Add core folder and core.zip to .gitignore
 * fb4802b - Update cldr date to 21.0