summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Evans <grknight@gentoo.org>2018-11-20 15:45:34 -0500
committerBrian Evans <grknight@gentoo.org>2018-11-20 15:45:34 -0500
commit3601474c256e7d8b8df62327cdad419c5c40ea86 (patch)
tree2ec746d8cda3a45989264b22292a0e6b9c90d169 /AntiSpoof
parentAdd missing files from the Language Pack (diff)
downloadextensions-3601474c256e7d8b8df62327cdad419c5c40ea86.tar.gz
extensions-3601474c256e7d8b8df62327cdad419c5c40ea86.tar.bz2
extensions-3601474c256e7d8b8df62327cdad419c5c40ea86.zip
Add AntiSpoof for 1.30
Signed-off-by: Brian Evans <grknight@gentoo.org>
Diffstat (limited to 'AntiSpoof')
-rw-r--r--AntiSpoof/.gitignore7
-rw-r--r--AntiSpoof/.gitreview5
-rw-r--r--AntiSpoof/AntiSpoof.php46
-rw-r--r--AntiSpoof/AntiSpoofAuthenticationRequest.php18
-rw-r--r--AntiSpoof/AntiSpoofHooks.php192
-rw-r--r--AntiSpoof/AntiSpoofPreAuthenticationProvider.php118
-rw-r--r--AntiSpoof/AntiSpoof_body.php406
-rw-r--r--AntiSpoof/CODE_OF_CONDUCT.md1
-rw-r--r--AntiSpoof/COPYING339
-rw-r--r--AntiSpoof/Gruntfile.js25
-rw-r--r--AntiSpoof/SpoofUser.php192
-rw-r--r--AntiSpoof/api/ApiAntiSpoof.php69
-rw-r--r--AntiSpoof/composer.json19
-rw-r--r--AntiSpoof/equivset.php5575
-rw-r--r--AntiSpoof/equivset.ser1
-rw-r--r--AntiSpoof/extension.json59
-rw-r--r--AntiSpoof/gitinfo.json1
-rw-r--r--AntiSpoof/i18n/aeb-arab.json20
-rw-r--r--AntiSpoof/i18n/aeb.json21
-rw-r--r--AntiSpoof/i18n/af.json24
-rw-r--r--AntiSpoof/i18n/ais.json13
-rw-r--r--AntiSpoof/i18n/aln.json21
-rw-r--r--AntiSpoof/i18n/an.json22
-rw-r--r--AntiSpoof/i18n/ang.json9
-rw-r--r--AntiSpoof/i18n/ar.json35
-rw-r--r--AntiSpoof/i18n/arc.json10
-rw-r--r--AntiSpoof/i18n/arz.json23
-rw-r--r--AntiSpoof/i18n/as.json25
-rw-r--r--AntiSpoof/i18n/ast.json29
-rw-r--r--AntiSpoof/i18n/avk.json10
-rw-r--r--AntiSpoof/i18n/awa.json22
-rw-r--r--AntiSpoof/i18n/az.json22
-rw-r--r--AntiSpoof/i18n/azb.json24
-rw-r--r--AntiSpoof/i18n/ba.json31
-rw-r--r--AntiSpoof/i18n/bar.json22
-rw-r--r--AntiSpoof/i18n/bcc.json23
-rw-r--r--AntiSpoof/i18n/bcl.json23
-rw-r--r--AntiSpoof/i18n/be-tarask.json31
-rw-r--r--AntiSpoof/i18n/be.json29
-rw-r--r--AntiSpoof/i18n/bg.json27
-rw-r--r--AntiSpoof/i18n/bho.json8
-rw-r--r--AntiSpoof/i18n/bjn.json22
-rw-r--r--AntiSpoof/i18n/bn.json27
-rw-r--r--AntiSpoof/i18n/bqi.json8
-rw-r--r--AntiSpoof/i18n/br.json24
-rw-r--r--AntiSpoof/i18n/brx.json9
-rw-r--r--AntiSpoof/i18n/bs.json25
-rw-r--r--AntiSpoof/i18n/ca.json26
-rw-r--r--AntiSpoof/i18n/ce.json11
-rw-r--r--AntiSpoof/i18n/ckb.json9
-rw-r--r--AntiSpoof/i18n/co.json4
-rw-r--r--AntiSpoof/i18n/cs.json26
-rw-r--r--AntiSpoof/i18n/cy.json22
-rw-r--r--AntiSpoof/i18n/da.json28
-rw-r--r--AntiSpoof/i18n/de-ch.json8
-rw-r--r--AntiSpoof/i18n/de-formal.json10
-rw-r--r--AntiSpoof/i18n/de.json33
-rw-r--r--AntiSpoof/i18n/diq.json27
-rw-r--r--AntiSpoof/i18n/dsb.json22
-rw-r--r--AntiSpoof/i18n/dtp.json8
-rw-r--r--AntiSpoof/i18n/el.json28
-rw-r--r--AntiSpoof/i18n/en-gb.json28
-rw-r--r--AntiSpoof/i18n/en.json29
-rw-r--r--AntiSpoof/i18n/eo.json24
-rw-r--r--AntiSpoof/i18n/es.json43
-rw-r--r--AntiSpoof/i18n/et.json25
-rw-r--r--AntiSpoof/i18n/eu.json14
-rw-r--r--AntiSpoof/i18n/fa.json33
-rw-r--r--AntiSpoof/i18n/fi.json28
-rw-r--r--AntiSpoof/i18n/fo.json22
-rw-r--r--AntiSpoof/i18n/fr.json40
-rw-r--r--AntiSpoof/i18n/frc.json18
-rw-r--r--AntiSpoof/i18n/frp.json22
-rw-r--r--AntiSpoof/i18n/frr.json26
-rw-r--r--AntiSpoof/i18n/gd.json22
-rw-r--r--AntiSpoof/i18n/gl.json31
-rw-r--r--AntiSpoof/i18n/gor.json10
-rw-r--r--AntiSpoof/i18n/grc.json11
-rw-r--r--AntiSpoof/i18n/gsw.json23
-rw-r--r--AntiSpoof/i18n/gu.json24
-rw-r--r--AntiSpoof/i18n/hak.json17
-rw-r--r--AntiSpoof/i18n/he.json31
-rw-r--r--AntiSpoof/i18n/hi.json35
-rw-r--r--AntiSpoof/i18n/hif-latn.json26
-rw-r--r--AntiSpoof/i18n/hr.json22
-rw-r--r--AntiSpoof/i18n/hrx.json11
-rw-r--r--AntiSpoof/i18n/hsb.json22
-rw-r--r--AntiSpoof/i18n/ht.json18
-rw-r--r--AntiSpoof/i18n/hu.json25
-rw-r--r--AntiSpoof/i18n/ia.json28
-rw-r--r--AntiSpoof/i18n/id.json34
-rw-r--r--AntiSpoof/i18n/ig.json9
-rw-r--r--AntiSpoof/i18n/ilo.json27
-rw-r--r--AntiSpoof/i18n/is.json23
-rw-r--r--AntiSpoof/i18n/it.json33
-rw-r--r--AntiSpoof/i18n/ja.json35
-rw-r--r--AntiSpoof/i18n/jut.json18
-rw-r--r--AntiSpoof/i18n/jv.json25
-rw-r--r--AntiSpoof/i18n/ka.json33
-rw-r--r--AntiSpoof/i18n/khw.json9
-rw-r--r--AntiSpoof/i18n/kk-arab.json12
-rw-r--r--AntiSpoof/i18n/kk-cyrl.json20
-rw-r--r--AntiSpoof/i18n/kk-latn.json12
-rw-r--r--AntiSpoof/i18n/km.json18
-rw-r--r--AntiSpoof/i18n/kn.json14
-rw-r--r--AntiSpoof/i18n/ko.json33
-rw-r--r--AntiSpoof/i18n/krc.json9
-rw-r--r--AntiSpoof/i18n/ksh.json26
-rw-r--r--AntiSpoof/i18n/ky.json19
-rw-r--r--AntiSpoof/i18n/la.json8
-rw-r--r--AntiSpoof/i18n/lad.json12
-rw-r--r--AntiSpoof/i18n/lb.json23
-rw-r--r--AntiSpoof/i18n/lez.json9
-rw-r--r--AntiSpoof/i18n/li.json29
-rw-r--r--AntiSpoof/i18n/lij.json27
-rw-r--r--AntiSpoof/i18n/lki.json25
-rw-r--r--AntiSpoof/i18n/lo.json11
-rw-r--r--AntiSpoof/i18n/lrc.json26
-rw-r--r--AntiSpoof/i18n/lt.json32
-rw-r--r--AntiSpoof/i18n/lv.json17
-rw-r--r--AntiSpoof/i18n/mai.json20
-rw-r--r--AntiSpoof/i18n/map-bms.json24
-rw-r--r--AntiSpoof/i18n/mg.json15
-rw-r--r--AntiSpoof/i18n/min.json9
-rw-r--r--AntiSpoof/i18n/mk.json29
-rw-r--r--AntiSpoof/i18n/ml.json27
-rw-r--r--AntiSpoof/i18n/mn.json21
-rw-r--r--AntiSpoof/i18n/mr.json29
-rw-r--r--AntiSpoof/i18n/ms.json24
-rw-r--r--AntiSpoof/i18n/mt.json22
-rw-r--r--AntiSpoof/i18n/myv.json10
-rw-r--r--AntiSpoof/i18n/nah.json9
-rw-r--r--AntiSpoof/i18n/nap.json27
-rw-r--r--AntiSpoof/i18n/nb.json31
-rw-r--r--AntiSpoof/i18n/nds-nl.json22
-rw-r--r--AntiSpoof/i18n/nds.json21
-rw-r--r--AntiSpoof/i18n/ne.json22
-rw-r--r--AntiSpoof/i18n/nl.json34
-rw-r--r--AntiSpoof/i18n/nn.json24
-rw-r--r--AntiSpoof/i18n/nso.json12
-rw-r--r--AntiSpoof/i18n/oc.json22
-rw-r--r--AntiSpoof/i18n/olo.json11
-rw-r--r--AntiSpoof/i18n/or.json23
-rw-r--r--AntiSpoof/i18n/os.json10
-rw-r--r--AntiSpoof/i18n/pa.json11
-rw-r--r--AntiSpoof/i18n/pag.json6
-rw-r--r--AntiSpoof/i18n/pam.json15
-rw-r--r--AntiSpoof/i18n/pfl.json22
-rw-r--r--AntiSpoof/i18n/pl.json33
-rw-r--r--AntiSpoof/i18n/pms.json27
-rw-r--r--AntiSpoof/i18n/pnb.json22
-rw-r--r--AntiSpoof/i18n/ps.json13
-rw-r--r--AntiSpoof/i18n/pt-br.json40
-rw-r--r--AntiSpoof/i18n/pt.json33
-rw-r--r--AntiSpoof/i18n/qqq.json37
-rw-r--r--AntiSpoof/i18n/qu.json22
-rw-r--r--AntiSpoof/i18n/ro.json27
-rw-r--r--AntiSpoof/i18n/roa-tara.json29
-rw-r--r--AntiSpoof/i18n/ru.json35
-rw-r--r--AntiSpoof/i18n/rue.json22
-rw-r--r--AntiSpoof/i18n/sa.json24
-rw-r--r--AntiSpoof/i18n/sah.json22
-rw-r--r--AntiSpoof/i18n/sat.json20
-rw-r--r--AntiSpoof/i18n/scn.json29
-rw-r--r--AntiSpoof/i18n/sco.json27
-rw-r--r--AntiSpoof/i18n/sh.json22
-rw-r--r--AntiSpoof/i18n/shn.json23
-rw-r--r--AntiSpoof/i18n/si.json24
-rw-r--r--AntiSpoof/i18n/sk.json22
-rw-r--r--AntiSpoof/i18n/skr-arab.json11
-rw-r--r--AntiSpoof/i18n/sl.json23
-rw-r--r--AntiSpoof/i18n/sq.json24
-rw-r--r--AntiSpoof/i18n/sr-ec.json30
-rw-r--r--AntiSpoof/i18n/sr-el.json26
-rw-r--r--AntiSpoof/i18n/stq.json21
-rw-r--r--AntiSpoof/i18n/su.json21
-rw-r--r--AntiSpoof/i18n/sv.json33
-rw-r--r--AntiSpoof/i18n/sw.json11
-rw-r--r--AntiSpoof/i18n/szl.json8
-rw-r--r--AntiSpoof/i18n/ta.json25
-rw-r--r--AntiSpoof/i18n/tay.json9
-rw-r--r--AntiSpoof/i18n/te.json24
-rw-r--r--AntiSpoof/i18n/tg-cyrl.json17
-rw-r--r--AntiSpoof/i18n/tg-latn.json17
-rw-r--r--AntiSpoof/i18n/tk.json21
-rw-r--r--AntiSpoof/i18n/tl.json26
-rw-r--r--AntiSpoof/i18n/to.json9
-rw-r--r--AntiSpoof/i18n/tr.json28
-rw-r--r--AntiSpoof/i18n/tzm.json8
-rw-r--r--AntiSpoof/i18n/ug-arab.json24
-rw-r--r--AntiSpoof/i18n/uk.json34
-rw-r--r--AntiSpoof/i18n/ur.json16
-rw-r--r--AntiSpoof/i18n/vec.json23
-rw-r--r--AntiSpoof/i18n/vep.json10
-rw-r--r--AntiSpoof/i18n/vi.json30
-rw-r--r--AntiSpoof/i18n/vo.json22
-rw-r--r--AntiSpoof/i18n/war.json8
-rw-r--r--AntiSpoof/i18n/wuu.json9
-rw-r--r--AntiSpoof/i18n/yi.json18
-rw-r--r--AntiSpoof/i18n/yo.json12
-rw-r--r--AntiSpoof/i18n/yue.json30
-rw-r--r--AntiSpoof/i18n/zea.json19
-rw-r--r--AntiSpoof/i18n/zh-hans.json36
-rw-r--r--AntiSpoof/i18n/zh-hant.json37
-rw-r--r--AntiSpoof/maintenance/BatchAntiSpoofClass.php83
-rw-r--r--AntiSpoof/maintenance/Makefile16
-rw-r--r--AntiSpoof/maintenance/batchAntiSpoof.php5
-rw-r--r--AntiSpoof/maintenance/equivset.head34
-rw-r--r--AntiSpoof/maintenance/equivset.in5613
-rw-r--r--AntiSpoof/maintenance/equivset.txt3836
-rw-r--r--AntiSpoof/maintenance/generateEquivset.php177
-rw-r--r--AntiSpoof/package.json14
-rw-r--r--AntiSpoof/phpcs.xml20
-rw-r--r--AntiSpoof/sql/patch-antispoof.mysql.sql21
-rw-r--r--AntiSpoof/sql/patch-antispoof.postgres.sql17
-rw-r--r--AntiSpoof/sql/patch-antispoof.sqlite.sql21
-rw-r--r--AntiSpoof/tests/phpunit/AntiSpoofAuthenticationRequestTest.php17
-rw-r--r--AntiSpoof/tests/phpunit/AntiSpoofPreAuthenticationProviderTest.php97
-rw-r--r--AntiSpoof/tests/phpunit/AntiSpoofTest.php32
-rw-r--r--AntiSpoof/tests/phpunit/SpoofUserTest.php80
-rw-r--r--AntiSpoof/version4
221 files changed, 21222 insertions, 0 deletions
diff --git a/AntiSpoof/.gitignore b/AntiSpoof/.gitignore
new file mode 100644
index 00000000..bee951ee
--- /dev/null
+++ b/AntiSpoof/.gitignore
@@ -0,0 +1,7 @@
+.svn
+*~
+*.kate-swp
+.*.swp
+node_modules/
+vendor/
+composer.lock
diff --git a/AntiSpoof/.gitreview b/AntiSpoof/.gitreview
new file mode 100644
index 00000000..0d899dff
--- /dev/null
+++ b/AntiSpoof/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.wikimedia.org
+port=29418
+project=mediawiki/extensions/AntiSpoof.git
+track=1
diff --git a/AntiSpoof/AntiSpoof.php b/AntiSpoof/AntiSpoof.php
new file mode 100644
index 00000000..2dd75fee
--- /dev/null
+++ b/AntiSpoof/AntiSpoof.php
@@ -0,0 +1,46 @@
+<?php
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'AntiSpoof' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['AntiSpoof'] = __DIR__ . '/i18n';
+ wfWarn(
+ 'Deprecated PHP entry point used for AntiSpoof extension. ' .
+ 'Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ );
+ return;
+} else {
+ die( 'This version of the AntiSpoof extension requires MediaWiki 1.25+' );
+}
+
+// globals declarations kept here for IDE-friendlyness; this code is never loaded
+
+/**
+ * Set this to false to disable the active checks;
+ * items will be logged but invalid or conflicting
+ * accounts will not be stopped.
+ *
+ * Logged items will be marked with 'LOGGING' for
+ * easier review of old logs' effect.
+ *
+ * @var bool
+ */
+$wgAntiSpoofAccounts = null;
+
+/**
+ * Blacklisted character codes.
+ * defaults:
+ * 0x0337 - Combining short solidus overlay
+ * 0x0338 - Combining long solidus overlay
+ * 0x2044 - Fraction slash
+ * 0x2215 - Division slash
+ * 0x23AE - Integral extension
+ * 0x29F6 - Solidus with overbar
+ * 0x29F8 - Big solidus
+ * 0x2AFB - Triple solidus binary relation
+ * 0x2AFD - Double solidus operator
+ * 0xFF0F - Fullwidth solidus
+ *
+ * @var int[]
+ */
+$wgAntiSpoofBlacklist = null;
diff --git a/AntiSpoof/AntiSpoofAuthenticationRequest.php b/AntiSpoof/AntiSpoofAuthenticationRequest.php
new file mode 100644
index 00000000..cafd8729
--- /dev/null
+++ b/AntiSpoof/AntiSpoofAuthenticationRequest.php
@@ -0,0 +1,18 @@
+<?php
+
+use MediaWiki\Auth\AuthenticationRequest;
+
+class AntiSpoofAuthenticationRequest extends AuthenticationRequest {
+ public $ignoreAntiSpoof;
+
+ public function getFieldInfo() {
+ return [
+ 'ignoreAntiSpoof' => [
+ 'type' => 'checkbox',
+ 'label' => wfMessage( 'antispoof-ignore' ),
+ 'help' => wfMessage( 'antispoof-ignore-help' ),
+ 'optional' => true,
+ ],
+ ];
+ }
+}
diff --git a/AntiSpoof/AntiSpoofHooks.php b/AntiSpoof/AntiSpoofHooks.php
new file mode 100644
index 00000000..b38f91c7
--- /dev/null
+++ b/AntiSpoof/AntiSpoofHooks.php
@@ -0,0 +1,192 @@
+<?php
+
+use MediaWiki\Auth\AuthManager;
+
+class AntiSpoofHooks {
+ /**
+ * Called after global variables have been set up
+ */
+ public static function onRegistration() {
+ global $wgDisableAuthManager, $wgAuthManagerAutoConfig;
+
+ if ( class_exists( AuthManager::class ) && !$wgDisableAuthManager ) {
+ $wgAuthManagerAutoConfig['preauth'][AntiSpoofPreAuthenticationProvider::class] =
+ [ 'class' => AntiSpoofPreAuthenticationProvider::class ];
+ Hooks::register( 'LocalUserCreated', 'AntiSpoofHooks::asLocalUserCreated' );
+ } else {
+ Hooks::register( 'AbortNewAccount', 'AntiSpoofHooks::asAbortNewAccountHook' );
+ Hooks::register( 'UserCreateForm', 'AntiSpoofHooks::asUserCreateFormHook' );
+ Hooks::register( 'AddNewAccount', 'AntiSpoofHooks::asAddNewAccountHook' );
+ Hooks::register( 'APIGetAllowedParams', 'AntiSpoofHooks::onAPIGetAllowedParams' );
+ Hooks::register( 'AddNewAccountApiForm', 'AntiSpoofHooks::addNewAccountApiForm' );
+ }
+ }
+
+ /**
+ * @param $updater DatabaseUpdater
+ * @return bool
+ */
+ public static function asUpdateSchema( DatabaseUpdater $updater ) {
+ $updater->addExtensionTable( 'spoofuser',
+ __DIR__ . '/sql/patch-antispoof.' . $updater->getDB()->getType() . '.sql' );
+ return true;
+ }
+
+ /**
+ * Can be used to cancel user account creation
+ *
+ * @param $user User
+ * @param $message string
+ * @return bool true to continue, false to abort user creation
+ */
+ public static function asAbortNewAccountHook( $user, &$message ) {
+ global $wgAntiSpoofAccounts, $wgUser, $wgRequest;
+
+ if ( !$wgAntiSpoofAccounts ) {
+ $mode = 'LOGGING ';
+ $active = false;
+ } elseif ( $wgRequest->getCheck( 'wpIgnoreAntiSpoof' ) &&
+ $wgUser->isAllowed( 'override-antispoof' ) ) {
+ $mode = 'OVERRIDE ';
+ $active = false;
+ } else {
+ $mode = '';
+ $active = true;
+ }
+
+ $name = $user->getName();
+ $spoof = new SpoofUser( $name );
+ if ( $spoof->isLegal() ) {
+ $normalized = $spoof->getNormalized();
+ $conflicts = $spoof->getConflicts();
+ if ( empty( $conflicts ) ) {
+ wfDebugLog( 'antispoof', "{$mode}PASS new account '$name' [$normalized]" );
+ } else {
+ wfDebugLog( 'antispoof', "{$mode}CONFLICT new account '$name' [$normalized] spoofs "
+ . implode( ',', $conflicts ) );
+ if ( $active ) {
+ $numConflicts = count( $conflicts );
+ $message = wfMessage( 'antispoof-conflict-top', $name )
+ ->numParams( $numConflicts )->parse();
+ $message .= '<ul>';
+ foreach ( $conflicts as $simUser ) {
+ $message .= '<li>' . wfMessage( 'antispoof-conflict-item', $simUser )->escaped() . '</li>';
+ }
+ $message .= '</ul>' . wfMessage( 'antispoof-conflict-bottom' )->parse();
+ return false;
+ }
+ }
+ } else {
+ $error = $spoof->getError();
+ wfDebugLog( 'antispoof', "{$mode}ILLEGAL new account '$name' $error" );
+ if ( $active ) {
+ $message = wfMessage( 'antispoof-name-illegal', $name, $error )->text();
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Set the ignore spoof thingie
+ * (Manipulate the user create form)
+ *
+ * @param $template UsercreateTemplate
+ * @return bool
+ */
+ public static function asUserCreateFormHook( &$template ) {
+ global $wgRequest, $wgAntiSpoofAccounts, $wgUser;
+
+ if ( $wgAntiSpoofAccounts && $wgUser->isAllowed( 'override-antispoof' ) ) {
+ $template->addInputItem( 'wpIgnoreAntiSpoof',
+ $wgRequest->getCheck( 'wpIgnoreAntiSpoof' ),
+ 'checkbox', 'antispoof-ignore' );
+ }
+ return true;
+ }
+
+ /**
+ * On new account creation, record the username's thing-bob.
+ * (Called after a user account is created)
+ *
+ * @param $user User
+ * @return bool
+ */
+ public static function asAddNewAccountHook( $user ) {
+ $spoof = new SpoofUser( $user->getName() );
+ $spoof->record();
+ return true;
+ }
+
+ /**
+ * On new account creation, record the username's thing-bob.
+ * Replaces AddNewAccountHook for more modern MediaWiki versions-
+ *
+ * @param $user User
+ * @return bool
+ */
+ public static function asLocalUserCreated( $user ) {
+ $spoof = new SpoofUser( $user->getName() );
+ $spoof->record();
+ return true;
+ }
+
+ /**
+ * On rename, remove the old entry and add the new
+ * (After a sucessful user rename)
+ *
+ * @param $uid
+ * @param $oldName string
+ * @param $newName string
+ * @return bool
+ */
+ public static function asAddRenameUserHook( $uid, $oldName, $newName ) {
+ $spoof = new SpoofUser( $newName );
+ $spoof->update( $oldName );
+ return true;
+ }
+
+ public static function asDeleteAccount( User &$oldUser ) {
+ $spoof = new SpoofUser( $oldUser->getName() );
+ $spoof->remove();
+ return true;
+ }
+
+ /**
+ * @param ApiBase $module
+ * @param array $params
+ * @return bool
+ */
+ public static function onAPIGetAllowedParams( &$module, &$params ) {
+ if ( $module instanceof ApiCreateAccount ) {
+ $params['ignoreantispoof'] = [
+ ApiBase::PARAM_TYPE => 'boolean',
+ ApiBase::PARAM_DFLT => false
+ ];
+ }
+
+ return true;
+ }
+
+ /**
+ * Pass API parameter on to the login form when using
+ * API account creation.
+ *
+ * @param ApiBase $apiModule
+ * @param LoginForm $loginForm
+ * @return hook return value
+ */
+ public static function addNewAccountApiForm( $apiModule, $loginForm ) {
+ global $wgRequest;
+ $main = $apiModule->getMain();
+
+ if ( $main->getVal( 'ignoreantispoof' ) !== null ) {
+ $wgRequest->setVal( 'wpIgnoreAntiSpoof', '1' );
+
+ // Suppress "unrecognized parameter" warning:
+ $main->getVal( 'wpIgnoreAntiSpoof' );
+ }
+
+ return true;
+ }
+}
diff --git a/AntiSpoof/AntiSpoofPreAuthenticationProvider.php b/AntiSpoof/AntiSpoofPreAuthenticationProvider.php
new file mode 100644
index 00000000..ede77ae6
--- /dev/null
+++ b/AntiSpoof/AntiSpoofPreAuthenticationProvider.php
@@ -0,0 +1,118 @@
+<?php
+
+use MediaWiki\Auth\AbstractPreAuthenticationProvider;
+use MediaWiki\Auth\AuthenticationRequest;
+use MediaWiki\Auth\AuthManager;
+use Psr\Log\NullLogger;
+
+class AntiSpoofPreAuthenticationProvider extends AbstractPreAuthenticationProvider {
+ /** @var bool False effectively disables this provider, but spoofed names will still be logged. */
+ protected $antiSpoofAccounts;
+
+ /**
+ * Options:
+ * - antiSpoofAccounts: (bool) stop spoofed accounts from being created. When false, only log.
+ * @param array $params
+ */
+ public function __construct( array $params = [] ) {
+ global $wgAntiSpoofAccounts;
+
+ $params += [ 'antiSpoofAccounts' => $wgAntiSpoofAccounts ];
+
+ $this->antiSpoofAccounts = $params['antiSpoofAccounts'];
+ }
+
+ public function getAuthenticationRequests( $action, array $options ) {
+ $needed = false;
+ switch ( $action ) {
+ case AuthManager::ACTION_CREATE:
+ $user = User::newFromName( $options['username'] ) ?: new User();
+ $needed = $this->antiSpoofAccounts && $user->isAllowed( 'override-antispoof' );
+ break;
+ }
+
+ return $needed ? [ new AntiSpoofAuthenticationRequest() ] : [];
+ }
+
+ public function testForAccountCreation( $user, $creator, array $reqs ) {
+ /** @var AntiSpoofAuthenticationRequest $req */
+ $req = AuthenticationRequest::getRequestByClass( $reqs, AntiSpoofAuthenticationRequest::class );
+ $override = $req && $req->ignoreAntiSpoof && $creator->isAllowed( 'override-antispoof' );
+
+ return self::testUserInternal( $user, $override, $this->logger );
+ }
+
+ private function testUserInternal( $user, $override, $logger ) {
+ $spoofUser = $this->getSpoofUser( $user );
+ $mode = !$this->antiSpoofAccounts ? 'LOGGING ' : $override ? 'OVERRIDE ' : '';
+ $active = $this->antiSpoofAccounts && !$override;
+
+ if ( $spoofUser->isLegal() ) {
+ $normalized = $spoofUser->getNormalized();
+ $conflicts = $spoofUser->getConflicts();
+ if ( empty( $conflicts ) ) {
+ $logger->debug( "{mode}PASS new account '{name}' [{normalized}]", [
+ 'mode' => $mode,
+ 'name' => $user->getName(),
+ 'normalized' => $normalized,
+ ] );
+ } else {
+ $logger->info( "{mode}CONFLICT new account '{name}' [{normalized}] spoofs {spoofs}", [
+ 'mode' => $mode,
+ 'name' => $user->getName(),
+ 'normalized' => $normalized,
+ 'spoofs' => $conflicts,
+ ] );
+ if ( $active ) {
+ $cnt = count( $conflicts );
+ $list = '';
+ foreach ( $conflicts as $simUser ) {
+ $list .= Html::element( 'li', [],
+ wfMessage( 'antispoof-conflict-item', $simUser ) );
+ }
+ $list = Html::rawElement( 'ul', [], $list );
+
+ $message = new RawMessage( '$1$2$3', [
+ wfMessage( 'antispoof-conflict-top', $user->getName() )->numParams( $cnt ),
+ $list,
+ wfMessage( 'antispoof-conflict-bottom' )
+ ] );
+ return StatusValue::newFatal( $message );
+ }
+ }
+ } else {
+ $error = $spoofUser->getError();
+ $logger->info( "{mode}ILLEGAL new account '{name}' {error}", [
+ 'mode' => $mode,
+ 'name' => $user->getName(),
+ 'error' => $error,
+ ] );
+ if ( $active ) {
+ return StatusValue::newFatal( 'antispoof-name-illegal', $user->getName(), $error );
+ }
+ }
+ return StatusValue::newGood();
+ }
+
+ public function testUserForCreation( $user, $autocreate, array $options = [] ) {
+ $sv = StatusValue::newGood();
+
+ // For "cancreate" checks via the API, test if the current user could
+ // create the username.
+ if ( $this->antiSpoofAccounts && !$autocreate && empty( $options['creating'] ) &&
+ !RequestContext::getMain()->getUser()->isAllowed( 'override-antispoof' )
+ ) {
+ $sv->merge( $this->testUserInternal( $user, false, new NullLogger ) );
+ }
+
+ return $sv;
+ }
+
+ /**
+ * @param User $user
+ * @return SpoofUser
+ */
+ protected function getSpoofUser( User $user ) {
+ return new SpoofUser( $user->getName() );
+ }
+}
diff --git a/AntiSpoof/AntiSpoof_body.php b/AntiSpoof/AntiSpoof_body.php
new file mode 100644
index 00000000..d6d424a9
--- /dev/null
+++ b/AntiSpoof/AntiSpoof_body.php
@@ -0,0 +1,406 @@
+<?php
+/**
+ * AntiSpoof.php
+ * Username spoofing prevention for MediaWiki
+ * Version 0.04
+ *
+ * Copyright (C) Neil Harris 2006
+ * Python->PHP conversion by Brion Vibber <brion@pobox.com>
+ *
+ * 2006-06-30 Handles non-CJK scripts as per UTR #39 + my extensions
+ * 2006-07-01 Now handles Simplified <-> Traditional Chinese rules, as
+ * per JET Guidelines for Internationalized Domain Names,
+ * and the ICANN language registry values for .cn
+ * 2006-09-14 Now handles 'rn' etc better, and uses stdin for input
+ * 2006-09-18 Added exception handling for nasty cases, eg BiDi violations
+ * 2006-09-19 Converted to PHP for easier integration into a MW extension
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ */
+
+use UtfNormal\Utils;
+use UtfNormal\Validator;
+
+class AntiSpoof {
+ /**
+ * Define script tag codes for various Unicode codepoint ranges
+ * If it does not have a code here, it does not have a script assignment
+ * NB: Braille is not in this list since it is a transliteration system, not a script;
+ * this does not disadvantage blind people, who will use Braille input/output methods
+ * and not raw Braille...
+ * NB: Middle dot is included in SCRIPT_LATIN for use in Catalan
+ * NB: All scripts described by the Unicode Consortium as "Other Scripts" or "Ancient Scripts"
+ * are commented out: these are either not in modern use, or only used for specialized
+ * religious purposes, or only of literary interest
+ */
+ private static $script_ranges = [
+ [ 0x0020, 0x002F,
+ "SCRIPT_ASCII_PUNCTUATION" ], // ASCII Punctuation 1, Hyphen, ASCII Punctuation 2
+ [ 0x0030, 0x0039, "SCRIPT_ASCII_DIGITS" ], // ASCII Digits
+ [ 0x003A, 0x0040, "SCRIPT_ASCII_PUNCTUATION" ], // Colon, ASCII Punctuation 3
+ [ 0x0041, 0x005A, "SCRIPT_LATIN" ], // ASCII Uppercase
+ [ 0x005B, 0x0060,
+ "SCRIPT_ASCII_PUNCTUATION" ], // ASCII Punctuation 4, Underscore, ASCII Punctuation 5
+ [ 0x0061, 0x007A, "SCRIPT_LATIN" ], // ASCII Lowercase
+ [ 0x007B, 0x007E, "SCRIPT_ASCII_PUNCTUATION" ], // ASCII Punctuation 5
+ [ 0x00B7, 0x00B7, "SCRIPT_LATIN" ], // Middle Dot
+ [ 0x00C0, 0x00D6, "SCRIPT_LATIN" ], // Latin-1 Letters 1
+ [ 0x00D8, 0x00F6, "SCRIPT_LATIN" ], // Latin-1 Letters 2
+ [ 0x00F8, 0x02AF,
+ "SCRIPT_LATIN" ], // Latin-1 Letters 3, Latin Extended-A, Latin Extended-B, IPA Extensions
+ [ 0x0300, 0x036F, "SCRIPT_COMBINING_MARKS" ], // Combining Diacritical Marks
+ [ 0x0370, 0x03E1, "SCRIPT_GREEK" ], // Greek and Coptic (Greek)
+ [ 0x03E2, 0x03EF, "SCRIPT_COPTIC_EXTRAS" ], // Greek and Coptic (Coptic-unique)
+ [ 0x03F0, 0x03FF, "SCRIPT_GREEK" ], // Greek and Coptic (Greek)
+ [ 0x0400, 0x052F, "SCRIPT_CYRILLIC" ], // Cyrillic, Cyrillic Supplement
+ [ 0x0530, 0x058F, "SCRIPT_ARMENIAN" ], // Armenian
+ [ 0x0590, 0x05FF, "SCRIPT_HEBREW" ], // Hebrew
+ [ 0x0600, 0x06FF, "SCRIPT_ARABIC" ], // Arabic
+ [ 0x0700, 0x074F, "SCRIPT_SYRIAC" ], // Syriac
+ [ 0x0750, 0x077F, "SCRIPT_ARABIC" ], // Arabic Supplement
+ [ 0x0780, 0x07BF, "SCRIPT_THAANA" ], // Thaana
+ [ 0x0900, 0x097F, "SCRIPT_DEVANAGARI" ], // Devanagari
+ [ 0x0980, 0x09FF, "SCRIPT_BENGALI" ], // Bengali
+ [ 0x0A00, 0x0A7F, "SCRIPT_GURMUKHI" ], // Gurmukhi
+ [ 0x0A80, 0x0AFF, "SCRIPT_GUJARATI" ], // Gujarati
+ [ 0x0B00, 0x0B7F, "SCRIPT_ORIYA" ], // Oriya
+ [ 0x0B80, 0x0BFF, "SCRIPT_TAMIL" ], // Tamil
+ [ 0x0C00, 0x0C7F, "SCRIPT_TELUGU" ], // Telugu
+ [ 0x0C80, 0x0CFF, "SCRIPT_KANNADA" ], // Kannada
+ [ 0x0D00, 0x0D7F, "SCRIPT_MALAYALAM" ], // Malayalam
+ [ 0x0D80, 0x0DFF, "SCRIPT_SINHALA" ], // Sinhala
+ [ 0x0E00, 0x0E7F, "SCRIPT_THAI" ], // Thai
+ [ 0x0E80, 0x0EFF, "SCRIPT_LAO" ], // Lao
+ [ 0x0F00, 0x0FFF, "SCRIPT_TIBETAN" ], // Tibetan
+ [ 0x1000, 0x109F, "SCRIPT_MYANMAR" ], // Myanmar
+ [ 0x10A0, 0x10FF, "SCRIPT_GEORGIAN" ], // Georgian
+ [ 0x1100, 0x11FF, "SCRIPT_HANGUL" ], // Hangul Jamo
+ [ 0x1200, 0x139F, "SCRIPT_ETHIOPIC" ], // Ethiopic, Ethiopic Supplement
+ [ 0x13A0, 0x13FF, "SCRIPT_CHEROKEE" ], // Cherokee
+ [ 0x1400, 0x167F, "SCRIPT_CANADIAN_ABORIGINAL" ], // Unified Canadian Aboriginal Syllabics
+ // [ 0x1680, 0x169F, "SCRIPT_OGHAM" ], // Ogham
+ // [ 0x16A0, 0x16FF, "SCRIPT_RUNIC" ], // Runic
+ [ 0x1700, 0x171F, "SCRIPT_TAGALOG" ], // Tagalog
+ [ 0x1720, 0x173F, "SCRIPT_HANUNOO" ], // Hanunoo
+ [ 0x1740, 0x175F, "SCRIPT_BUHID" ], // Buhid
+ [ 0x1760, 0x177F, "SCRIPT_TAGBANWA" ], // Tagbanwa
+ [ 0x1780, 0x17FF, "SCRIPT_KHMER" ], // Khmer
+ [ 0x1800, 0x18AF, "SCRIPT_MONGOLIAN" ], // Mongolian
+ [ 0x1900, 0x194F, "SCRIPT_LIMBU" ], // Limbu
+ [ 0x1950, 0x197F, "SCRIPT_TAI_LE" ], // Tai Le
+ [ 0x1980, 0x19DF, "SCRIPT_NEW_TAI_LUE" ], // New Tai Lue
+ [ 0x1A00, 0x1A1F, "SCRIPT_BUGINESE" ], // Buginese
+ [ 0x1E00, 0x1EFF, "SCRIPT_LATIN" ], // Latin Extended Additional
+ [ 0x1F00, 0x1FFF, "SCRIPT_GREEK" ], // Greek Extended
+ // [ 0x2C00, 0x2C5F, "SCRIPT_GLAGOLITIC" ], // Glagolitic
+ [ 0x2C80, 0x2CFF, "SCRIPT_COPTIC" ], // Coptic
+ [ 0x2D00, 0x2D2F, "SCRIPT_GEORGIAN" ], // Georgian Supplement
+ [ 0x2D30, 0x2D7F, "SCRIPT_TIFINAGH" ], // Tifinagh
+ [ 0x2D80, 0x2DDF, "SCRIPT_ETHIOPIC" ], // Ethiopic Extended
+ [ 0x2E80, 0x2FDF, "SCRIPT_DEPRECATED" ], // CJK Radicals Supplement, Kangxi Radicals
+ [ 0x3040, 0x309F, "SCRIPT_HIRAGANA" ], // Hiragana
+ [ 0x30A0, 0x30FF, "SCRIPT_KATAKANA" ], // Katakana
+ [ 0x3100, 0x312F, "SCRIPT_BOPOMOFO" ], // Bopomofo
+ [ 0x3130, 0x318F, "SCRIPT_HANGUL" ], // Hangul Compatibility Jamo
+ [ 0x31A0, 0x31BF, "SCRIPT_BOPOMOFO" ], // Bopomofo Extended
+ [ 0x3400, 0x4DBF, "SCRIPT_HAN" ], // CJK Unified Ideographs Extension A
+ [ 0x4E00, 0x9FFF, "SCRIPT_HAN" ], // CJK Unified Ideographs
+ [ 0xA000, 0xA4CF, "SCRIPT_YI" ], // Yi Syllables, Yi Radicals
+ [ 0xA800, 0xA82F, "SCRIPT_SYLOTI_NAGRI" ], // Syloti Nagri
+ [ 0xAC00, 0xD7AF, "SCRIPT_HANGUL" ], // Hangul Syllables
+ [ 0xF900, 0xFAFF, "SCRIPT_DEPRECATED" ], // CJK Compatibility Ideographs
+ // [ 0x10000, 0x100FF, "SCRIPT_LINEAR_B" ], // Linear B Syllabary, Linear B Ideograms
+ // [ 0x10140, 0x1018F, "SCRIPT_GREEK" ], // Ancient Greek Numbers
+ // [ 0x10300, 0x1032F, "SCRIPT_OLD_ITALIC" ], // Old Italic
+ [ 0x10330, 0x1034F, "SCRIPT_GOTHIC" ], // Gothic
+ // [ 0x10380, 0x1039F, "SCRIPT_UGARITIC" ], // Ugaritic
+ // [ 0x103A0, 0x103DF, "SCRIPT_OLD_PERSIAN" ], // Old Persian
+ // [ 0x10400, 0x1044F, "SCRIPT_DESERET" ], // Deseret
+ // [ 0x10450, 0x1047F, "SCRIPT_SHAVIAN" ], // Shavian
+ // [ 0x10480, 0x104AF, "SCRIPT_OSMANYA" ], // Osmanya
+ // [ 0x10800, 0x1083F, "SCRIPT_CYPRIOT" ], // Cypriot Syllabary
+ [ 0x10A00, 0x10A5F, "SCRIPT_KHAROSHTHI" ], // Kharoshthi
+ [ 0x20000, 0x2A6DF, "SCRIPT_HAN" ], // CJK Unified Ideographs Extension B
+ [ 0x2F800, 0x2FA1F, "SCRIPT_DEPRECATED" ] // CJK Compatibility Ideographs Supplement
+ ];
+
+ /* Equivalence sets */
+ private static $equivset = null;
+
+ static function getEquivSet() {
+ if ( is_null( self::$equivset ) ) {
+ self::$equivset = unserialize( file_get_contents(
+ __DIR__ . '/equivset.ser' ) );
+ }
+
+ return self::$equivset;
+ }
+
+ /**
+ * @param $ch
+ * @return string
+ */
+ private static function getScriptCode( $ch ) {
+ # Linear search: binary chop would be faster...
+ foreach ( self::$script_ranges as $range ) {
+ if ( $ch >= $range[0] && $ch <= $range[1] ) {
+ return $range[2];
+ }
+ }
+ # Otherwise...
+ return "SCRIPT_UNASSIGNED";
+ }
+
+ /**
+ * From the name of a script, get a script descriptor, if valid,
+ * otherwise return None
+ *
+ * @param $name
+ * @return null|string
+ */
+ private static function getScriptTag( $name ) {
+ $name = "SCRIPT_" . strtoupper( trim( $name ) );
+ // Linear search
+ foreach ( self::$script_ranges as $range ) {
+ if ( $name == $range[2] ) {
+ return $range[2];
+ }
+ }
+ // Otherwise...
+ return null;
+ }
+
+ /**
+ * @param $aList array
+ * @param $bList array
+ * @return bool
+ */
+ private static function isSubsetOf( $aList, $bList ) {
+ return count( array_diff( $aList, $bList ) ) == 0;
+ }
+
+ /**
+ * Is this an allowed script mixture?
+ *
+ * @param $scriptList
+ * @return bool
+ */
+ private static function isAllowedScriptCombination( $scriptList ) {
+ $allowedScriptCombinations = [
+ [ "SCRIPT_COPTIC", "SCRIPT_COPTIC_EXTRAS" ], # Coptic, using old Greek chars
+ [ "SCRIPT_GREEK", "SCRIPT_COPTIC_EXTRAS" ], # Coptic, using new Coptic chars
+ [ "SCRIPT_HAN", "SCRIPT_BOPOMOFO" ], # Chinese
+ [ "SCRIPT_HAN", "SCRIPT_HANGUL" ], # Korean
+ [ "SCRIPT_HAN", "SCRIPT_KATAKANA", "SCRIPT_HIRAGANA" ] # Japanese
+ ];
+ foreach ( $allowedScriptCombinations as $allowedCombo ) {
+ if ( self::isSubsetOf( $scriptList, $allowedCombo ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Convert string into array of Unicode code points as integers
+ * @param $str
+ * @return array
+ */
+ public static function stringToList( $str ) {
+ $ar = [];
+ if ( !preg_match_all( '/./us', $str, $ar ) ) {
+ return [];
+ }
+ $out = [];
+ foreach ( $ar[0] as $char ) {
+ $out[] = Utils::utf8ToCodepoint( $char );
+ }
+ return $out;
+ }
+
+ /**
+ * @param $list array
+ * @return string
+ */
+ public static function listToString( $list ) {
+ $out = '';
+ foreach ( $list as $cp ) {
+ $out .= Utils::codepointToUtf8( $cp );
+ }
+ return $out;
+ }
+
+ /**
+ * @param $a_list array
+ * @return string
+ */
+ private static function hardjoin( $a_list ) {
+ return implode( '', $a_list );
+ }
+
+ /**
+ * @param string $testName
+ * @return string
+ */
+ public static function normalizeString( $testName ) {
+ return strtr( $testName, self::getEquivSet() );
+ }
+
+ /**
+ * @param $text
+ * @param $script
+ * @return array
+ */
+ private static function stripScript( $text, $script ) {
+ $scripts = array_map( [ 'AntiSpoof', 'getScriptCode' ], $text );
+ $out = [];
+ foreach ( $text as $index => $char ) {
+ if ( $scripts[$index] !== $script ) {
+ $out[] = $char;
+ }
+ }
+ return $out;
+ }
+
+ /*
+ * Helper function for checkUnicodeString: Return an error on a bad character.
+ * @todo I would like to show Unicode character name, but it is not clear how to get it.
+ * @param $msgId -- string, message identifier.
+ * @param $point -- number, codepoint of the bad character.
+ * @return Formatted error message.
+ */
+ private static function badCharErr( $msgId, $point ) {
+ $symbol = Utils::codepointToUtf8( $point );
+ // Combining marks are combined with the previous character. If abusing character is a
+ // combining mark, prepend it with space to show them correctly.
+ if ( self::getScriptCode( $point ) == "SCRIPT_COMBINING_MARKS" ) {
+ $symbol = ' ' . $symbol;
+ }
+ $code = sprintf( 'U+%04X', $point );
+ if ( preg_match( '/\A\p{C}\z/u', $symbol ) ) {
+ $char = wfMessage( 'antispoof-bad-char-non-printable', $code )->text();
+ } else {
+ $char = wfMessage( 'antispoof-bad-char', $symbol, $code )->text();
+ }
+ return [ "ERROR", wfMessage( $msgId, $char )->text() ];
+ }
+
+ /**
+ * TODO: does too much in one routine, refactor...
+ * @param $testName
+ * @return array
+ */
+ public static function checkUnicodeString( $testName ) {
+ global $wgAntiSpoofBlacklist;
+
+ // Start with some sanity checking
+ if ( !is_array( $wgAntiSpoofBlacklist ) ) {
+ throw new MWException( '$wgAntiSpoofBlacklist should be an array!' );
+ }
+ if ( !is_string( $testName ) ) {
+ return [ "ERROR", wfMessage( 'antispoof-badtype' )->text() ];
+ }
+
+ if ( strlen( $testName ) == 0 ) {
+ return [ "ERROR", wfMessage( 'antispoof-empty' )->text() ];
+ }
+
+ foreach ( self::stringToList( $testName ) as $char ) {
+ if ( in_array( $char, $wgAntiSpoofBlacklist ) ) {
+ return self::badCharErr( 'antispoof-blacklisted', $char );
+ }
+ }
+
+ // Perform Unicode _compatibility_ decomposition
+ $testName = Validator::toNFKD( $testName );
+ $testChars = self::stringToList( $testName );
+
+ // Be paranoid: check again, just in case Unicode normalization code changes...
+ foreach ( $testChars as $char ) {
+ if ( in_array( $char, $wgAntiSpoofBlacklist ) ) {
+ return self::badCharErr( 'antispoof-blacklisted', $char );
+ }
+ }
+
+ // Check for this: should not happen in any valid Unicode string
+ if ( self::getScriptCode( $testChars[0] ) == "SCRIPT_COMBINING_MARKS" ) {
+ return self::badCharErr( 'antispoof-combining', $testChars[0] );
+ }
+
+ // Strip all combining characters in order to crudely strip accents
+ // Note: NFKD normalization should have decomposed all accented chars earlier
+ $testChars = self::stripScript( $testChars, "SCRIPT_COMBINING_MARKS" );
+
+ $testScripts = array_map( [ 'AntiSpoof', 'getScriptCode' ], $testChars );
+ $unassigned = array_search( "SCRIPT_UNASSIGNED", $testScripts );
+ if ( $unassigned !== false ) {
+ return self::badCharErr( 'antispoof-unassigned', $testChars[$unassigned] );
+ }
+ $deprecated = array_search( "SCRIPT_DEPRECATED", $testScripts );
+ if ( $deprecated !== false ) {
+ return self::badCharErr( 'antispoof-deprecated', $testChars[$deprecated] );
+ }
+ $testScripts = array_unique( $testScripts );
+
+ // We don't mind ASCII punctuation or digits
+ $testScripts = array_diff( $testScripts,
+ [ "SCRIPT_ASCII_PUNCTUATION", "SCRIPT_ASCII_DIGITS" ] );
+
+ if ( !$testScripts ) {
+ return [ "ERROR", wfMessage( 'antispoof-noletters' )->text() ];
+ }
+
+ if ( count( $testScripts ) > 1 && !self::isAllowedScriptCombination( $testScripts ) ) {
+ return [ "ERROR", wfMessage( 'antispoof-mixedscripts' )->text() ];
+ }
+
+ // At this point, we should probably check for BiDi violations if they aren't
+ // caught above...
+
+ // Squeeze out all punctuation chars
+ // TODO: almost the same code occurs twice, refactor into own routine
+ $testChars = self::stripScript( $testChars, "SCRIPT_ASCII_PUNCTUATION" );
+
+ $testName = self::listToString( $testChars );
+
+ // Replace characters in confusables set with equivalence chars
+ $testName = self::normalizeString( $testName );
+
+ // Do very simple sequence processing: "vv" -> "w", "rn" -> "m"...
+ // Not exhaustive, but ups the ante...
+ // Do this _after_ canonicalization: looks weird, but needed for consistency
+ $testName = str_replace( 'VV', 'W', $testName );
+ $testName = str_replace( 'RN', 'M', $testName );
+
+ // Remove all remaining spaces, just in case any have snuck through...
+ $testName = self::hardjoin( explode( " ", $testName ) );
+
+ // Reduce repeated char sequences to single character
+ // BUG: TODO: implement this
+
+ if ( strlen( $testName ) < 1 ) {
+ return [ "ERROR", wfMessage( 'antispoof-tooshort' )->text() ];
+ }
+
+ // Don't ASCIIfy: we assume we are UTF-8 capable on output
+
+ // Prepend version string, for futureproofing if this algorithm changes
+ $testName = "v2:" . $testName;
+
+ // And return the canonical version of the name
+ return [ "OK", $testName ];
+ }
+}
diff --git a/AntiSpoof/CODE_OF_CONDUCT.md b/AntiSpoof/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..d8e5d087
--- /dev/null
+++ b/AntiSpoof/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
diff --git a/AntiSpoof/COPYING b/AntiSpoof/COPYING
new file mode 100644
index 00000000..d159169d
--- /dev/null
+++ b/AntiSpoof/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/AntiSpoof/Gruntfile.js b/AntiSpoof/Gruntfile.js
new file mode 100644
index 00000000..44c7d567
--- /dev/null
+++ b/AntiSpoof/Gruntfile.js
@@ -0,0 +1,25 @@
+/*!
+ * Grunt file
+ *
+ * @package AntiSpoof
+ */
+
+/*jshint node:true */
+module.exports = function ( grunt ) {
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+ grunt.initConfig( {
+ banana: {
+ all: ["i18n/"]
+ },
+ jsonlint: {
+ all: [
+ "**/*.json",
+ "!node_modules/**"
+ ]
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'jsonlint', 'banana' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/AntiSpoof/SpoofUser.php b/AntiSpoof/SpoofUser.php
new file mode 100644
index 00000000..c375658c
--- /dev/null
+++ b/AntiSpoof/SpoofUser.php
@@ -0,0 +1,192 @@
+<?php
+
+use Wikimedia\Rdbms\IDatabase;
+
+class SpoofUser {
+ /** @var bool */
+ private $legal;
+
+ /** @var string */
+ private $name;
+
+ /** @var string */
+ private $normalized;
+
+ /** @var null|string */
+ private $error;
+
+ /**
+ * @param $name string
+ */
+ public function __construct( $name ) {
+ $this->name = strval( $name );
+ list( $ok, $normalized ) = AntiSpoof::checkUnicodeString( $this->name );
+ $this->legal = ( $ok == 'OK' );
+ if ( $this->legal ) {
+ $this->normalized = $normalized;
+ $this->error = null;
+ } else {
+ $this->normalized = null;
+ $this->error = $normalized;
+ }
+ }
+
+ /**
+ * Does the username pass Unicode legality and script-mixing checks?
+ * @return bool
+ */
+ public function isLegal() {
+ return $this->legal;
+ }
+
+ /**
+ * Describe the error.
+ * @return null|string
+ */
+ public function getError() {
+ return $this->error;
+ }
+
+ /**
+ * Get the normalized key form
+ * @return string|null
+ */
+ public function getNormalized() {
+ return $this->normalized;
+ }
+
+ /**
+ * @return string
+ */
+ protected function getTableName() {
+ return 'user';
+ }
+
+ /**
+ * @return string
+ */
+ protected function getUserColumn() {
+ return 'user_name';
+ }
+
+ /**
+ * Does the username pass Unicode legality and script-mixing checks?
+ *
+ * @return array empty if no conflict, or array containing conflicting usernames
+ */
+ public function getConflicts() {
+ $dbr = $this->getDBSlave();
+
+ // Join against the user table to ensure that we skip stray
+ // entries left after an account is renamed or otherwise munged.
+ $spoofedUsers = $dbr->select(
+ [ 'spoofuser', $this->getTableName() ],
+ [ 'su_name' ], // Same thing due to the join. Saves extra variableness
+ [
+ 'su_normalized' => $this->normalized,
+ 'su_name = ' . $this->getUserColumn(),
+ ],
+ __METHOD__,
+ [
+ 'LIMIT' => 5
+ ] );
+
+ $spoofs = [];
+ foreach ( $spoofedUsers as $row ) {
+ array_push( $spoofs, $row->su_name );
+ }
+ return $spoofs;
+ }
+
+ /**
+ * Record the username's normalized form into the database
+ * for later comparison of future names...
+ * @return bool
+ */
+ public function record() {
+ return self::batchRecord( $this->getDBMaster(), [ $this ] );
+ }
+
+ /**
+ * @return array
+ */
+ private function insertFields() {
+ return [
+ 'su_name' => $this->name,
+ 'su_normalized' => $this->normalized,
+ 'su_legal' => $this->legal ? 1 : 0,
+ 'su_error' => $this->error,
+ ];
+ }
+
+ /**
+ * Insert a batch of spoof normalization records into the database.
+ * @param IDatabase $dbw
+ * @param SpoofUser[] $items
+ * @return bool
+ */
+ public static function batchRecord( IDatabase $dbw, $items ) {
+ if ( !count( $items ) ) {
+ return false;
+ }
+ $fields = [];
+ /**
+ * @var $item SpoofUser
+ */
+ foreach ( $items as $item ) {
+ $fields[] = $item->insertFields();
+ }
+ $dbw->replace(
+ 'spoofuser',
+ [ 'su_name' ],
+ $fields,
+ __METHOD__ );
+ return true;
+ }
+
+ /**
+ * @param string $oldName
+ */
+ public function update( $oldName ) {
+ $that = $this;
+ $method = __METHOD__;
+ $dbw = $this->getDBMaster();
+ // Avoid user rename triggered deadlocks
+ $dbw->onTransactionPreCommitOrIdle(
+ function () use ( $dbw, $that, $method, $oldName ) {
+ if ( $that->record() ) {
+ $dbw->delete(
+ 'spoofuser',
+ [ 'su_name' => $oldName ],
+ $method
+ );
+ }
+ }
+ );
+ }
+
+ /**
+ * Remove a user from the spoofuser table
+ */
+ public function remove() {
+ $this->getDBMaster()->delete(
+ 'spoofuser',
+ [ 'su_name' => $this->name ],
+ __METHOD__
+ );
+ }
+
+ /**
+ * @return IDatabase
+ */
+ protected function getDBSlave() {
+ return wfGetDB( DB_REPLICA );
+ }
+
+ /**
+ * @return IDatabase
+ */
+ protected function getDBMaster() {
+ return wfGetDB( DB_MASTER );
+ }
+}
diff --git a/AntiSpoof/api/ApiAntiSpoof.php b/AntiSpoof/api/ApiAntiSpoof.php
new file mode 100644
index 00000000..e7d09d14
--- /dev/null
+++ b/AntiSpoof/api/ApiAntiSpoof.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * API module to check a username against the AntiSpoof normalisation checks
+ *
+ * @ingroup API
+ * @ingroup Extensions
+ */
+class ApiAntiSpoof extends ApiBase {
+
+ public function execute() {
+ $params = $this->extractRequestParams();
+
+ $res = $this->getResult();
+ $res->addValue( null, $this->getModuleName(), [ 'username' => $params['username'] ] );
+
+ $spoof = new SpoofUser( $params['username'] );
+
+ if ( $spoof->isLegal() ) {
+ $normalized = $spoof->getNormalized();
+ $res->addValue( null, $this->getModuleName(), [ 'normalised' => $normalized ] );
+
+ $unfilteredConflicts = $spoof->getConflicts();
+ if ( empty( $unfilteredConflicts ) ) {
+ $res->addValue( null, $this->getModuleName(), [ 'result' => 'pass' ] );
+ } else {
+ $hasSuppressed = false;
+ $conflicts = [];
+ foreach ( $unfilteredConflicts as $conflict ) {
+ if ( !User::newFromName( $conflict )->isHidden() ) {
+ $conflicts[] = $conflict;
+ } else {
+ $hasSuppressed = true;
+ }
+ }
+
+ if ( $hasSuppressed ) {
+ $res->addValue( null, $this->getModuleName(), [ 'suppressed' => 'true' ] );
+ }
+
+ $res->addValue( null, $this->getModuleName(), [ 'result' => 'conflict' ] );
+
+ $res->setIndexedTagName( $conflicts, 'u' );
+ $res->addValue( [ $this->getModuleName() ], 'users', $conflicts );
+ }
+ } else {
+ $error = $spoof->getError();
+ $res->addValue( 'antispoof', 'result', 'error' );
+ $res->addValue( 'antispoof', 'error', $error );
+ }
+ }
+
+ public function getAllowedParams() {
+ return [
+ 'username' => [
+ ApiBase::PARAM_REQUIRED => true,
+ ],
+ ];
+ }
+
+ /**
+ * @see ApiBase::getExamplesMessages()
+ */
+ protected function getExamplesMessages() {
+ return [
+ 'action=antispoof&username=Foo'
+ => 'apihelp-antispoof-example-1',
+ ];
+ }
+}
diff --git a/AntiSpoof/composer.json b/AntiSpoof/composer.json
new file mode 100644
index 00000000..1b78ab67
--- /dev/null
+++ b/AntiSpoof/composer.json
@@ -0,0 +1,19 @@
+{
+ "name": "mediawiki/anti-spoof",
+ "type": "mediawiki-extension",
+ "description": "The AntiSpoof extension is an extension for preventing confusable usernames from being created. It blocks the creation of accounts with mixed-script, confusing and similar usernames.",
+ "homepage": "https://www.mediawiki.org/wiki/Extension:AntiSpoof",
+ "license": "GPL-2.0+",
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "0.9.2",
+ "jakub-onderka/php-console-highlighter": "0.3.2",
+ "mediawiki/mediawiki-codesniffer": "0.12.0"
+ },
+ "scripts": {
+ "fix": "phpcbf",
+ "test": [
+ "parallel-lint . --exclude vendor",
+ "phpcs -p -s"
+ ]
+ }
+}
diff --git a/AntiSpoof/equivset.php b/AntiSpoof/equivset.php
new file mode 100644
index 00000000..24ce2b7f
--- /dev/null
+++ b/AntiSpoof/equivset.php
@@ -0,0 +1,5575 @@
+<?php
+# This file is generated by generateEquivset.php
+# It contains a map of characters, encoded in UTF-8, such that running strtr()
+# on a string with this map will cause confusable characters to be reduced to
+# a canonical representation. The same array is also available in serialized
+# form, in equivset.ser.
+$equivset = array (
+ '$' => 'S',
+ 0 => 'O',
+ 1 => 'I',
+ 3 => 'E',
+ 4 => 'A',
+ 5 => 'S',
+ 6 => 'G',
+ '@' => 'A',
+ 'a' => 'A',
+ 'b' => 'B',
+ 'c' => 'C',
+ 'd' => 'D',
+ 'e' => 'E',
+ 'f' => 'F',
+ 'g' => 'G',
+ 'h' => 'H',
+ 'i' => 'I',
+ 'j' => 'J',
+ 'k' => 'K',
+ 'l' => 'L',
+ 'm' => 'M',
+ 'n' => 'N',
+ 'o' => 'O',
+ 'p' => 'P',
+ 'q' => 'Q',
+ 'r' => 'R',
+ 's' => 'S',
+ 't' => 'T',
+ 'u' => 'U',
+ 'v' => 'V',
+ 'w' => 'W',
+ 'x' => 'X',
+ 'y' => 'Y',
+ 'z' => 'Z',
+ '|' => 'I',
+ '¢' => 'C',
+ '£' => 'L',
+ '®' => 'R',
+ 'À' => 'A',
+ 'Á' => 'A',
+ 'Â' => 'A',
+ 'Ã' => 'A',
+ 'Ä' => 'A',
+ 'Å' => 'A',
+ 'Æ' => 'A',
+ 'Ð' => 'D',
+ 'Ø' => 'O',
+ 'Þ' => 'P',
+ 'ß' => 'B',
+ 'à' => 'A',
+ 'á' => 'A',
+ 'â' => 'A',
+ 'ã' => 'A',
+ 'ä' => 'A',
+ 'å' => 'A',
+ 'æ' => 'A',
+ 'ç' => 'C',
+ 'è' => 'E',
+ 'é' => 'E',
+ 'ê' => 'E',
+ 'ë' => 'E',
+ 'ì' => 'I',
+ 'í' => 'I',
+ 'î' => 'I',
+ 'ï' => 'I',
+ 'ð' => 'D',
+ 'ñ' => 'N',
+ 'ò' => 'O',
+ 'ó' => 'O',
+ 'ô' => 'O',
+ 'õ' => 'O',
+ 'ö' => 'O',
+ 'ø' => 'O',
+ 'ù' => 'U',
+ 'ú' => 'U',
+ 'û' => 'U',
+ 'ü' => 'U',
+ 'ý' => 'Y',
+ 'þ' => 'P',
+ 'ÿ' => 'Y',
+ 'Ā' => 'A',
+ 'ā' => 'A',
+ 'Ă' => 'A',
+ 'ă' => 'A',
+ 'Ą' => 'A',
+ 'ą' => 'A',
+ 'ć' => 'C',
+ 'ĉ' => 'C',
+ 'ċ' => 'C',
+ 'č' => 'C',
+ 'ď' => 'D',
+ 'Đ' => 'D',
+ 'đ' => 'D',
+ 'ē' => 'E',
+ 'ĕ' => 'E',
+ 'ė' => 'E',
+ 'ę' => 'E',
+ 'ě' => 'E',
+ 'ĝ' => 'G',
+ 'ğ' => 'G',
+ 'ġ' => 'G',
+ 'ģ' => 'G',
+ 'ĥ' => 'H',
+ 'Ħ' => 'H',
+ 'ħ' => 'H',
+ 'ĩ' => 'I',
+ 'ī' => 'I',
+ 'ĭ' => 'I',
+ 'į' => 'I',
+ 'ı' => 'I',
+ 'ij' => 'IJ',
+ 'ķ' => 'K',
+ 'ĸ' => 'K',
+ 'Ĺ' => 'L',
+ 'ĺ' => 'L',
+ 'Ļ' => 'L',
+ 'ļ' => 'L',
+ 'Ľ' => 'L',
+ 'ľ' => 'L',
+ 'Ŀ' => 'L',
+ 'ŀ' => 'L',
+ 'Ł' => 'L',
+ 'ł' => 'L',
+ 'ń' => 'N',
+ 'Ņ' => 'N',
+ 'ņ' => 'N',
+ 'ň' => 'N',
+ 'ō' => 'O',
+ 'ŏ' => 'O',
+ 'ő' => 'O',
+ 'œ' => 'Œ',
+ 'Ŕ' => 'R',
+ 'ŕ' => 'R',
+ 'Ŗ' => 'R',
+ 'ŗ' => 'R',
+ 'Ř' => 'R',
+ 'ř' => 'R',
+ 'Ś' => 'S',
+ 'ś' => 'S',
+ 'Ŝ' => 'S',
+ 'ŝ' => 'S',
+ 'Ş' => 'S',
+ 'ş' => 'S',
+ 'Š' => 'S',
+ 'š' => 'S',
+ 'Ţ' => 'T',
+ 'ţ' => 'T',
+ 'Ť' => 'T',
+ 'ť' => 'T',
+ 'Ŧ' => 'T',
+ 'ŧ' => 'T',
+ 'ũ' => 'U',
+ 'ū' => 'U',
+ 'ŭ' => 'U',
+ 'ů' => 'U',
+ 'ű' => 'U',
+ 'ų' => 'U',
+ 'ŵ' => 'W',
+ 'ŷ' => 'Y',
+ 'ź' => 'Z',
+ 'ż' => 'Z',
+ 'ž' => 'Z',
+ 'ƀ' => 'B',
+ 'Ɓ' => 'B',
+ 'Ƃ' => 'B',
+ 'ƃ' => 'B',
+ 'Ƅ' => 'B',
+ 'ƅ' => 'B',
+ 'Ƈ' => 'C',
+ 'ƈ' => 'C',
+ 'Ɖ' => 'D',
+ 'Ɗ' => 'D',
+ 'Ƌ' => 'D',
+ 'ƌ' => 'D',
+ 'Ə' => 'ǝ',
+ 'Ɛ' => 'E',
+ 'Ƒ' => 'F',
+ 'ƒ' => 'F',
+ 'Ɠ' => 'G',
+ 'Ɩ' => 'L',
+ 'Ɨ' => 'L',
+ 'Ƙ' => 'K',
+ 'ƙ' => 'K',
+ 'ƚ' => 'L',
+ 'Ɲ' => 'N',
+ 'ơ' => 'Ơ',
+ 'Ƥ' => 'P',
+ 'ƥ' => 'P',
+ 'Ʀ' => 'R',
+ 'Ƨ' => '2',
+ 'ƨ' => '2',
+ 'ƫ' => 'T',
+ 'Ƭ' => 'T',
+ 'ƭ' => 'T',
+ 'Ʈ' => 'T',
+ 'Ʊ' => 'U',
+ 'Ʋ' => 'U',
+ 'Ƴ' => 'Y',
+ 'ƴ' => 'Y',
+ 'Ƶ' => 'Z',
+ 'ƶ' => 'Z',
+ 'Ʒ' => 'E',
+ 'Ƽ' => 'S',
+ 'ƽ' => 'S',
+ 'ƿ' => 'P',
+ 'ǀ' => 'I',
+ 'ǃ' => 'I',
+ 'DŽ' => 'DZ',
+ 'dž' => 'dz',
+ 'lj' => 'LJ',
+ 'nj' => 'NJ',
+ 'Ǎ' => 'A',
+ 'ǐ' => 'I',
+ 'ǒ' => 'O',
+ 'ǔ' => 'U',
+ 'ǖ' => 'U',
+ 'ǘ' => 'U',
+ 'ǚ' => 'U',
+ 'ǜ' => 'U',
+ 'Ǟ' => 'A',
+ 'ǟ' => 'A',
+ 'ǡ' => 'A',
+ 'Ǥ' => 'G',
+ 'Ǡ' => 'A',
+ 'ǥ' => 'G',
+ 'ǧ' => 'G',
+ 'ǫ' => 'O',
+ 'dz' => 'DZ',
+ 'ǵ' => 'G',
+ 'Ƿ' => 'P',
+ 'Ǻ' => 'A',
+ 'ǻ' => 'A',
+ 'Ǽ' => 'A',
+ 'Ǿ' => 'O',
+ 'ǿ' => 'O',
+ 'Ȁ' => 'A',
+ 'ȁ' => 'A',
+ 'Ȃ' => 'A',
+ 'ȅ' => 'E',
+ 'ȇ' => 'E',
+ 'Ȑ' => 'R',
+ 'ȑ' => 'R',
+ 'Ȓ' => 'R',
+ 'ȓ' => 'R',
+ 'Ț' => 'T',
+ 'ț' => 'T',
+ 'Ȝ' => 'E',
+ 'ȝ' => 'E',
+ 'Ȟ' => 'H',
+ 'Ƞ' => 'N',
+ 'Ȣ' => '8',
+ 'ȣ' => '8',
+ 'Ȥ' => 'Z',
+ 'ȥ' => 'Z',
+ 'Ȧ' => 'A',
+ 'Ȩ' => 'E',
+ 'ȩ' => 'E',
+ 'Ȳ' => 'Y',
+ 'ȳ' => 'Y',
+ 'Ɋ' => 'Q',
+ 'ɑ' => 'A',
+ 'ɓ' => 'B',
+ 'ɖ' => 'D',
+ 'ɗ' => 'D',
+ 'ɘ' => 'ǝ',
+ 'ə' => 'E',
+ 'ɚ' => 'ǝ',
+ 'ɛ' => 'E',
+ 'ɜ' => 'E',
+ 'ɠ' => 'G',
+ 'ɡ' => 'G',
+ 'ɢ' => 'G',
+ 'ɦ' => 'H',
+ 'ɨ' => 'I',
+ 'ɩ' => 'I',
+ 'ɫ' => 'I',
+ 'ɭ' => 'I',
+ 'ɯ' => 'M',
+ 'ɱ' => 'M',
+ 'ɲ' => 'N',
+ 'ɳ' => 'N',
+ 'ɵ' => 'O',
+ 'ɼ' => 'R',
+ 'ɽ' => 'R',
+ 'ʀ' => 'R',
+ 'ʂ' => 'S',
+ 'ʃ' => 'C',
+ 'ʈ' => 'T',
+ 'ʊ' => 'Y',
+ 'ʋ' => 'U',
+ 'ʏ' => 'Y',
+ 'ʐ' => 'Z',
+ 'ʒ' => 'E',
+ 'ʔ' => '?',
+ 'ʘ' => 'O',
+ 'ʙ' => 'B',
+ 'ʜ' => 'H',
+ 'ʠ' => 'Q',
+ 'ʰ' => 'H',
+ 'ʱ' => 'H',
+ 'ʳ' => 'R',
+ 'ʴ' => 'R',
+ 'ʵ' => 'R',
+ 'ʶ' => 'R',
+ 'ʸ' => 'Y',
+ 'Ύ' => 'Y',
+ 'Α' => 'A',
+ 'Β' => 'B',
+ 'Γ' => 'R',
+ 'Ε' => 'E',
+ 'Ζ' => 'Z',
+ 'Η' => 'H',
+ 'Θ' => 'O',
+ 'Ι' => 'I',
+ 'Κ' => 'K',
+ 'Μ' => 'M',
+ 'Ν' => 'N',
+ 'Ο' => 'O',
+ 'Ρ' => 'P',
+ 'Τ' => 'T',
+ 'Υ' => 'Y',
+ 'Φ' => 'ɸ',
+ 'Χ' => 'X',
+ 'ά' => 'A',
+ 'ή' => 'H',
+ 'α' => 'A',
+ 'β' => 'B',
+ 'γ' => 'Y',
+ 'δ' => 'Δ',
+ 'ε' => 'E',
+ 'η' => 'N',
+ 'θ' => 'O',
+ 'ι' => 'I',
+ 'κ' => 'K',
+ 'λ' => 'Λ',
+ 'μ' => 'M',
+ 'ν' => 'N',
+ 'ξ' => 'Ξ',
+ 'ο' => 'O',
+ 'π' => 'Π',
+ 'ρ' => 'P',
+ 'ς' => 'C',
+ 'σ' => 'O',
+ 'τ' => 'T',
+ 'υ' => 'Y',
+ 'φ' => 'ɸ',
+ 'χ' => 'X',
+ 'ψ' => 'Ψ',
+ 'ω' => 'W',
+ 'ϋ' => 'Y',
+ 'ό' => 'O',
+ 'ύ' => 'Y',
+ 'ϒ' => 'Y',
+ 'ϓ' => 'Y',
+ 'ϕ' => 'ɸ',
+ 'Ϝ' => 'F',
+ 'ϝ' => 'F',
+ 'Ϩ' => '2',
+ 'ϩ' => '2',
+ 'ϲ' => 'C',
+ 'ϳ' => 'J',
+ 'ϴ' => 'O',
+ 'Ϲ' => 'C',
+ 'Є' => 'E',
+ 'Ѕ' => 'S',
+ 'І' => 'I',
+ 'Ј' => 'J',
+ 'Ћ' => 'H',
+ 'А' => 'A',
+ 'Б' => 'G',
+ 'В' => 'B',
+ 'Г' => 'R',
+ 'Е' => 'E',
+ 'З' => 'E',
+ 'К' => 'K',
+ 'М' => 'M',
+ 'Н' => 'H',
+ 'О' => 'O',
+ 'П' => 'Π',
+ 'Р' => 'P',
+ 'С' => 'C',
+ 'Т' => 'T',
+ 'У' => 'Y',
+ 'Ф' => 'ɸ',
+ 'Х' => 'X',
+ 'Ч' => 'A',
+ 'Ъ' => 'B',
+ 'Ь' => 'B',
+ 'а' => 'A',
+ 'б' => 'B',
+ 'в' => 'B',
+ 'г' => 'R',
+ 'е' => 'E',
+ 'ж' => 'Ж',
+ 'з' => 'E',
+ 'и' => 'И',
+ 'к' => 'K',
+ 'л' => 'Л',
+ 'м' => 'M',
+ 'н' => 'H',
+ 'о' => 'O',
+ 'п' => 'Π',
+ 'р' => 'P',
+ 'с' => 'C',
+ 'т' => 'T',
+ 'у' => 'Y',
+ 'ф' => 'ɸ',
+ 'х' => 'X',
+ 'ц' => 'U',
+ 'ч' => 'A',
+ 'ъ' => 'B',
+ 'ы' => 'Ы',
+ 'ь' => 'B',
+ 'я' => 'R',
+ 'є' => 'E',
+ 'ѕ' => 'S',
+ 'і' => 'I',
+ 'ї' => 'I',
+ 'ј' => 'J',
+ 'њ' => 'H',
+ 'ћ' => 'H',
+ 'ќ' => 'K',
+ 'ў' => 'Y',
+ 'Ѣ' => 'B',
+ 'ѣ' => 'B',
+ 'Ѳ' => 'O',
+ 'ѳ' => 'O',
+ 'Ѵ' => 'V',
+ 'ѵ' => 'V',
+ 'ѽ' => 'Ѽ',
+ 'Ҋ' => 'И',
+ 'ҋ' => 'И',
+ 'Ҍ' => 'B',
+ 'ҍ' => 'B',
+ 'ґ' => 'Ґ',
+ 'Ғ' => 'F',
+ 'ғ' => 'F',
+ 'Җ' => 'Ж',
+ 'җ' => 'Ж',
+ 'Ҙ' => 'E',
+ 'ҙ' => 'E',
+ 'Қ' => 'K',
+ 'қ' => 'K',
+ 'ҝ' => 'K',
+ 'Ҟ' => 'K',
+ 'ҟ' => 'K',
+ 'ҡ' => 'K',
+ 'Ң' => 'H',
+ 'ң' => 'H',
+ 'Ҫ' => 'C',
+ 'ҫ' => 'C',
+ 'Ҭ' => 'T',
+ 'ҭ' => 'T',
+ 'Ү' => 'Y',
+ 'ү' => 'Y',
+ 'Ұ' => 'Y',
+ 'ұ' => 'Y',
+ 'Ҳ' => 'X',
+ 'ҳ' => 'X',
+ 'Ҷ' => 'Y',
+ 'ҷ' => 'Y',
+ 'Һ' => 'H',
+ 'һ' => 'H',
+ 'ҽ' => 'Ҽ',
+ 'Ҿ' => 'Ҽ',
+ 'ҿ' => 'Ҽ',
+ 'Ӏ' => 'I',
+ 'ӄ' => 'K',
+ 'Ӆ' => 'Л',
+ 'ӆ' => 'Л',
+ 'Ӈ' => 'H',
+ 'ӈ' => 'H',
+ 'Ӊ' => 'H',
+ 'ӊ' => 'H',
+ 'Ӌ' => 'Y',
+ 'ӌ' => 'Y',
+ 'Ӎ' => 'M',
+ 'ӎ' => 'M',
+ 'Ӕ' => 'A',
+ 'ӕ' => 'A',
+ 'Ә' => 'ǝ',
+ 'ә' => 'ǝ',
+ 'Ӡ' => 'E',
+ 'ӡ' => 'E',
+ 'ӧ' => 'O',
+ 'Ө' => 'O',
+ 'ө' => 'O',
+ 'ӫ' => 'O',
+ 'ӯ' => 'Y',
+ 'ӱ' => 'Y',
+ 'ӳ' => 'Y',
+ 'Ԁ' => 'D',
+ 'ԁ' => 'D',
+ 'ԋ' => 'H',
+ 'Ԍ' => 'G',
+ 'ԍ' => 'G',
+ 'Ա' => 'U',
+ 'Բ' => 'բ',
+ 'Գ' => 'Q',
+ 'Դ' => 'դ',
+ 'Ե' => 'ե',
+ 'Զ' => 'զ',
+ 'Է' => 'է',
+ 'Ը' => 'ը',
+ 'Թ' => 'թ',
+ 'Ժ' => 'ժ',
+ 'Ի' => 'ի',
+ 'Լ' => 'լ',
+ 'Խ' => 'խ',
+ 'Ծ' => 'ծ',
+ 'Կ' => 'կ',
+ 'Հ' => 'հ',
+ 'Ձ' => 'ձ',
+ 'Ղ' => 'ղ',
+ 'Ճ' => 'ճ',
+ 'Մ' => 'U',
+ 'Յ' => 'E',
+ 'Ն' => 'ն',
+ 'Շ' => 'շ',
+ 'Ո' => 'ո',
+ 'Չ' => 'չ',
+ 'Պ' => 'պ',
+ 'Ջ' => 'ջ',
+ 'Ռ' => 'ռ',
+ 'Ս' => 'U',
+ 'Վ' => 'վ',
+ 'Տ' => 'տ',
+ 'Ր' => 'ր',
+ 'Ց' => 'ց',
+ 'Ւ' => 'ւ',
+ 'Փ' => 'փ',
+ 'Ք' => 'ք',
+ 'Օ' => 'O',
+ 'Ֆ' => 'ֆ',
+ 'գ' => 'Q',
+ 'զ' => 'Q',
+ 'հ' => 'H',
+ 'յ' => 'J',
+ 'ո' => 'N',
+ 'ռ' => 'N',
+ 'ս' => 'U',
+ 'ց' => 'G',
+ 'ք' => 'P',
+ 'օ' => 'O',
+ '։' => ':',
+ '֜' => '́',
+ '֯' => '̊',
+ 'ֹ' => '̇',
+ 'ׁ' => '̇',
+ 'ׂ' => '̇',
+ '׃' => ':',
+ 'ׄ' => '̇',
+ '׳' => '\'',
+ '״' => '"',
+ 'ع' => 'E',
+ 'ي' => 'ى',
+ 'ُ' => '̓',
+ '٩' => 'A',
+ '٬' => '،',
+ 'ٴ' => 'ٔ',
+ 'ڠ' => 'E',
+ 'ک' => 'ك',
+ 'ڻ' => 'ٹ',
+ 'ھ' => 'ه',
+ 'ہ' => 'ه',
+ 'ی' => 'ى',
+ 'ې' => 'ٻ',
+ 'ە' => 'ه',
+ 'ۧ' => 'ۦ',
+ '۬' => '۟',
+ '۰' => '٠',
+ '۱' => '١',
+ '۲' => '٢',
+ '۳' => '٣',
+ '۷' => '٧',
+ '۸' => '٨',
+ '۹' => 'A',
+ '܂' => '.',
+ '݁' => '̇',
+ '݂' => 'ܼ',
+ '݇' => '́',
+ 'ं' => '̇',
+ '़' => '̣',
+ '॒' => '̠',
+ '॓' => '̀',
+ '॔' => '́',
+ '०' => 'O',
+ '়' => '̣',
+ '০' => 'O',
+ '৪' => '8',
+ '৭' => '9',
+ 'ਂ' => '̇',
+ 'ਃ' => 'ঃ',
+ '਼' => '̣',
+ 'ੋ' => 'ॆ',
+ '੍' => '्',
+ '੦' => 'O',
+ '੧' => '9',
+ '੪' => '8',
+ 'ં' => '̇',
+ '઼' => '̣',
+ 'ઽ' => 'ऽ',
+ 'ુ' => 'ु',
+ 'ૂ' => 'ू',
+ '્' => '्',
+ '૦' => 'O',
+ '૨' => '२',
+ '૩' => '३',
+ '૪' => '४',
+ '૮' => '८',
+ 'ଃ' => '8',
+ '଼' => '̣',
+ '୦' => 'O',
+ '୨' => '9',
+ 'ஂ' => '̊',
+ 'ஜ' => 'ஐ',
+ 'ர' => 'ஈ',
+ 'ா' => 'ஈ',
+ 'ை' => 'ன',
+ '்' => '̇',
+ 'ௗ' => 'ள',
+ '௦' => 'O',
+ '௧' => 'க',
+ '௨' => 'உ',
+ '௪' => 'ச',
+ '௭' => 'எ',
+ '௮' => 'அ',
+ '௰' => 'ய',
+ '௵' => '௳',
+ '௸' => 'ஷ',
+ 'ం' => 'O',
+ 'ః' => 'ঃ',
+ 'ఢ' => 'డ',
+ 'భ' => 'బ',
+ 'ష' => 'వ',
+ '౦' => 'O',
+ 'ಂ' => 'O',
+ 'ಃ' => 'ঃ',
+ 'ಅ' => 'అ',
+ 'ಆ' => 'ఆ',
+ 'ಇ' => 'ఇ',
+ 'ಒ' => 'ఒ',
+ 'ಓ' => 'ఓ',
+ 'ಔ' => 'ఔ',
+ 'ಜ' => 'జ',
+ 'ಞ' => 'ఞ',
+ 'ಣ' => 'ణ',
+ 'ಯ' => 'య',
+ 'ಱ' => 'ఱ',
+ 'ಲ' => 'ల',
+ '೦' => 'O',
+ '೧' => '౧',
+ '೨' => '౨',
+ '೯' => '౯',
+ 'ം' => 'O',
+ 'ഉ' => 'உ',
+ 'ജ' => 'ஐ',
+ 'ഠ' => 'O',
+ 'ണ' => 'ண',
+ 'റ' => 'ര',
+ 'ഴ' => 'ழ',
+ 'ശ' => 'ஶ',
+ 'ി' => 'ி',
+ 'ീ' => 'ி',
+ 'ു' => 'ூ',
+ 'ൂ' => 'ூ',
+ 'ൃ' => 'ூ',
+ 'ൡ' => 'ഞ',
+ 'ฃ' => 'ข',
+ 'ซ' => 'ช',
+ 'ฏ' => 'ฎ',
+ 'ด' => 'ค',
+ 'ต' => 'ค',
+ 'ท' => 'ฑ',
+ 'ม' => 'ฆ',
+ '฿' => 'B',
+ 'ๅ' => 'า',
+ 'ํ' => '̊',
+ '๐' => 'O',
+ 'ຈ' => 'จ',
+ 'ຍ' => 'ย',
+ 'ບ' => 'บ',
+ 'ປ' => 'ป',
+ 'ຝ' => 'ฝ',
+ 'ພ' => 'พ',
+ 'ຟ' => 'ฟ',
+ 'ຸ' => 'ุ',
+ 'ູ' => 'ู',
+ '່' => '่',
+ '້' => '้',
+ '໊' => '๊',
+ '໋' => '๋',
+ 'ໍ' => '̊',
+ '໐' => 'O',
+ '༌' => '་',
+ 'ဝ' => 'O',
+ 'ံ' => '̊',
+ '၀' => 'O',
+ 'ყ' => 'Y',
+ 'ჳ' => 'E',
+ 'Ꭱ' => 'R',
+ 'Ꭵ' => 'I',
+ 'Ꭹ' => 'Y',
+ 'Ꭺ' => 'A',
+ 'Ꭻ' => 'J',
+ 'Ꭼ' => 'E',
+ 'Ꮁ' => 'R',
+ 'Ꮃ' => 'W',
+ 'Ꮇ' => 'M',
+ 'Ꮋ' => 'H',
+ 'Ꮍ' => 'Y',
+ 'Ꮎ' => 'O',
+ 'Ꮐ' => 'G',
+ 'Ꮒ' => 'H',
+ 'Ꮓ' => 'Z',
+ 'Ꮞ' => 'A',
+ 'Ꮟ' => 'B',
+ 'Ꮢ' => 'R',
+ 'Ꮤ' => 'W',
+ 'Ꮥ' => 'S',
+ 'Ꮩ' => 'V',
+ 'Ꮪ' => 'S',
+ 'Ꮮ' => 'L',
+ 'Ꮯ' => 'C',
+ 'Ꮲ' => 'P',
+ 'Ꮶ' => 'K',
+ 'Ꮷ' => 'J',
+ 'Ᏺ' => 'H',
+ 'Ᏻ' => 'G',
+ 'Ᏼ' => 'B',
+ 'ᐃ' => 'Δ',
+ 'ᐧ' => '·',
+ 'ᐯ' => 'V',
+ 'ᑭ' => 'P',
+ 'ᑯ' => 'D',
+ 'ᒍ' => 'J',
+ 'ᒿ' => '2',
+ 'ᓑ' => 'ᐡ',
+ 'ᕁ' => 'X',
+ 'ᕷ' => 'Δ',
+ 'ᕼ' => 'H',
+ 'ᕽ' => 'X',
+ 'ᖇ' => 'R',
+ 'ᖯ' => 'B',
+ 'ᖴ' => 'F',
+ 'ᗅ' => 'A',
+ 'ᗞ' => 'D',
+ 'ᗪ' => 'D',
+ 'ᗯ' => 'W',
+ 'ᗰ' => 'M',
+ 'ᗷ' => 'B',
+ 'ᘂ' => 'ᒐ',
+ 'ᘃ' => 'ᒉ',
+ 'ᘄ' => 'ᓓ',
+ 'ᘇ' => 'ᓚ',
+ 'ᘢ' => 'ᕃ',
+ 'ᘣ' => 'ᕆ',
+ 'ᘤ' => 'ᕊ',
+ 'ᘯ' => 'Ω',
+ 'ᘴ' => 'U',
+ 'ᘵ' => 'Ω',
+ '᙭' => 'X',
+ '᙮' => 'X',
+ 'ᛗ' => 'M',
+ 'ឣ' => 'អ',
+ 'ិ' => 'ิ',
+ 'ី' => 'ี',
+ 'ឹ' => 'ึ',
+ 'ឺ' => 'ื',
+ 'ំ' => '̊',
+ '់' => '่',
+ '៓' => '̊',
+ '។' => 'ฯ',
+ '៕' => '๚',
+ '៙' => '๏',
+ '៚' => '๛',
+ '᠐' => 'O',
+ 'ᢖ' => 'ᡜ',
+ 'ᥙ' => 'U',
+ 'ᴄ' => 'C',
+ 'ᴅ' => 'D',
+ 'ᴆ' => 'D',
+ 'ᴇ' => 'E',
+ 'ᴊ' => 'J',
+ 'ᴋ' => 'K',
+ 'ᴌ' => 'L',
+ 'ᴍ' => 'M',
+ 'ᴎ' => 'N',
+ 'ᴏ' => 'O',
+ 'ᴘ' => 'P',
+ 'ᴛ' => 'T',
+ 'ᴠ' => 'V',
+ 'ᴡ' => 'W',
+ 'ᴢ' => 'Z',
+ 'Ḁ' => 'A',
+ 'ḁ' => 'A',
+ 'ḍ' => 'D',
+ 'ḗ' => 'E',
+ 'ḙ' => 'E',
+ 'ḛ' => 'E',
+ 'ḝ' => 'E',
+ 'ḡ' => 'G',
+ 'ḣ' => 'H',
+ 'ḥ' => 'H',
+ 'ḧ' => 'H',
+ 'ḩ' => 'H',
+ 'ḫ' => 'H',
+ 'ḷ' => 'L',
+ 'ḿ' => 'M',
+ 'ṁ' => 'M',
+ 'ṃ' => 'M',
+ 'ṇ' => 'N',
+ 'Ṕ' => 'P',
+ 'ṕ' => 'P',
+ 'Ṗ' => 'P',
+ 'ṗ' => 'P',
+ 'Ṙ' => 'R',
+ 'ṙ' => 'R',
+ 'Ṛ' => 'R',
+ 'ṛ' => 'R',
+ 'Ṝ' => 'R',
+ 'ṝ' => 'R',
+ 'Ṟ' => 'R',
+ 'ṟ' => 'R',
+ 'ṣ' => 'S',
+ 'ṭ' => 'T',
+ 'ẁ' => 'W',
+ 'ẃ' => 'W',
+ 'ẅ' => 'W',
+ 'ẇ' => 'W',
+ 'ẉ' => 'W',
+ 'ẏ' => 'Y',
+ 'ẙ' => 'Y',
+ 'Ạ' => 'A',
+ 'ạ' => 'A',
+ 'Ả' => 'A',
+ 'ả' => 'A',
+ 'Ấ' => 'A',
+ 'ấ' => 'A',
+ 'Ầ' => 'A',
+ 'ầ' => 'A',
+ 'Ẩ' => 'A',
+ 'ẩ' => 'A',
+ 'Ẫ' => 'A',
+ 'ẫ' => 'A',
+ 'Ậ' => 'A',
+ 'ậ' => 'A',
+ 'Ắ' => 'A',
+ 'ắ' => 'A',
+ 'Ằ' => 'A',
+ 'ằ' => 'A',
+ 'Ẳ' => 'A',
+ 'ẳ' => 'A',
+ 'Ẵ' => 'A',
+ 'ẵ' => 'A',
+ 'Ặ' => 'A',
+ 'ặ' => 'A',
+ 'ẹ' => 'E',
+ 'ẻ' => 'E',
+ 'ẽ' => 'E',
+ 'ế' => 'E',
+ 'ề' => 'E',
+ 'ể' => 'E',
+ 'ễ' => 'E',
+ 'ệ' => 'E',
+ 'ọ' => 'O',
+ 'ỳ' => 'Y',
+ 'ỵ' => 'Y',
+ 'ỷ' => 'Y',
+ 'ỹ' => 'Y',
+ 'ἁ' => 'A',
+ 'ἂ' => 'A',
+ 'ἃ' => 'A',
+ 'ἄ' => 'A',
+ 'ἅ' => 'A',
+ 'ἆ' => 'A',
+ 'ἇ' => 'A',
+ 'ἠ' => 'H',
+ 'ἡ' => 'H',
+ 'ἢ' => 'H',
+ 'ἣ' => 'H',
+ 'ἤ' => 'H',
+ 'ἥ' => 'H',
+ 'ἦ' => 'H',
+ 'ἧ' => 'H',
+ 'ὀ' => 'O',
+ 'ὁ' => 'O',
+ 'ὂ' => 'O',
+ 'ὃ' => 'O',
+ 'ὄ' => 'O',
+ 'ὅ' => 'O',
+ 'ὑ' => 'Y',
+ 'ὓ' => 'Y',
+ 'ὕ' => 'Y',
+ 'ὗ' => 'Y',
+ 'ὰ' => 'A',
+ 'ὴ' => 'H',
+ 'ὸ' => 'O',
+ 'ὺ' => 'Y',
+ 'ᾀ' => 'A',
+ 'ᾁ' => 'A',
+ 'ᾂ' => 'A',
+ 'ᾃ' => 'A',
+ 'ᾄ' => 'A',
+ 'ᾅ' => 'A',
+ 'ᾆ' => 'A',
+ 'ᾇ' => 'A',
+ 'ᾐ' => 'H',
+ 'ᾳ' => 'A',
+ 'ῠ' => 'Y',
+ 'ῡ' => 'Y',
+ 'Ῠ' => 'Y',
+ 'Ὺ' => 'Y',
+ '₣' => 'F',
+ '₤' => 'L',
+ '₥' => 'M',
+ '₦' => 'N',
+ '₧' => 'P',
+ '₩' => 'W',
+ '​' => '',
+ '₷' => 'S',
+ '₸' => 'T',
+ 'ℓ' => 'L',
+ '℧' => 'U',
+ 'ⅆ' => 'D',
+ 'ⅼ' => 'L',
+ 'ⅽ' => 'C',
+ 'ⅾ' => 'D',
+ 'ⅿ' => 'M',
+ 'Ⓐ' => 'A',
+ 'Ⱨ' => 'H',
+ 'Ⲙ' => 'M',
+ 'ⴱ' => 'O',
+ 'ⴹ' => 'E',
+ 'ⵔ' => 'O',
+ 'ꭆ' => 'R',
+ '𐌼' => 'M',
+ '〇' => 'O',
+ 'ヘ' => 'へ',
+ '㑳' => '㑇',
+ '㘚' => '㘎',
+ '㥮' => '㤘',
+ '㩳' => '㧐',
+ '䎛' => '㖈',
+ '䎱' => '䎬',
+ '䐠' => '㬻',
+ '䙡' => '䙌',
+ '䞍' => '䝼',
+ '䦂' => '䥇',
+ '䦶' => '䦛',
+ '䦷' => '䦟',
+ '䲣' => '䱷',
+ '上' => '丄',
+ '下' => '丅',
+ '丐' => '丏',
+ '丗' => '世',
+ '丠' => '丘',
+ '丢' => '丟',
+ '两' => '両',
+ '丨' => 'I',
+ '乆' => '久',
+ '乘' => '乗',
+ '乿' => '乱',
+ '亁' => '乾',
+ '亂' => '乱',
+ '亓' => '丌',
+ '井' => '丼',
+ '亙' => '亘',
+ '亜' => '亚',
+ '亞' => '亚',
+ '亯' => '享',
+ '亰' => '京',
+ '亾' => '亡',
+ '仚' => '仙',
+ '仩' => '丄',
+ '伍' => '五',
+ '佇' => '伫',
+ '佒' => '仰',
+ '佛' => '仏',
+ '你' => '伲',
+ '併' => '並',
+ '侖' => '仑',
+ '価' => '价',
+ '侫' => '佞',
+ '侶' => '侣',
+ '俔' => '伣',
+ '俠' => '侠',
+ '信' => '伩',
+ '俣' => '俁',
+ '俥' => '伡',
+ '俯' => '俛',
+ '倀' => '伥',
+ '倂' => '並',
+ '倅' => '伜',
+ '倆' => '俩',
+ '倈' => '俫',
+ '倉' => '仓',
+ '個' => '个',
+ '們' => '们',
+ '倣' => '仿',
+ '倫' => '伦',
+ '倶' => '俱',
+ '倹' => '俭',
+ '值' => '値',
+ '偉' => '伟',
+ '側' => '侧',
+ '偵' => '侦',
+ '偸' => '偷',
+ '偹' => '俻',
+ '偽' => '伪',
+ '傖' => '伧',
+ '傘' => '伞',
+ '備' => '俻',
+ '傚' => '俲',
+ '傭' => '佣',
+ '傯' => '偬',
+ '傳' => '传',
+ '傴' => '伛',
+ '債' => '债',
+ '傷' => '伤',
+ '傾' => '倾',
+ '僂' => '偻',
+ '僅' => '仅',
+ '僉' => '佥',
+ '僊' => '仙',
+ '僑' => '侨',
+ '僕' => '仆',
+ '僞' => '伪',
+ '僥' => '侥',
+ '僨' => '偾',
+ '僭' => '僣',
+ '價' => '价',
+ '儀' => '仪',
+ '儁' => '俊',
+ '儂' => '侬',
+ '億' => '亿',
+ '儈' => '侩',
+ '儉' => '俭',
+ '儌' => '侥',
+ '儍' => '傻',
+ '儎' => '傤',
+ '儐' => '傧',
+ '儔' => '俦',
+ '儕' => '侪',
+ '儞' => '伲',
+ '償' => '偿',
+ '優' => '优',
+ '儲' => '储',
+ '儵' => '倏',
+ '儷' => '俪',
+ '儺' => '傩',
+ '儻' => '傥',
+ '儼' => '俨',
+ '児' => '儿',
+ '兑' => '兌',
+ '兒' => '儿',
+ '兔' => '兎',
+ '兗' => '兖',
+ '兦' => '亡',
+ '兩' => '両',
+ '兪' => '俞',
+ '其' => '丌',
+ '内' => '內',
+ '册' => '冊',
+ '冒' => '冐',
+ '凈' => '净',
+ '凍' => '冻',
+ '凖' => '准',
+ '凜' => '凛',
+ '凢' => '凡',
+ '凣' => '凡',
+ '凱' => '凯',
+ '凴' => '凭',
+ '凶' => '兇',
+ '凾' => '函',
+ '刂' => '刀',
+ '刄' => '刃',
+ '刋' => '刊',
+ '刪' => '删',
+ '别' => '別',
+ '刱' => '创',
+ '券' => '倦',
+ '刼' => '刦',
+ '刾' => '刺',
+ '剁' => '刴',
+ '剄' => '刭',
+ '則' => '则',
+ '剋' => '克',
+ '剎' => '刹',
+ '剗' => '刬',
+ '剙' => '创',
+ '剚' => '倳',
+ '剛' => '刚',
+ '剣' => '剑',
+ '剤' => '剂',
+ '剥' => '剝',
+ '剮' => '剐',
+ '剰' => '剩',
+ '剴' => '剀',
+ '創' => '创',
+ '剷' => '刬',
+ '劀' => '刮',
+ '劃' => '划',
+ '劄' => '剳',
+ '劇' => '剧',
+ '劉' => '刘',
+ '劊' => '刽',
+ '劋' => '剿',
+ '劌' => '刿',
+ '劍' => '剑',
+ '劑' => '剂',
+ '劒' => '剑',
+ '劔' => '剑',
+ '动' => '働',
+ '劫' => '刦',
+ '労' => '劳',
+ '劵' => '倦',
+ '効' => '俲',
+ '勁' => '劲',
+ '勓' => '劾',
+ '動' => '働',
+ '勗' => '勖',
+ '務' => '务',
+ '勛' => '勋',
+ '勞' => '劳',
+ '勢' => '势',
+ '勦' => '剿',
+ '勧' => '劝',
+ '勩' => '勚',
+ '勱' => '劢',
+ '勲' => '勋',
+ '勳' => '勋',
+ '勵' => '励',
+ '勸' => '劝',
+ '匀' => '勻',
+ '匫' => '匢',
+ '匭' => '匦',
+ '匱' => '匮',
+ '區' => '区',
+ '千' => '仟',
+ '卋' => '世',
+ '协' => '劦',
+ '卐' => '卍',
+ '卒' => '卆',
+ '協' => '劦',
+ '単' => '单',
+ '占' => '佔',
+ '卻' => '却',
+ '卽' => '即',
+ '厙' => '厍',
+ '厛' => '厅',
+ '厠' => '厕',
+ '厤' => '历',
+ '厭' => '厌',
+ '厰' => '厂',
+ '厲' => '厉',
+ '厳' => '严',
+ '厴' => '厣',
+ '参' => '叁',
+ '參' => '叁',
+ '叄' => '叁',
+ '叟' => '叜',
+ '叢' => '丛',
+ '句' => '勾',
+ '同' => '仝',
+ '吴' => '吳',
+ '呂' => '吕',
+ '呅' => '吻',
+ '呉' => '吳',
+ '告' => '吿',
+ '呐' => '吶',
+ '呑' => '吞',
+ '呡' => '吻',
+ '咒' => '呪',
+ '咱' => '偺',
+ '咼' => '呙',
+ '哌' => '呱',
+ '員' => '员',
+ '唄' => '呗',
+ '唖' => '哑',
+ '唚' => '吣',
+ '啓' => '启',
+ '啔' => '启',
+ '啕' => '咷',
+ '啗' => '啖',
+ '啞' => '哑',
+ '啟' => '启',
+ '啢' => '唡',
+ '喆' => '哲',
+ '喎' => '㖞',
+ '喒' => '偺',
+ '喚' => '唤',
+ '喞' => '唧',
+ '喧' => '吅',
+ '喪' => '丧',
+ '喫' => '吃',
+ '喬' => '乔',
+ '單' => '单',
+ '喲' => '哟',
+ '喻' => '喩',
+ '嗆' => '呛',
+ '嗇' => '啬',
+ '嗊' => '唝',
+ '嗎' => '吗',
+ '嗚' => '呜',
+ '嗩' => '唢',
+ '嗬' => '呵',
+ '嗶' => '哔',
+ '嘂' => '叫',
+ '嘆' => '叹',
+ '嘈' => '傮',
+ '嘍' => '喽',
+ '嘑' => '呼',
+ '嘓' => '啯',
+ '嘔' => '呕',
+ '嘖' => '啧',
+ '嘜' => '唛',
+ '嘨' => '啸',
+ '嘩' => '哗',
+ '嘮' => '唠',
+ '嘯' => '啸',
+ '嘰' => '叽',
+ '嘳' => '喟',
+ '嘴' => '咀',
+ '嘵' => '哓',
+ '嘸' => '呒',
+ '嘽' => '啴',
+ '噉' => '啖',
+ '噓' => '嘘',
+ '噕' => '噅',
+ '噝' => '咝',
+ '噠' => '哒',
+ '噥' => '哝',
+ '噦' => '哕',
+ '器' => '噐',
+ '噯' => '嗳',
+ '噲' => '哙',
+ '噴' => '喷',
+ '噸' => '吨',
+ '噾' => '喑',
+ '嚀' => '咛',
+ '嚇' => '吓',
+ '嚌' => '哜',
+ '嚐' => '嘗',
+ '嚔' => '嚏',
+ '嚕' => '噜',
+ '嚙' => '啮',
+ '嚥' => '咽',
+ '嚦' => '呖',
+ '嚨' => '咙',
+ '嚪' => '啖',
+ '嚮' => '向',
+ '嚲' => '亸',
+ '嚳' => '喾',
+ '嚴' => '严',
+ '嚶' => '嘤',
+ '嚻' => '嚣',
+ '嚽' => '啜',
+ '囀' => '啭',
+ '囁' => '嗫',
+ '囂' => '嚣',
+ '囅' => '冁',
+ '囈' => '呓',
+ '囉' => '啰',
+ '囑' => '嘱',
+ '囓' => '啮',
+ '回' => '囘',
+ '団' => '团',
+ '囧' => '冏',
+ '囬' => '囘',
+ '囱' => '囪',
+ '围' => '囲',
+ '国' => '囯',
+ '图' => '図',
+ '圀' => '囯',
+ '圆' => '円',
+ '圇' => '囵',
+ '國' => '囯',
+ '圍' => '囲',
+ '圎' => '円',
+ '圏' => '圈',
+ '園' => '园',
+ '圓' => '円',
+ '圖' => '図',
+ '團' => '团',
+ '圧' => '压',
+ '块' => '凷',
+ '坯' => '坏',
+ '坵' => '丘',
+ '垅' => '垄',
+ '垜' => '垛',
+ '垠' => '圻',
+ '垩' => '圣',
+ '垻' => '坝',
+ '埀' => '垂',
+ '埓' => '埒',
+ '埡' => '垭',
+ '堃' => '坤',
+ '堅' => '坚',
+ '堊' => '圣',
+ '堖' => '垴',
+ '堝' => '埚',
+ '堯' => '垚',
+ '場' => '场',
+ '塊' => '凷',
+ '塏' => '垲',
+ '塒' => '埘',
+ '塗' => '凃',
+ '塚' => '冢',
+ '塢' => '坞',
+ '塤' => '埙',
+ '填' => '塡',
+ '塲' => '场',
+ '塳' => '塜',
+ '塴' => '堋',
+ '塹' => '堑',
+ '墊' => '垫',
+ '墍' => '塈',
+ '墖' => '塔',
+ '墜' => '坠',
+ '增' => '増',
+ '墬' => '地',
+ '墮' => '堕',
+ '墯' => '堕',
+ '墳' => '坟',
+ '墻' => '墙',
+ '墾' => '垦',
+ '壇' => '坛',
+ '壊' => '坏',
+ '壋' => '垱',
+ '壎' => '埙',
+ '壓' => '压',
+ '壖' => '堧',
+ '壘' => '垒',
+ '壙' => '圹',
+ '壚' => '垆',
+ '壞' => '坏',
+ '壟' => '垄',
+ '壠' => '垄',
+ '壢' => '坜',
+ '壧' => '喦',
+ '壨' => '垒',
+ '壩' => '坝',
+ '壪' => '塆',
+ '壯' => '壮',
+ '壱' => '一',
+ '売' => '卖',
+ '壷' => '壶',
+ '壹' => '一',
+ '壺' => '壶',
+ '壼' => '壸',
+ '壿' => '墫',
+ '夀' => '壽',
+ '备' => '俻',
+ '変' => '变',
+ '夘' => '卯',
+ '夛' => '多',
+ '夜' => '亱',
+ '夠' => '够',
+ '夥' => '伙',
+ '夫' => '伕',
+ '夷' => '侇',
+ '夾' => '夹',
+ '奁' => '匳',
+ '奐' => '奂',
+ '奧' => '奥',
+ '奨' => '奖',
+ '奩' => '匳',
+ '奪' => '夺',
+ '奬' => '奖',
+ '奮' => '奋',
+ '奶' => '伲',
+ '妖' => '䚶',
+ '妝' => '妆',
+ '妬' => '妒',
+ '妳' => '伲',
+ '姊' => '姉',
+ '姗' => '姍',
+ '姙' => '妊',
+ '姦' => '奸',
+ '姪' => '侄',
+ '姬' => '姫',
+ '姸' => '妍',
+ '姹' => '奼',
+ '娚' => '喃',
+ '娟' => '姢',
+ '娯' => '娛',
+ '娱' => '娛',
+ '婀' => '娿',
+ '婁' => '娄',
+ '婉' => '倇',
+ '婣' => '姻',
+ '婦' => '妇',
+ '婭' => '娅',
+ '婾' => '偷',
+ '媎' => '姐',
+ '媧' => '娲',
+ '媬' => '保',
+ '媮' => '偷',
+ '媯' => '妫',
+ '媼' => '媪',
+ '媽' => '妈',
+ '嫗' => '妪',
+ '嫵' => '妩',
+ '嫷' => '媠',
+ '嫹' => '媌',
+ '嫺' => '娴',
+ '嫻' => '娴',
+ '嫿' => '婳',
+ '嬀' => '妫',
+ '嬃' => '媭',
+ '嬈' => '娆',
+ '嬋' => '婵',
+ '嬌' => '娇',
+ '嬙' => '嫱',
+ '嬝' => '嫋',
+ '嬡' => '嫒',
+ '嬢' => '娘',
+ '嬪' => '嫔',
+ '嬭' => '伲',
+ '嬰' => '婴',
+ '嬷' => '嬤',
+ '嬸' => '婶',
+ '孃' => '娘',
+ '孌' => '娈',
+ '孫' => '孙',
+ '孵' => '孚',
+ '孶' => '孳',
+ '學' => '学',
+ '孽' => '孼',
+ '孿' => '孪',
+ '宂' => '冗',
+ '安' => '侒',
+ '宏' => '吰',
+ '宜' => '冝',
+ '実' => '实',
+ '宮' => '宫',
+ '家' => '傢',
+ '寃' => '冤',
+ '密' => '宻',
+ '寇' => '冦',
+ '富' => '冨',
+ '寍' => '宁',
+ '寕' => '宁',
+ '寛' => '宽',
+ '寜' => '宁',
+ '寝' => '寑',
+ '寞' => '嗼',
+ '寢' => '寑',
+ '實' => '实',
+ '寧' => '宁',
+ '審' => '审',
+ '寫' => '写',
+ '寬' => '宽',
+ '寱' => '呓',
+ '寳' => '宝',
+ '寵' => '宠',
+ '寶' => '宝',
+ '寿' => '壽',
+ '尅' => '克',
+ '將' => '将',
+ '專' => '专',
+ '尋' => '寻',
+ '對' => '对',
+ '導' => '导',
+ '尓' => '尒',
+ '尔' => '尒',
+ '尘' => '塵',
+ '尚' => '尙',
+ '尝' => '嘗',
+ '尠' => '尟',
+ '尧' => '垚',
+ '尫' => '尪',
+ '尭' => '垚',
+ '尷' => '尴',
+ '尽' => '儘',
+ '局' => '侷',
+ '届' => '屆',
+ '屍' => '尸',
+ '屓' => '屃',
+ '屛' => '屏',
+ '屢' => '屡',
+ '層' => '层',
+ '屨' => '屦',
+ '屬' => '属',
+ '屭' => '屃',
+ '岀' => '出',
+ '岁' => '亗',
+ '岗' => '冈',
+ '岡' => '冈',
+ '岥' => '坡',
+ '岩' => '喦',
+ '岺' => '岭',
+ '峩' => '峨',
+ '峰' => '峯',
+ '峴' => '岘',
+ '島' => '岛',
+ '峽' => '峡',
+ '崈' => '崇',
+ '崋' => '华',
+ '崍' => '崃',
+ '崎' => '埼',
+ '崏' => '岷',
+ '崑' => '崐',
+ '崖' => '崕',
+ '崗' => '冈',
+ '崘' => '仑',
+ '崙' => '仑',
+ '崢' => '峥',
+ '崬' => '岽',
+ '嵇' => '嵆',
+ '嵐' => '岚',
+ '嵒' => '喦',
+ '嵕' => '嵏',
+ '嵳' => '嵯',
+ '嶁' => '嵝',
+ '嶄' => '崭',
+ '嶇' => '岖',
+ '嶋' => '岛',
+ '嶌' => '岛',
+ '嶔' => '嵚',
+ '嶗' => '崂',
+ '嶠' => '峤',
+ '嶢' => '峣',
+ '嶧' => '峄',
+ '嶨' => '峃',
+ '嶩' => '峱',
+ '嶮' => '崄',
+ '嶸' => '嵘',
+ '嶺' => '岭',
+ '嶼' => '屿',
+ '嶽' => '岳',
+ '巋' => '岿',
+ '巌' => '喦',
+ '巒' => '峦',
+ '巓' => '巅',
+ '巔' => '巅',
+ '巖' => '喦',
+ '巣' => '巢',
+ '巰' => '巯',
+ '巵' => '卮',
+ '巻' => '卷',
+ '巽' => '巺',
+ '布' => '佈',
+ '帥' => '帅',
+ '師' => '师',
+ '帯' => '带',
+ '帲' => '帡',
+ '帳' => '帐',
+ '帶' => '带',
+ '幀' => '帧',
+ '幂' => '冪',
+ '幃' => '帏',
+ '幇' => '帮',
+ '幗' => '帼',
+ '幘' => '帻',
+ '幙' => '幕',
+ '幚' => '帮',
+ '幟' => '帜',
+ '幣' => '币',
+ '幤' => '币',
+ '幫' => '帮',
+ '幬' => '帱',
+ '干' => '乾',
+ '并' => '並',
+ '幷' => '並',
+ '幸' => '倖',
+ '幹' => '乾',
+ '幺' => '么',
+ '幾' => '几',
+ '庁' => '厅',
+ '庂' => '仄',
+ '広' => '广',
+ '庅' => '么',
+ '底' => '厎',
+ '店' => '坫',
+ '庞' => '厐',
+ '座' => '坐',
+ '庫' => '库',
+ '庰' => '屏',
+ '庻' => '庶',
+ '庽' => '寓',
+ '庿' => '庙',
+ '廁' => '厕',
+ '廂' => '厢',
+ '廃' => '废',
+ '廄' => '厩',
+ '廈' => '厦',
+ '廉' => '亷',
+ '廎' => '庼',
+ '廏' => '厩',
+ '廐' => '厩',
+ '廗' => '席',
+ '廚' => '厨',
+ '廝' => '厮',
+ '廟' => '庙',
+ '廠' => '厂',
+ '廡' => '庑',
+ '廢' => '废',
+ '廣' => '广',
+ '廪' => '廩',
+ '廬' => '庐',
+ '廰' => '厅',
+ '廳' => '厅',
+ '廵' => '巡',
+ '廻' => '囘',
+ '廼' => '乃',
+ '廽' => '囘',
+ '廿' => '卄',
+ '弌' => '一',
+ '弍' => '二',
+ '弒' => '弑',
+ '弔' => '吊',
+ '弥' => '冞',
+ '弳' => '弪',
+ '張' => '张',
+ '强' => '強',
+ '弾' => '弹',
+ '彂' => '发',
+ '彆' => '別',
+ '彈' => '弹',
+ '彊' => '強',
+ '彌' => '冞',
+ '彍' => '彉',
+ '彎' => '弯',
+ '彑' => '彐',
+ '归' => '帰',
+ '当' => '噹',
+ '录' => '彔',
+ '彙' => '匯',
+ '彚' => '匯',
+ '彜' => '彛',
+ '彝' => '彛',
+ '彞' => '彛',
+ '彠' => '彟',
+ '彦' => '彥',
+ '彬' => '份',
+ '彲' => '彨',
+ '彷' => '仿',
+ '彿' => '仏',
+ '徃' => '往',
+ '很' => '佷',
+ '徊' => '佪',
+ '後' => '后',
+ '徑' => '径',
+ '従' => '从',
+ '從' => '从',
+ '徠' => '徕',
+ '復' => '复',
+ '徬' => '傍',
+ '徭' => '傜',
+ '徴' => '征',
+ '徵' => '征',
+ '德' => '徳',
+ '徹' => '彻',
+ '徺' => '侥',
+ '忈' => '仁',
+ '忖' => '刌',
+ '応' => '应',
+ '念' => '唸',
+ '怐' => '佝',
+ '急' => '忣',
+ '怱' => '匆',
+ '怹' => '他',
+ '恊' => '劦',
+ '恍' => '怳',
+ '恒' => '恆',
+ '恤' => '卹',
+ '恶' => '噁',
+ '悋' => '吝',
+ '悛' => '恂',
+ '悤' => '匆',
+ '悦' => '悅',
+ '悪' => '噁',
+ '悮' => '悞',
+ '悳' => '徳',
+ '悴' => '忰',
+ '悵' => '怅',
+ '悺' => '悹',
+ '悽' => '凄',
+ '惕' => '悐',
+ '惠' => '恵',
+ '惡' => '噁',
+ '惪' => '徳',
+ '惱' => '恼',
+ '惲' => '恽',
+ '惻' => '恻',
+ '愘' => '恪',
+ '愜' => '惬',
+ '愧' => '媿',
+ '愨' => '悫',
+ '愴' => '怆',
+ '愷' => '恺',
+ '愽' => '博',
+ '愾' => '忾',
+ '慂' => '恿',
+ '態' => '态',
+ '慍' => '愠',
+ '慎' => '愼',
+ '慓' => '剽',
+ '慘' => '惨',
+ '慙' => '惭',
+ '慚' => '惭',
+ '慟' => '恸',
+ '慣' => '惯',
+ '慤' => '悫',
+ '慪' => '怄',
+ '慫' => '怂',
+ '慳' => '悭',
+ '慴' => '慑',
+ '慵' => '嫞',
+ '慶' => '庆',
+ '憂' => '忧',
+ '憅' => '恸',
+ '憊' => '惫',
+ '憋' => '別',
+ '憐' => '怜',
+ '憑' => '凭',
+ '憒' => '愦',
+ '憓' => '恵',
+ '憖' => '慭',
+ '憙' => '喜',
+ '憚' => '惮',
+ '憤' => '愤',
+ '憩' => '憇',
+ '憫' => '悯',
+ '憮' => '怃',
+ '憲' => '宪',
+ '憶' => '忆',
+ '憼' => '儆',
+ '懃' => '勤',
+ '懇' => '恳',
+ '應' => '应',
+ '懌' => '怿',
+ '懐' => '怀',
+ '懒' => '嬾',
+ '懔' => '懍',
+ '懟' => '怼',
+ '懣' => '懑',
+ '懧' => '懦',
+ '懨' => '恹',
+ '懲' => '惩',
+ '懶' => '嬾',
+ '懷' => '怀',
+ '懸' => '悬',
+ '懺' => '忏',
+ '懼' => '惧',
+ '懾' => '慑',
+ '戀' => '恋',
+ '戇' => '戆',
+ '戔' => '戋',
+ '戞' => '戛',
+ '戦' => '战',
+ '戧' => '戗',
+ '戬' => '戩',
+ '戯' => '戏',
+ '戰' => '战',
+ '戱' => '戏',
+ '戲' => '戏',
+ '户' => '戶',
+ '戸' => '戶',
+ '戼' => '卯',
+ '戾' => '戻',
+ '扎' => '剳',
+ '执' => '執',
+ '扵' => '于',
+ '抉' => '刔',
+ '抌' => '伔',
+ '报' => '報',
+ '抵' => '扺',
+ '抻' => '伸',
+ '拂' => '払',
+ '拊' => '抚',
+ '拋' => '抛',
+ '拔' => '抜',
+ '拖' => '拕',
+ '拚' => '抃',
+ '拝' => '拜',
+ '拟' => '儗',
+ '拡' => '扩',
+ '择' => '択',
+ '拿' => '拏',
+ '挆' => '挅',
+ '挙' => '举',
+ '挾' => '挟',
+ '捌' => '八',
+ '捍' => '扞',
+ '捙' => '拽',
+ '捝' => '挩',
+ '捫' => '扪',
+ '据' => '拠',
+ '捲' => '卷',
+ '捴' => '总',
+ '掃' => '扫',
+ '掄' => '抡',
+ '掆' => '㧏',
+ '掗' => '挜',
+ '掙' => '挣',
+ '掛' => '挂',
+ '掬' => '匊',
+ '揀' => '拣',
+ '揚' => '扬',
+ '換' => '换',
+ '揫' => '揪',
+ '揭' => '掲',
+ '揮' => '挥',
+ '援' => '愋',
+ '揷' => '插',
+ '揹' => '偝',
+ '搃' => '总',
+ '搄' => '揯',
+ '搅' => '捁',
+ '搆' => '冓',
+ '搉' => '㩁',
+ '搋' => '扠',
+ '損' => '损',
+ '搖' => '揺',
+ '搗' => '捣',
+ '搜' => '捜',
+ '搤' => '扼',
+ '搥' => '捶',
+ '搧' => '扇',
+ '搭' => '搨',
+ '搯' => '掏',
+ '搵' => '揾',
+ '搶' => '抢',
+ '搹' => '扼',
+ '摀' => '捂',
+ '摃' => '扛',
+ '摄' => '挕',
+ '摅' => '捈',
+ '摇' => '揺',
+ '摑' => '掴',
+ '摜' => '掼',
+ '摟' => '搂',
+ '摠' => '总',
+ '摭' => '拓',
+ '摯' => '挚',
+ '摳' => '抠',
+ '摶' => '抟',
+ '摺' => '折',
+ '摻' => '掺',
+ '摼' => '挳',
+ '撃' => '击',
+ '撅' => '掘',
+ '撈' => '捞',
+ '撏' => '挦',
+ '撑' => '撐',
+ '撓' => '挠',
+ '撘' => '搨',
+ '撚' => '捻',
+ '撟' => '挢',
+ '撣' => '掸',
+ '撥' => '拨',
+ '撦' => '扯',
+ '撫' => '抚',
+ '撲' => '扑',
+ '撳' => '揿',
+ '撹' => '捁',
+ '撻' => '挞',
+ '撾' => '挝',
+ '撿' => '捡',
+ '擀' => '扞',
+ '擁' => '拥',
+ '擄' => '掳',
+ '擇' => '択',
+ '擊' => '击',
+ '擋' => '挡',
+ '擓' => '㧟',
+ '擔' => '担',
+ '據' => '拠',
+ '擠' => '挤',
+ '擣' => '捣',
+ '擧' => '举',
+ '擫' => '擪',
+ '擬' => '儗',
+ '擯' => '摈',
+ '擰' => '拧',
+ '擱' => '搁',
+ '擲' => '掷',
+ '擴' => '扩',
+ '擷' => '撷',
+ '擺' => '摆',
+ '擻' => '擞',
+ '擼' => '撸',
+ '擾' => '扰',
+ '攄' => '捈',
+ '攆' => '撵',
+ '攏' => '拢',
+ '攒' => '攅',
+ '攔' => '拦',
+ '攖' => '撄',
+ '攙' => '搀',
+ '攛' => '撺',
+ '攜' => '携',
+ '攝' => '挕',
+ '攢' => '攅',
+ '攣' => '挛',
+ '攤' => '摊',
+ '攪' => '捁',
+ '攬' => '揽',
+ '支' => '搘',
+ '攴' => '扑',
+ '收' => '収',
+ '敆' => '合',
+ '效' => '俲',
+ '敍' => '叙',
+ '敓' => '夺',
+ '敘' => '叙',
+ '教' => '敎',
+ '敪' => '敠',
+ '敯' => '愍',
+ '敵' => '敌',
+ '敷' => '尃',
+ '數' => '数',
+ '敻' => '夐',
+ '斂' => '敛',
+ '斅' => '敩',
+ '斆' => '敩',
+ '斈' => '学',
+ '斉' => '亝',
+ '斎' => '斋',
+ '斔' => '庾',
+ '斕' => '斓',
+ '斖' => '亹',
+ '斞' => '庾',
+ '斬' => '斩',
+ '斷' => '断',
+ '於' => '于',
+ '旍' => '旌',
+ '旗' => '旂',
+ '旣' => '既',
+ '旨' => '恉',
+ '旮' => '旭',
+ '昄' => '反',
+ '昆' => '崐',
+ '昇' => '升',
+ '昚' => '愼',
+ '昦' => '昊',
+ '昰' => '是',
+ '時' => '时',
+ '晄' => '晃',
+ '晋' => '晉',
+ '晜' => '崐',
+ '晝' => '昼',
+ '晣' => '䀿',
+ '晩' => '晚',
+ '暁' => '晓',
+ '暈' => '晕',
+ '暉' => '晖',
+ '暎' => '映',
+ '暗' => '晻',
+ '暘' => '旸',
+ '暦' => '历',
+ '暫' => '暂',
+ '暱' => '昵',
+ '暸' => '了',
+ '曁' => '暨',
+ '曄' => '晔',
+ '曅' => '晔',
+ '曆' => '历',
+ '曇' => '昙',
+ '曉' => '晓',
+ '曊' => '昲',
+ '曏' => '向',
+ '曖' => '暧',
+ '曠' => '旷',
+ '曡' => '叠',
+ '曨' => '昽',
+ '曬' => '晒',
+ '曵' => '曳',
+ '曶' => '㫚',
+ '書' => '书',
+ '曺' => '曹',
+ '會' => '会',
+ '朗' => '朖',
+ '期' => '朞',
+ '朢' => '望',
+ '本' => '夲',
+ '札' => '剳',
+ '术' => '朮',
+ '朶' => '朵',
+ '朿' => '刺',
+ '杇' => '圬',
+ '来' => '來',
+ '杰' => '傑',
+ '東' => '东',
+ '枀' => '松',
+ '构' => '冓',
+ '枇' => '朼',
+ '枴' => '拐',
+ '枾' => '杮',
+ '柰' => '奈',
+ '査' => '查',
+ '柾' => '柩',
+ '柿' => '杮',
+ '栅' => '柵',
+ '栆' => '枣',
+ '标' => '墂',
+ '树' => '尌',
+ '栔' => '契',
+ '栗' => '慄',
+ '校' => '挍',
+ '栢' => '柏',
+ '桒' => '桑',
+ '桮' => '杯',
+ '桼' => '柒',
+ '桿' => '杆',
+ '梓' => '杍',
+ '梔' => '栀',
+ '梘' => '枧',
+ '條' => '条',
+ '梟' => '枭',
+ '梦' => '夢',
+ '棁' => '梲',
+ '棄' => '弃',
+ '棋' => '棊',
+ '棖' => '枨',
+ '棗' => '枣',
+ '棟' => '栋',
+ '棡' => '㭎',
+ '棧' => '栈',
+ '棲' => '栖',
+ '棶' => '梾',
+ '棹' => '桌',
+ '椏' => '桠',
+ '検' => '检',
+ '椭' => '撱',
+ '椶' => '棕',
+ '椹' => '枮',
+ '楂' => '查',
+ '楊' => '杨',
+ '楑' => '揆',
+ '楓' => '枫',
+ '楕' => '撱',
+ '楚' => '椘',
+ '楠' => '枏',
+ '楨' => '桢',
+ '業' => '业',
+ '楳' => '梅',
+ '極' => '极',
+ '楽' => '乐',
+ '榆' => '楡',
+ '榔' => '桹',
+ '榤' => '桀',
+ '榦' => '乾',
+ '榨' => '搾',
+ '榪' => '杩',
+ '榮' => '栄',
+ '榲' => '榅',
+ '榷' => '㩁',
+ '榿' => '桤',
+ '槅' => '核',
+ '構' => '冓',
+ '槍' => '枪',
+ '槓' => '杠',
+ '様' => '样',
+ '槙' => '槇',
+ '槚' => '榎',
+ '槟' => '梹',
+ '槤' => '梿',
+ '槧' => '椠',
+ '槨' => '椁',
+ '槪' => '概',
+ '槳' => '桨',
+ '槼' => '椝',
+ '樁' => '桩',
+ '樂' => '乐',
+ '樅' => '枞',
+ '樑' => '梁',
+ '樓' => '楼',
+ '標' => '墂',
+ '樛' => '朻',
+ '樞' => '枢',
+ '樣' => '样',
+ '樧' => '榝',
+ '権' => '权',
+ '樳' => '桪',
+ '樸' => '朴',
+ '樹' => '尌',
+ '樺' => '桦',
+ '樼' => '榛',
+ '樽' => '墫',
+ '樿' => '椫',
+ '橇' => '桥',
+ '橈' => '桡',
+ '橋' => '桥',
+ '橕' => '樘',
+ '機' => '机',
+ '橢' => '撱',
+ '橫' => '横',
+ '橹' => '樐',
+ '檅' => '槥',
+ '檇' => '槜',
+ '檉' => '柽',
+ '檔' => '档',
+ '檘' => '枰',
+ '檚' => '椘',
+ '檜' => '桧',
+ '檟' => '榎',
+ '檢' => '检',
+ '檣' => '樯',
+ '檩' => '檁',
+ '檮' => '梼',
+ '檯' => '台',
+ '檳' => '梹',
+ '檸' => '柠',
+ '檻' => '槛',
+ '檼' => '檃',
+ '櫂' => '桌',
+ '櫃' => '柜',
+ '櫓' => '樐',
+ '櫚' => '榈',
+ '櫛' => '栉',
+ '櫝' => '椟',
+ '櫞' => '橼',
+ '櫟' => '栎',
+ '櫥' => '橱',
+ '櫧' => '槠',
+ '櫨' => '栌',
+ '櫪' => '枥',
+ '櫫' => '橥',
+ '櫬' => '榇',
+ '櫳' => '栊',
+ '櫸' => '榉',
+ '櫻' => '樱',
+ '櫽' => '檃',
+ '欄' => '栏',
+ '欉' => '丛',
+ '權' => '权',
+ '欏' => '椤',
+ '欒' => '栾',
+ '欖' => '榄',
+ '欗' => '栏',
+ '欞' => '棂',
+ '欢' => '懽',
+ '欲' => '慾',
+ '欳' => '喟',
+ '欶' => '嗽',
+ '歎' => '叹',
+ '歐' => '欧',
+ '歓' => '懽',
+ '歕' => '喷',
+ '歛' => '敛',
+ '歟' => '欤',
+ '歡' => '懽',
+ '歧' => '岐',
+ '歩' => '步',
+ '歲' => '亗',
+ '歳' => '亗',
+ '歴' => '历',
+ '歷' => '历',
+ '歸' => '帰',
+ '歺' => '歹',
+ '殀' => '夭',
+ '殁' => '歿',
+ '殘' => '残',
+ '殞' => '殒',
+ '殤' => '殇',
+ '殨' => '㱮',
+ '殫' => '殚',
+ '殭' => '僵',
+ '殮' => '殓',
+ '殯' => '殡',
+ '殲' => '歼',
+ '殳' => '杸',
+ '殷' => '慇',
+ '殺' => '杀',
+ '殻' => '壳',
+ '殼' => '壳',
+ '毁' => '毀',
+ '毃' => '敲',
+ '毆' => '殴',
+ '毉' => '医',
+ '每' => '毎',
+ '毘' => '毗',
+ '毙' => '斃',
+ '毻' => '毤',
+ '毿' => '毵',
+ '氈' => '毡',
+ '氌' => '氇',
+ '氣' => '气',
+ '氫' => '氢',
+ '氬' => '氩',
+ '氳' => '氲',
+ '氷' => '冰',
+ '汇' => '匯',
+ '汎' => '氾',
+ '汚' => '汙',
+ '污' => '汙',
+ '汰' => '汏',
+ '決' => '决',
+ '沉' => '沈',
+ '沍' => '冱',
+ '沖' => '冲',
+ '沛' => '伂',
+ '没' => '沒',
+ '沲' => '沱',
+ '況' => '况',
+ '泛' => '氾',
+ '泭' => '桴',
+ '泺' => '泊',
+ '泽' => '沢',
+ '洌' => '冽',
+ '洍' => '汜',
+ '洢' => '伊',
+ '洩' => '泄',
+ '洯' => '洁',
+ '洶' => '汹',
+ '洽' => '冾',
+ '派' => '泒',
+ '浄' => '净',
+ '浏' => '嚠',
+ '浒' => '汻',
+ '浹' => '浃',
+ '涂' => '凃',
+ '涇' => '泾',
+ '涙' => '泪',
+ '涚' => '涗',
+ '涼' => '凉',
+ '淒' => '凄',
+ '淓' => '汸',
+ '淗' => '泦',
+ '淚' => '泪',
+ '淛' => '浙',
+ '淣' => '倪',
+ '淨' => '净',
+ '淩' => '凌',
+ '淪' => '沦',
+ '淫' => '婬',
+ '淶' => '涞',
+ '淸' => '凊',
+ '淺' => '浅',
+ '清' => '凊',
+ '済' => '济',
+ '渉' => '涉',
+ '渊' => '淵',
+ '渋' => '涩',
+ '渌' => '淥',
+ '渐' => '巉',
+ '渕' => '淵',
+ '渖' => '沈',
+ '渙' => '涣',
+ '減' => '减',
+ '渢' => '沨',
+ '渦' => '涡',
+ '渫' => '泄',
+ '測' => '测',
+ '渴' => '渇',
+ '渾' => '浑',
+ '湇' => '湆',
+ '湊' => '凑',
+ '湞' => '浈',
+ '湧' => '涌',
+ '湯' => '汤',
+ '溈' => '沩',
+ '源' => '厵',
+ '準' => '准',
+ '溙' => '汏',
+ '溝' => '沟',
+ '溫' => '温',
+ '溮' => '浉',
+ '溯' => '泝',
+ '溳' => '涢',
+ '溺' => '尿',
+ '溼' => '湿',
+ '滄' => '沧',
+ '滊' => '汽',
+ '滌' => '涤',
+ '滙' => '匯',
+ '满' => '満',
+ '滨' => '浜',
+ '滬' => '沪',
+ '滯' => '滞',
+ '滲' => '渗',
+ '滷' => '卤',
+ '滸' => '汻',
+ '滻' => '浐',
+ '滾' => '滚',
+ '滿' => '満',
+ '漁' => '渔',
+ '漅' => '巢',
+ '漆' => '柒',
+ '漊' => '溇',
+ '漑' => '溉',
+ '漚' => '沤',
+ '漢' => '汉',
+ '漣' => '涟',
+ '漥' => '洼',
+ '漧' => '乾',
+ '漬' => '渍',
+ '漲' => '涨',
+ '漵' => '溆',
+ '漸' => '巉',
+ '漿' => '浆',
+ '潀' => '漎',
+ '潃' => '滫',
+ '潄' => '漱',
+ '潑' => '泼',
+ '潔' => '洁',
+ '潙' => '沩',
+ '潜' => '潛',
+ '潤' => '润',
+ '潧' => '溱',
+ '潨' => '漎',
+ '潯' => '浔',
+ '潰' => '溃',
+ '潷' => '滗',
+ '潿' => '涠',
+ '澀' => '涩',
+ '澁' => '涩',
+ '澄' => '澂',
+ '澆' => '浇',
+ '澇' => '涝',
+ '澑' => '溜',
+ '澔' => '浩',
+ '澗' => '涧',
+ '澙' => '潟',
+ '澠' => '渑',
+ '澣' => '浣',
+ '澤' => '沢',
+ '澦' => '滪',
+ '澩' => '泶',
+ '澪' => '泠',
+ '澫' => '漫',
+ '澮' => '浍',
+ '澱' => '淀',
+ '澹' => '淡',
+ '澾' => '㳠',
+ '濁' => '浊',
+ '濃' => '浓',
+ '濄' => '涡',
+ '濇' => '涩',
+ '濔' => '沵',
+ '濕' => '湿',
+ '濘' => '泞',
+ '濚' => '溁',
+ '濛' => '懞',
+ '濜' => '浕',
+ '濟' => '济',
+ '濤' => '涛',
+ '濫' => '滥',
+ '濬' => '浚',
+ '濰' => '潍',
+ '濱' => '浜',
+ '濳' => '潛',
+ '濺' => '溅',
+ '濼' => '泊',
+ '濾' => '滤',
+ '瀁' => '漾',
+ '瀂' => '澛',
+ '瀅' => '滢',
+ '瀆' => '渎',
+ '瀇' => '汪',
+ '瀉' => '泻',
+ '瀋' => '沈',
+ '瀏' => '嚠',
+ '瀒' => '涩',
+ '瀕' => '濒',
+ '瀘' => '泸',
+ '瀝' => '沥',
+ '瀟' => '潇',
+ '瀠' => '潆',
+ '瀢' => '濻',
+ '瀦' => '潴',
+ '瀧' => '泷',
+ '瀨' => '濑',
+ '瀬' => '濑',
+ '瀰' => '冞',
+ '瀲' => '潋',
+ '瀾' => '澜',
+ '灁' => '淵',
+ '灃' => '沣',
+ '灄' => '滠',
+ '灌' => '潅',
+ '灑' => '洒',
+ '灔' => '滟',
+ '灕' => '漓',
+ '灘' => '滩',
+ '灝' => '灏',
+ '灣' => '湾',
+ '灤' => '滦',
+ '灧' => '滟',
+ '灩' => '滟',
+ '灭' => '滅',
+ '灮' => '光',
+ '灾' => '災',
+ '炔' => '炅',
+ '炕' => '匟',
+ '炚' => '光',
+ '炤' => '曌',
+ '炰' => '炮',
+ '炳' => '昺',
+ '点' => '奌',
+ '為' => '为',
+ '烏' => '乌',
+ '烖' => '災',
+ '烘' => '灴',
+ '烡' => '光',
+ '烱' => '炯',
+ '烴' => '烃',
+ '烺' => '朖',
+ '焕' => '烉',
+ '焚' => '炃',
+ '無' => '无',
+ '焭' => '惸',
+ '煉' => '炼',
+ '煒' => '炜',
+ '煖' => '暖',
+ '煙' => '烟',
+ '煡' => '烬',
+ '煢' => '惸',
+ '煥' => '烉',
+ '照' => '曌',
+ '煩' => '烦',
+ '煬' => '炀',
+ '煮' => '煑',
+ '熅' => '煴',
+ '熗' => '炝',
+ '熙' => '熈',
+ '熱' => '热',
+ '熺' => '熹',
+ '熾' => '炽',
+ '燁' => '烨',
+ '燄' => '焰',
+ '燇' => '焌',
+ '燈' => '灯',
+ '燉' => '炖',
+ '燒' => '烧',
+ '燗' => '烂',
+ '燙' => '烫',
+ '燛' => '煚',
+ '燜' => '焖',
+ '營' => '営',
+ '燥' => '煰',
+ '燦' => '灿',
+ '燭' => '烛',
+ '燰' => '煨',
+ '燴' => '烩',
+ '燷' => '燣',
+ '燻' => '熏',
+ '燼' => '烬',
+ '燾' => '焘',
+ '燿' => '曜',
+ '爍' => '烁',
+ '爐' => '炉',
+ '爔' => '燨',
+ '爛' => '烂',
+ '爦' => '爁',
+ '爧' => '燯',
+ '爭' => '争',
+ '爱' => '愛',
+ '爲' => '为',
+ '爺' => '爷',
+ '爼' => '俎',
+ '爽' => '慡',
+ '爾' => '尒',
+ '爿' => '丬',
+ '牀' => '床',
+ '牆' => '墙',
+ '牓' => '榜',
+ '牘' => '牍',
+ '牚' => '撐',
+ '牠' => '它',
+ '牦' => '氂',
+ '牴' => '扺',
+ '牽' => '牵',
+ '犂' => '犁',
+ '犇' => '奔',
+ '犛' => '氂',
+ '犢' => '犊',
+ '犧' => '牺',
+ '狀' => '状',
+ '狅' => '狂',
+ '狆' => '仲',
+ '狫' => '佬',
+ '狹' => '狭',
+ '狽' => '狈',
+ '猒' => '厌',
+ '猙' => '狰',
+ '猶' => '犹',
+ '猻' => '狲',
+ '猾' => '狯',
+ '獁' => '犸',
+ '獃' => '呆',
+ '獄' => '狱',
+ '獅' => '狮',
+ '獉' => '榛',
+ '獎' => '奖',
+ '獞' => '僮',
+ '獧' => '狷',
+ '獨' => '独',
+ '獪' => '狯',
+ '獫' => '猃',
+ '獮' => '狝',
+ '獰' => '狞',
+ '獵' => '猎',
+ '獷' => '犷',
+ '獸' => '兽',
+ '獺' => '獭',
+ '獻' => '献',
+ '獼' => '猕',
+ '玀' => '猡',
+ '玁' => '猃',
+ '玅' => '妙',
+ '玆' => '兹',
+ '珉' => '玟',
+ '珎' => '珍',
+ '珪' => '圭',
+ '珮' => '佩',
+ '現' => '现',
+ '球' => '毬',
+ '琝' => '玟',
+ '琱' => '彫',
+ '琿' => '珲',
+ '瑅' => '珶',
+ '瑋' => '玮',
+ '瑒' => '玚',
+ '瑣' => '琐',
+ '瑪' => '玛',
+ '瑯' => '琅',
+ '瑲' => '玱',
+ '瑶' => '瑤',
+ '璃' => '琍',
+ '璇' => '琁',
+ '璉' => '琏',
+ '璗' => '玚',
+ '璚' => '琼',
+ '璡' => '琎',
+ '璣' => '玑',
+ '璦' => '瑷',
+ '璫' => '珰',
+ '環' => '环',
+ '璵' => '玙',
+ '璸' => '瑸',
+ '璽' => '玺',
+ '璿' => '琁',
+ '瓊' => '琼',
+ '瓏' => '珑',
+ '瓔' => '璎',
+ '瓚' => '瓒',
+ '瓡' => '執',
+ '甁' => '瓶',
+ '甆' => '瓷',
+ '甌' => '瓯',
+ '甕' => '瓮',
+ '甖' => '甇',
+ '甜' => '甛',
+ '甞' => '嘗',
+ '產' => '产',
+ '産' => '产',
+ '甦' => '囌',
+ '町' => '圢',
+ '甿' => '氓',
+ '畅' => '暢',
+ '畆' => '亩',
+ '界' => '堺',
+ '畍' => '堺',
+ '畎' => '甽',
+ '畏' => '愄',
+ '留' => '畄',
+ '畝' => '亩',
+ '畢' => '毕',
+ '畧' => '略',
+ '畫' => '画',
+ '畭' => '畬',
+ '畮' => '亩',
+ '異' => '异',
+ '畲' => '畬',
+ '畵' => '画',
+ '當' => '噹',
+ '畽' => '墥',
+ '疃' => '墥',
+ '疇' => '畴',
+ '疉' => '叠',
+ '疊' => '叠',
+ '疋' => '匹',
+ '痌' => '恫',
+ '痖' => '哑',
+ '痙' => '痉',
+ '痱' => '疿',
+ '痲' => '淋',
+ '痳' => '淋',
+ '痵' => '悸',
+ '痹' => '疪',
+ '痺' => '疪',
+ '瘂' => '哑',
+ '瘉' => '愈',
+ '瘋' => '疯',
+ '瘍' => '疡',
+ '瘓' => '痪',
+ '瘖' => '喑',
+ '瘞' => '瘗',
+ '瘡' => '疮',
+ '瘣' => '坏',
+ '瘧' => '疟',
+ '瘮' => '瘆',
+ '瘲' => '疭',
+ '瘺' => '瘘',
+ '瘻' => '瘘',
+ '瘽' => '勤',
+ '療' => '疗',
+ '癆' => '痨',
+ '癇' => '痫',
+ '癈' => '废',
+ '癉' => '瘅',
+ '癒' => '愈',
+ '癘' => '疠',
+ '癝' => '癛',
+ '癟' => '瘪',
+ '癡' => '痴',
+ '癢' => '痒',
+ '癤' => '疖',
+ '癥' => '症',
+ '癧' => '疬',
+ '癩' => '癞',
+ '癫' => '瘨',
+ '癬' => '癣',
+ '癭' => '瘿',
+ '癮' => '瘾',
+ '癰' => '痈',
+ '癱' => '瘫',
+ '癲' => '瘨',
+ '發' => '发',
+ '皂' => '皁',
+ '皈' => '帰',
+ '皐' => '皋',
+ '皓' => '暠',
+ '皖' => '晥',
+ '皚' => '皑',
+ '皜' => '暠',
+ '皦' => '皎',
+ '皰' => '疱',
+ '皸' => '皲',
+ '皺' => '皱',
+ '皼' => '皷',
+ '盃' => '杯',
+ '盅' => '冲',
+ '盍' => '盇',
+ '盏' => '琖',
+ '盐' => '塩',
+ '盘' => '洀',
+ '盜' => '盗',
+ '盞' => '琖',
+ '盡' => '儘',
+ '監' => '监',
+ '盤' => '洀',
+ '盧' => '卢',
+ '盪' => '潒',
+ '盭' => '戻',
+ '盳' => '盲',
+ '眘' => '愼',
+ '真' => '眞',
+ '眾' => '众',
+ '睏' => '困',
+ '睜' => '睁',
+ '睞' => '睐',
+ '睠' => '眷',
+ '睾' => '睪',
+ '睿' => '叡',
+ '瞅' => '偢',
+ '瞇' => '眯',
+ '瞘' => '眍',
+ '瞜' => '䁖',
+ '瞞' => '瞒',
+ '瞬' => '瞚',
+ '瞭' => '了',
+ '瞶' => '瞆',
+ '瞼' => '睑',
+ '矇' => '懞',
+ '矏' => '矈',
+ '矓' => '眬',
+ '矙' => '瞰',
+ '矚' => '瞩',
+ '矩' => '榘',
+ '矯' => '矫',
+ '研' => '揅',
+ '砫' => '柱',
+ '砲' => '炮',
+ '硃' => '朱',
+ '硏' => '揅',
+ '硜' => '硁',
+ '硤' => '硖',
+ '硨' => '砗',
+ '硬' => '峺',
+ '确' => '塙',
+ '硯' => '砚',
+ '碁' => '棊',
+ '碇' => '椗',
+ '碎' => '砕',
+ '碕' => '埼',
+ '碞' => '喦',
+ '碢' => '砣',
+ '碨' => '硙',
+ '碩' => '硕',
+ '碪' => '砧',
+ '碭' => '砀',
+ '碯' => '瑙',
+ '碰' => '掽',
+ '碱' => '硷',
+ '碸' => '砜',
+ '確' => '塙',
+ '碻' => '塙',
+ '碼' => '码',
+ '磆' => '滑',
+ '磑' => '硙',
+ '磚' => '砖',
+ '磟' => '碌',
+ '磠' => '硵',
+ '磣' => '碜',
+ '磥' => '磊',
+ '磧' => '碛',
+ '磯' => '矶',
+ '磷' => '燐',
+ '磽' => '硗',
+ '礄' => '硚',
+ '礆' => '硷',
+ '礎' => '础',
+ '礙' => '碍',
+ '礝' => '碝',
+ '礦' => '矿',
+ '礪' => '砺',
+ '礫' => '砾',
+ '礬' => '矾',
+ '礭' => '塙',
+ '礮' => '炮',
+ '礱' => '砻',
+ '礸' => '礤',
+ '礹' => '喦',
+ '祅' => '䚶',
+ '祌' => '冲',
+ '祡' => '柴',
+ '祣' => '旅',
+ '祩' => '祝',
+ '禀' => '廩',
+ '禄' => '祿',
+ '禍' => '祸',
+ '禎' => '祯',
+ '禕' => '祎',
+ '禡' => '祃',
+ '禥' => '祺',
+ '禦' => '御',
+ '禪' => '禅',
+ '禮' => '礼',
+ '禰' => '祢',
+ '禱' => '祷',
+ '禴' => '礿',
+ '私' => '厶',
+ '秃' => '禿',
+ '秊' => '年',
+ '秖' => '祇',
+ '秘' => '祕',
+ '称' => '偁',
+ '稀' => '希',
+ '稈' => '秆',
+ '税' => '稅',
+ '稜' => '棱',
+ '稟' => '廩',
+ '稭' => '秸',
+ '種' => '种',
+ '稱' => '偁',
+ '稻' => '稲',
+ '稽' => '乩',
+ '稿' => '稾',
+ '穇' => '䅟',
+ '穉' => '稚',
+ '穋' => '稑',
+ '穌' => '稣',
+ '積' => '积',
+ '穐' => '秋',
+ '穗' => '穂',
+ '穟' => '穂',
+ '穠' => '秾',
+ '穡' => '穑',
+ '穢' => '秽',
+ '穩' => '稳',
+ '穫' => '獲',
+ '穭' => '穞',
+ '穴' => '岤',
+ '穵' => '挖',
+ '穻' => '宇',
+ '窗' => '窓',
+ '窨' => '堷',
+ '窩' => '窝',
+ '窪' => '洼',
+ '窭' => '寠',
+ '窮' => '穷',
+ '窯' => '窑',
+ '窰' => '窑',
+ '窵' => '窎',
+ '窶' => '寠',
+ '窺' => '窥',
+ '竄' => '窜',
+ '竅' => '窍',
+ '竇' => '窦',
+ '竈' => '灶',
+ '竊' => '窃',
+ '竒' => '奇',
+ '竝' => '並',
+ '竢' => '俟',
+ '竤' => '竑',
+ '竪' => '竖',
+ '競' => '竞',
+ '竸' => '竞',
+ '笁' => '竺',
+ '笆' => '巴',
+ '笑' => '咲',
+ '笶' => '矢',
+ '笺' => '牋',
+ '筆' => '笔',
+ '筇' => '笻',
+ '筊' => '笅',
+ '筋' => '斤',
+ '筍' => '笋',
+ '答' => '畣',
+ '筞' => '策',
+ '筧' => '笕',
+ '筩' => '筒',
+ '筭' => '祘',
+ '筰' => '笮',
+ '筴' => '策',
+ '筿' => '筱',
+ '箇' => '个',
+ '箋' => '牋',
+ '箎' => '竾',
+ '箏' => '筝',
+ '算' => '祘',
+ '箚' => '剳',
+ '箝' => '拑',
+ '箠' => '棰',
+ '管' => '筦',
+ '築' => '筑',
+ '篋' => '箧',
+ '篔' => '筼',
+ '篛' => '箬',
+ '篠' => '筱',
+ '篤' => '笃',
+ '篩' => '筛',
+ '篪' => '竾',
+ '篭' => '笼',
+ '篱' => '筣',
+ '篲' => '彗',
+ '篳' => '筚',
+ '篴' => '笛',
+ '簀' => '箦',
+ '簆' => '筘',
+ '簈' => '箳',
+ '簍' => '篓',
+ '簒' => '篡',
+ '簘' => '箫',
+ '簞' => '箪',
+ '簡' => '简',
+ '簣' => '篑',
+ '簫' => '箫',
+ '簷' => '檐',
+ '簹' => '筜',
+ '簼' => '篝',
+ '簽' => '签',
+ '簾' => '帘',
+ '籃' => '篮',
+ '籉' => '台',
+ '籌' => '筹',
+ '籖' => '签',
+ '籘' => '籐',
+ '籙' => '箓',
+ '籛' => '篯',
+ '籜' => '箨',
+ '籞' => '篽',
+ '籟' => '籁',
+ '籠' => '笼',
+ '籤' => '签',
+ '籩' => '笾',
+ '籪' => '簖',
+ '籬' => '筣',
+ '籮' => '箩',
+ '籲' => '吁',
+ '籵' => '番',
+ '籼' => '秈',
+ '粢' => '秶',
+ '粵' => '粤',
+ '粹' => '粋',
+ '粺' => '稗',
+ '糅' => '粈',
+ '糈' => '稰',
+ '糉' => '粽',
+ '糜' => '爢',
+ '糝' => '糁',
+ '糞' => '粪',
+ '糠' => '穅',
+ '糧' => '粮',
+ '糭' => '粽',
+ '糰' => '团',
+ '糲' => '粝',
+ '糴' => '籴',
+ '糵' => '糱',
+ '糶' => '粜',
+ '糸' => '丝',
+ '糹' => '丝',
+ '系' => '係',
+ '糾' => '糺',
+ '紙' => '帋',
+ '素' => '榡',
+ '紥' => '剳',
+ '紬' => '䌷',
+ '紮' => '剳',
+ '絃' => '弦',
+ '絏' => '紲',
+ '絖' => '絋',
+ '絨' => '毧',
+ '絫' => '累',
+ '絲' => '丝',
+ '絶' => '絕',
+ '絼' => '紖',
+ '綍' => '紼',
+ '綑' => '捆',
+ '經' => '経',
+ '綢' => '䌷',
+ '綮' => '棨',
+ '綵' => '彩',
+ '緊' => '紧',
+ '緌' => '綏',
+ '総' => '总',
+ '緑' => '綠',
+ '緖' => '緒',
+ '線' => '綫',
+ '縁' => '緣',
+ '縂' => '总',
+ '縆' => '緪',
+ '縍' => '帮',
+ '縕' => '緼',
+ '縚' => '絛',
+ '縣' => '县',
+ '縧' => '絛',
+ '縮' => '摍',
+ '縱' => '縦',
+ '縴' => '孅',
+ '縶' => '絷',
+ '總' => '总',
+ '績' => '勣',
+ '繁' => '緐',
+ '繃' => '綳',
+ '繍' => '綉',
+ '繖' => '伞',
+ '繡' => '綉',
+ '繢' => '絵',
+ '繦' => '繈',
+ '繩' => '縄',
+ '繪' => '絵',
+ '繫' => '係',
+ '繼' => '継',
+ '纊' => '絋',
+ '纍' => '累',
+ '纎' => '孅',
+ '纒' => '纏',
+ '纔' => '才',
+ '纖' => '孅',
+ '纘' => '纉',
+ '纟' => '丝',
+ '纠' => '糺',
+ '纡' => '紆',
+ '红' => '紅',
+ '纣' => '紂',
+ '纤' => '孅',
+ '纥' => '紇',
+ '约' => '約',
+ '级' => '級',
+ '纨' => '紈',
+ '纩' => '絋',
+ '纪' => '紀',
+ '纫' => '紉',
+ '纬' => '緯',
+ '纭' => '紜',
+ '纮' => '紘',
+ '纯' => '純',
+ '纰' => '紕',
+ '纱' => '紗',
+ '纲' => '綱',
+ '纳' => '納',
+ '纴' => '紝',
+ '纵' => '縦',
+ '纶' => '綸',
+ '纷' => '紛',
+ '纸' => '帋',
+ '纹' => '紋',
+ '纺' => '紡',
+ '纻' => '紵',
+ '纼' => '紖',
+ '纽' => '紐',
+ '纾' => '紓',
+ '线' => '綫',
+ '绀' => '紺',
+ '绁' => '紲',
+ '绂' => '紱',
+ '练' => '練',
+ '组' => '組',
+ '绅' => '紳',
+ '细' => '細',
+ '织' => '織',
+ '终' => '終',
+ '绉' => '縐',
+ '绊' => '絆',
+ '绋' => '紼',
+ '绌' => '絀',
+ '绍' => '紹',
+ '绎' => '繹',
+ '经' => '経',
+ '绐' => '紿',
+ '绑' => '綁',
+ '绒' => '毧',
+ '结' => '結',
+ '绔' => '絝',
+ '绕' => '繞',
+ '绖' => '絰',
+ '绗' => '絎',
+ '绘' => '絵',
+ '给' => '給',
+ '绚' => '絢',
+ '绛' => '絳',
+ '络' => '絡',
+ '绝' => '絕',
+ '绞' => '絞',
+ '统' => '統',
+ '绠' => '綆',
+ '绡' => '綃',
+ '绢' => '絹',
+ '绣' => '綉',
+ '绤' => '綌',
+ '绥' => '綏',
+ '绦' => '絛',
+ '继' => '継',
+ '绨' => '綈',
+ '绩' => '勣',
+ '绪' => '緒',
+ '绫' => '綾',
+ '续' => '續',
+ '绮' => '綺',
+ '绯' => '緋',
+ '绰' => '綽',
+ '绱' => '緔',
+ '绲' => '緄',
+ '绳' => '縄',
+ '维' => '維',
+ '绵' => '綿',
+ '绶' => '綬',
+ '绷' => '綳',
+ '绸' => '䌷',
+ '绹' => '綯',
+ '绺' => '綹',
+ '绻' => '綣',
+ '综' => '綜',
+ '绽' => '綻',
+ '绾' => '綰',
+ '绿' => '綠',
+ '缀' => '綴',
+ '缁' => '緇',
+ '缂' => '緙',
+ '缃' => '緗',
+ '缄' => '緘',
+ '缅' => '緬',
+ '缆' => '纜',
+ '缇' => '緹',
+ '缈' => '緲',
+ '缉' => '緝',
+ '缊' => '緼',
+ '缋' => '絵',
+ '缌' => '緦',
+ '缍' => '綞',
+ '缎' => '緞',
+ '缏' => '緶',
+ '缐' => '綫',
+ '缑' => '緱',
+ '缒' => '縋',
+ '缓' => '緩',
+ '缔' => '締',
+ '缕' => '縷',
+ '编' => '編',
+ '缗' => '緡',
+ '缘' => '緣',
+ '缙' => '縉',
+ '缚' => '縛',
+ '缛' => '縟',
+ '缜' => '縝',
+ '缝' => '縫',
+ '缞' => '縗',
+ '缟' => '縞',
+ '缠' => '纏',
+ '缡' => '縭',
+ '缢' => '縊',
+ '缣' => '縑',
+ '缤' => '繽',
+ '缥' => '縹',
+ '缦' => '縵',
+ '缧' => '縲',
+ '缨' => '纓',
+ '缩' => '摍',
+ '缪' => '繆',
+ '缫' => '繅',
+ '缬' => '纈',
+ '缭' => '繚',
+ '缮' => '繕',
+ '缯' => '繒',
+ '缰' => '繮',
+ '缱' => '繾',
+ '缲' => '繰',
+ '缳' => '繯',
+ '缴' => '繳',
+ '缵' => '纉',
+ '缷' => '卸',
+ '缸' => '堈',
+ '缾' => '瓶',
+ '罂' => '甇',
+ '罃' => '甇',
+ '罇' => '墫',
+ '罈' => '坛',
+ '罋' => '瓮',
+ '罌' => '甇',
+ '罎' => '坛',
+ '罏' => '垆',
+ '网' => '網',
+ '罣' => '挂',
+ '罦' => '罘',
+ '置' => '寘',
+ '罰' => '罚',
+ '罵' => '傌',
+ '罷' => '罢',
+ '罸' => '罚',
+ '罼' => '毕',
+ '羀' => '罶',
+ '羂' => '罥',
+ '羃' => '冪',
+ '羅' => '罗',
+ '羆' => '罴',
+ '羇' => '羁',
+ '羈' => '羁',
+ '美' => '媺',
+ '羛' => '义',
+ '羝' => '扺',
+ '羢' => '毧',
+ '群' => '羣',
+ '羥' => '羟',
+ '羨' => '羡',
+ '義' => '义',
+ '羹' => '羮',
+ '翅' => '翄',
+ '習' => '习',
+ '翠' => '翆',
+ '翢' => '纛',
+ '翨' => '翄',
+ '翬' => '翚',
+ '翵' => '翭',
+ '翶' => '翱',
+ '翹' => '翘',
+ '翺' => '翱',
+ '翻' => '繙',
+ '翽' => '翙',
+ '耀' => '曜',
+ '耂' => '老',
+ '考' => '攷',
+ '耈' => '耇',
+ '耉' => '耇',
+ '耑' => '端',
+ '耗' => '秏',
+ '耘' => '秐',
+ '耝' => '刞',
+ '耞' => '枷',
+ '耤' => '借',
+ '耬' => '耧',
+ '耮' => '耢',
+ '耰' => '櫌',
+ '耻' => '恥',
+ '聖' => '圣',
+ '聟' => '婿',
+ '聨' => '联',
+ '聪' => '聡',
+ '聫' => '联',
+ '聮' => '联',
+ '聯' => '联',
+ '聰' => '聡',
+ '聲' => '声',
+ '聳' => '耸',
+ '聴' => '听',
+ '聵' => '聩',
+ '聶' => '聂',
+ '職' => '职',
+ '聹' => '聍',
+ '聼' => '听',
+ '聽' => '听',
+ '聾' => '聋',
+ '肀' => '聿',
+ '肃' => '粛',
+ '肅' => '粛',
+ '肆' => '四',
+ '肉' => '宍',
+ '肛' => '疘',
+ '肣' => '函',
+ '肦' => '朌',
+ '肻' => '肯',
+ '胄' => '冑',
+ '胇' => '肺',
+ '胊' => '朐',
+ '背' => '偝',
+ '胐' => '朏',
+ '胑' => '肢',
+ '胜' => '勝',
+ '胥' => '縃',
+ '胧' => '朧',
+ '胳' => '肐',
+ '胶' => '㬵',
+ '胸' => '胷',
+ '脁' => '朓',
+ '脅' => '胁',
+ '脇' => '胁',
+ '脉' => '脈',
+ '脛' => '胫',
+ '脣' => '唇',
+ '脧' => '朘',
+ '脩' => '修',
+ '脱' => '脫',
+ '脹' => '胀',
+ '腁' => '胼',
+ '腆' => '倎',
+ '腎' => '肾',
+ '腖' => '胨',
+ '腠' => '傶',
+ '腡' => '脶',
+ '腦' => '脑',
+ '腫' => '肿',
+ '腳' => '脚',
+ '腸' => '肠',
+ '膃' => '腽',
+ '膆' => '嗉',
+ '膌' => '瘠',
+ '膓' => '肠',
+ '膕' => '腘',
+ '膚' => '肤',
+ '膞' => '䏝',
+ '膠' => '㬵',
+ '膧' => '朣',
+ '膩' => '腻',
+ '膬' => '脆',
+ '膻' => '羶',
+ '膽' => '胆',
+ '膾' => '脍',
+ '膿' => '脓',
+ '臆' => '肊',
+ '臈' => '腊',
+ '臉' => '脸',
+ '臍' => '脐',
+ '臏' => '膑',
+ '臕' => '膘',
+ '臘' => '腊',
+ '臙' => '胭',
+ '臚' => '胪',
+ '臟' => '脏',
+ '臠' => '脔',
+ '臢' => '臜',
+ '臥' => '卧',
+ '臨' => '临',
+ '臭' => '殠',
+ '臮' => '暨',
+ '致' => '緻',
+ '臺' => '台',
+ '舀' => '抭',
+ '舄' => '舃',
+ '與' => '与',
+ '興' => '兴',
+ '舉' => '举',
+ '舊' => '旧',
+ '舍' => '捨',
+ '舎' => '捨',
+ '舣' => '檥',
+ '舩' => '舡',
+ '航' => '桁',
+ '舵' => '柁',
+ '船' => '舡',
+ '艊' => '舶',
+ '艐' => '屆',
+ '艙' => '舱',
+ '艣' => '樐',
+ '艤' => '檥',
+ '艦' => '舰',
+ '艪' => '樐',
+ '艫' => '舻',
+ '艱' => '艰',
+ '艶' => '艳',
+ '艷' => '艳',
+ '艺' => '兿',
+ '节' => '節',
+ '芈' => '羋',
+ '芒' => '笀',
+ '芻' => '刍',
+ '苅' => '刈',
+ '苏' => '囌',
+ '苕' => '芀',
+ '苟' => '芶',
+ '苦' => '瘔',
+ '苧' => '苎',
+ '英' => '偀',
+ '范' => '範',
+ '茆' => '茅',
+ '茔' => '塋',
+ '茕' => '惸',
+ '茧' => '繭',
+ '茫' => '汒',
+ '茲' => '兹',
+ '荅' => '畣',
+ '草' => '艸',
+ '荊' => '荆',
+ '荔' => '茘',
+ '荘' => '庄',
+ '荡' => '潒',
+ '荣' => '栄',
+ '荥' => '滎',
+ '荦' => '犖',
+ '荧' => '熒',
+ '荫' => '廕',
+ '荳' => '梪',
+ '莊' => '庄',
+ '莕' => '荇',
+ '莖' => '茎',
+ '莢' => '荚',
+ '莧' => '苋',
+ '获' => '獲',
+ '莹' => '瑩',
+ '莽' => '茻',
+ '菇' => '苽',
+ '菋' => '苿',
+ '菏' => '渮',
+ '菓' => '果',
+ '菔' => '卜',
+ '菫' => '堇',
+ '華' => '华',
+ '菰' => '苽',
+ '菴' => '庵',
+ '菷' => '帚',
+ '菸' => '烟',
+ '萅' => '春',
+ '萇' => '苌',
+ '萊' => '莱',
+ '萎' => '荽',
+ '萕' => '荠',
+ '营' => '営',
+ '萦' => '縈',
+ '萬' => '万',
+ '萲' => '萱',
+ '萴' => '荝',
+ '萵' => '莴',
+ '葅' => '菹',
+ '葉' => '叶',
+ '葌' => '菅',
+ '葒' => '荭',
+ '著' => '着',
+ '葠' => '叁',
+ '葢' => '盖',
+ '葤' => '荮',
+ '葦' => '苇',
+ '葧' => '荸',
+ '葬' => '塟',
+ '葮' => '椴',
+ '葯' => '药',
+ '葷' => '荤',
+ '蒓' => '莼',
+ '蒔' => '莳',
+ '蒙' => '懞',
+ '蒞' => '莅',
+ '蒼' => '苍',
+ '蓀' => '荪',
+ '蓆' => '席',
+ '蓋' => '盖',
+ '蓑' => '簑',
+ '蓡' => '叁',
+ '蓮' => '莲',
+ '蓯' => '苁',
+ '蓳' => '堇',
+ '蓴' => '莼',
+ '蓺' => '兿',
+ '蓽' => '荜',
+ '蔆' => '菱',
+ '蔇' => '暨',
+ '蔉' => '蓘',
+ '蔍' => '粗',
+ '蔒' => '荤',
+ '蔔' => '卜',
+ '蔞' => '蒌',
+ '蔣' => '蒋',
+ '蔥' => '葱',
+ '蔦' => '茑',
+ '蔭' => '廕',
+ '蔮' => '帼',
+ '蔱' => '榝',
+ '蔴' => '淋',
+ '蔿' => '蒍',
+ '蕁' => '荨',
+ '蕄' => '萌',
+ '蕆' => '蒇',
+ '蕊' => '橤',
+ '蕋' => '橤',
+ '蕎' => '荞',
+ '蕒' => '荬',
+ '蕓' => '芸',
+ '蕕' => '莸',
+ '蕘' => '荛',
+ '蕚' => '萼',
+ '蕢' => '蒉',
+ '蕩' => '潒',
+ '蕪' => '芜',
+ '蕫' => '董',
+ '蕭' => '萧',
+ '蕱' => '稍',
+ '蕷' => '蓣',
+ '薀' => '蕰',
+ '薈' => '荟',
+ '薉' => '秽',
+ '薊' => '蓟',
+ '薌' => '芗',
+ '薎' => '蔑',
+ '薑' => '姜',
+ '薔' => '蔷',
+ '薘' => '荙',
+ '薙' => '剃',
+ '薞' => '蕵',
+ '薟' => '莶',
+ '薦' => '荐',
+ '薩' => '萨',
+ '薬' => '药',
+ '薮' => '籔',
+ '薰' => '薫',
+ '薺' => '荠',
+ '藂' => '丛',
+ '藉' => '借',
+ '藍' => '蓝',
+ '藎' => '荩',
+ '藏' => '蔵',
+ '藕' => '蕅',
+ '藜' => '蔾',
+ '藝' => '兿',
+ '藡' => '荻',
+ '藤' => '籐',
+ '藥' => '药',
+ '藩' => '籓',
+ '藪' => '籔',
+ '藭' => '䓖',
+ '藴' => '蕴',
+ '藶' => '苈',
+ '藷' => '薯',
+ '藸' => '蕏',
+ '藹' => '蔼',
+ '藺' => '蔺',
+ '藽' => '榇',
+ '蘀' => '萚',
+ '蘂' => '橤',
+ '蘄' => '蕲',
+ '蘆' => '芦',
+ '蘇' => '囌',
+ '蘊' => '蕴',
+ '蘋' => '苹',
+ '蘓' => '囌',
+ '蘔' => '蘏',
+ '蘖' => '櫱',
+ '蘗' => '檗',
+ '蘚' => '藓',
+ '蘜' => '菊',
+ '蘞' => '蔹',
+ '蘢' => '茏',
+ '蘤' => '花',
+ '蘭' => '兰',
+ '蘯' => '潒',
+ '蘺' => '蓠',
+ '蘽' => '櫐',
+ '蘿' => '萝',
+ '虁' => '蘷',
+ '虑' => '慮',
+ '處' => '处',
+ '虖' => '呼',
+ '虛' => '虚',
+ '虜' => '虏',
+ '號' => '号',
+ '虣' => '暴',
+ '虧' => '亏',
+ '虯' => '虬',
+ '虺' => '蘬',
+ '蚌' => '硥',
+ '蚘' => '痐',
+ '蚳' => '蚔',
+ '蛌' => '蛄',
+ '蛔' => '痐',
+ '蛬' => '蛩',
+ '蛺' => '蛱',
+ '蜄' => '蜃',
+ '蜆' => '蚬',
+ '蜒' => '蜑',
+ '蜕' => '蛻',
+ '蜖' => '痐',
+ '蜗' => '瘑',
+ '蜙' => '蚣',
+ '蜹' => '蚋',
+ '蜺' => '蛪',
+ '蝕' => '蚀',
+ '蝟' => '猬',
+ '蝦' => '虾',
+ '蝨' => '虱',
+ '蝯' => '猿',
+ '蝳' => '玳',
+ '蝶' => '蜨',
+ '蝸' => '瘑',
+ '螂' => '蜋',
+ '螄' => '蛳',
+ '螘' => '蚁',
+ '螞' => '蚂',
+ '螡' => '蚊',
+ '螢' => '萤',
+ '螳' => '螗',
+ '螻' => '蝼',
+ '螿' => '螀',
+ '蟁' => '蚊',
+ '蟄' => '蛰',
+ '蟇' => '蟆',
+ '蟈' => '蝈',
+ '蟎' => '螨',
+ '蟣' => '虮',
+ '蟬' => '蝉',
+ '蟯' => '蛲',
+ '蟲' => '虫',
+ '蟶' => '蛏',
+ '蟻' => '蚁',
+ '蠁' => '蚃',
+ '蠅' => '蝇',
+ '蠆' => '虿',
+ '蠍' => '蝎',
+ '蠎' => '蟒',
+ '蠏' => '蟹',
+ '蠐' => '蛴',
+ '蠑' => '蝾',
+ '蠔' => '蚝',
+ '蠕' => '蝡',
+ '蠟' => '蜡',
+ '蠢' => '惷',
+ '蠣' => '蛎',
+ '蠨' => '蟏',
+ '蠩' => '蝫',
+ '蠫' => '劙',
+ '蠱' => '蛊',
+ '蠶' => '蚕',
+ '蠹' => '蠧',
+ '蠻' => '蛮',
+ '蠼' => '蠷',
+ '衄' => '衂',
+ '衆' => '众',
+ '衊' => '蔑',
+ '術' => '朮',
+ '衔' => '啣',
+ '衕' => '仝',
+ '衖' => '弄',
+ '衚' => '胡',
+ '衛' => '卫',
+ '衝' => '冲',
+ '衞' => '卫',
+ '衩' => '紁',
+ '衮' => '緷',
+ '衶' => '冲',
+ '衹' => '只',
+ '袅' => '嫋',
+ '袈' => '毠',
+ '袍' => '袌',
+ '袘' => '衪',
+ '袞' => '緷',
+ '袟' => '帙',
+ '裊' => '嫋',
+ '裌' => '夹',
+ '裕' => '袬',
+ '裙' => '帬',
+ '補' => '补',
+ '裝' => '装',
+ '裠' => '帬',
+ '裡' => '裏',
+ '裤' => '袴',
+ '裵' => '裴',
+ '裸' => '臝',
+ '製' => '制',
+ '褀' => '帺',
+ '褁' => '裹',
+ '複' => '复',
+ '褊' => '惼',
+ '褌' => '裈',
+ '褎' => '袖',
+ '褔' => '副',
+ '褘' => '袆',
+ '褞' => '緼',
+ '褢' => '怀',
+ '褭' => '嫋',
+ '褱' => '怀',
+ '褲' => '袴',
+ '褳' => '裢',
+ '褴' => '繿',
+ '褵' => '縭',
+ '褸' => '褛',
+ '褻' => '亵',
+ '襃' => '褒',
+ '襇' => '裥',
+ '襉' => '裥',
+ '襏' => '袯',
+ '襕' => '幱',
+ '襖' => '袄',
+ '襝' => '裣',
+ '襠' => '裆',
+ '襢' => '袒',
+ '襤' => '繿',
+ '襪' => '袜',
+ '襬' => '摆',
+ '襯' => '衬',
+ '襲' => '袭',
+ '襴' => '幱',
+ '覀' => '襾',
+ '覆' => '复',
+ '覈' => '核',
+ '覉' => '羁',
+ '覊' => '羁',
+ '規' => '椝',
+ '覕' => '瞥',
+ '覚' => '斍',
+ '覜' => '眺',
+ '覝' => '亷',
+ '親' => '亲',
+ '観' => '覌',
+ '覸' => '覵',
+ '覺' => '斍',
+ '覽' => '覧',
+ '觀' => '覌',
+ '见' => '見',
+ '观' => '覌',
+ '觃' => '覎',
+ '规' => '椝',
+ '觅' => '覓',
+ '视' => '視',
+ '觇' => '覘',
+ '览' => '覧',
+ '觉' => '斍',
+ '觊' => '覬',
+ '觋' => '覡',
+ '觌' => '覿',
+ '觍' => '覥',
+ '觎' => '覦',
+ '觏' => '覯',
+ '觐' => '覲',
+ '觑' => '覷',
+ '觔' => '斤',
+ '觕' => '粗',
+ '觙' => '伋',
+ '觝' => '扺',
+ '觧' => '解',
+ '觲' => '觪',
+ '觴' => '觞',
+ '觶' => '觯',
+ '觸' => '触',
+ '觾' => '燕',
+ '訁' => '言',
+ '託' => '托',
+ '訞' => '䚶',
+ '訢' => '䜣',
+ '訧' => '尤',
+ '訩' => '哅',
+ '訴' => '愬',
+ '訶' => '呵',
+ '註' => '注',
+ '訿' => '訾',
+ '詆' => '呧',
+ '詠' => '咏',
+ '詧' => '察',
+ '詫' => '侘',
+ '詻' => '咯',
+ '詽' => '訮',
+ '誇' => '夸',
+ '誋' => '忌',
+ '誌' => '志',
+ '誒' => '欸',
+ '誖' => '悖',
+ '誤' => '悞',
+ '説' => '說',
+ '誾' => '訚',
+ '諄' => '訰',
+ '諅' => '忌',
+ '諙' => '話',
+ '諠' => '吅',
+ '諫' => '諌',
+ '諮' => '咨',
+ '諵' => '喃',
+ '謄' => '誊',
+ '謕' => '啼',
+ '謚' => '諡',
+ '謡' => '謠',
+ '謪' => '商',
+ '謯' => '詛',
+ '謶' => '庶',
+ '謼' => '呼',
+ '譁' => '哗',
+ '譆' => '嘻',
+ '譈' => '憝',
+ '證' => '証',
+ '譌' => '訛',
+ '譍' => '应',
+ '譎' => '噊',
+ '譐' => '噂',
+ '譑' => '挢',
+ '譔' => '撰',
+ '譕' => '謨',
+ '譜' => '諩',
+ '譟' => '噪',
+ '譪' => '蔼',
+ '譭' => '毀',
+ '譱' => '善',
+ '護' => '护',
+ '譹' => '号',
+ '譻' => '嘤',
+ '譽' => '誉',
+ '譾' => '謭',
+ '譿' => '慧',
+ '變' => '变',
+ '讋' => '詟',
+ '讌' => '䜩',
+ '讎' => '仇',
+ '讏' => '讆',
+ '讐' => '仇',
+ '讕' => '譋',
+ '讙' => '懽',
+ '讚' => '讃',
+ '讠' => '言',
+ '计' => '計',
+ '订' => '訂',
+ '讣' => '訃',
+ '认' => '認',
+ '讥' => '譏',
+ '讦' => '訐',
+ '讧' => '訌',
+ '讨' => '討',
+ '让' => '讓',
+ '讪' => '訕',
+ '讫' => '訖',
+ '讬' => '托',
+ '训' => '訓',
+ '议' => '議',
+ '讯' => '訊',
+ '记' => '記',
+ '讱' => '訒',
+ '讲' => '講',
+ '讳' => '諱',
+ '讴' => '謳',
+ '讵' => '詎',
+ '讶' => '訝',
+ '讷' => '訥',
+ '许' => '許',
+ '讹' => '訛',
+ '论' => '論',
+ '讻' => '哅',
+ '讼' => '訟',
+ '讽' => '諷',
+ '设' => '設',
+ '访' => '訪',
+ '诀' => '訣',
+ '证' => '証',
+ '诂' => '詁',
+ '诃' => '呵',
+ '评' => '評',
+ '诅' => '詛',
+ '识' => '識',
+ '诇' => '詗',
+ '诈' => '詐',
+ '诉' => '愬',
+ '诊' => '診',
+ '诋' => '呧',
+ '诌' => '謅',
+ '词' => '詞',
+ '诎' => '詘',
+ '诏' => '詔',
+ '诐' => '詖',
+ '译' => '譯',
+ '诒' => '詒',
+ '诓' => '誆',
+ '诔' => '誄',
+ '试' => '試',
+ '诖' => '詿',
+ '诗' => '詩',
+ '诘' => '詰',
+ '诙' => '詼',
+ '诚' => '誠',
+ '诛' => '誅',
+ '诜' => '詵',
+ '话' => '話',
+ '诞' => '誕',
+ '诟' => '詬',
+ '诠' => '詮',
+ '诡' => '詭',
+ '询' => '詢',
+ '诣' => '詣',
+ '诤' => '諍',
+ '该' => '該',
+ '详' => '詳',
+ '诧' => '侘',
+ '诨' => '諢',
+ '诩' => '詡',
+ '诪' => '譸',
+ '诫' => '誡',
+ '诬' => '誣',
+ '语' => '語',
+ '诮' => '誚',
+ '误' => '悞',
+ '诰' => '誥',
+ '诱' => '誘',
+ '诲' => '誨',
+ '诳' => '誑',
+ '说' => '說',
+ '诵' => '誦',
+ '诶' => '欸',
+ '请' => '請',
+ '诸' => '諸',
+ '诹' => '諏',
+ '诺' => '諾',
+ '读' => '讀',
+ '诼' => '諑',
+ '诽' => '誹',
+ '课' => '課',
+ '诿' => '諉',
+ '谀' => '諛',
+ '谁' => '誰',
+ '谂' => '諗',
+ '调' => '調',
+ '谄' => '諂',
+ '谅' => '諒',
+ '谆' => '訰',
+ '谇' => '誶',
+ '谈' => '談',
+ '谉' => '讅',
+ '谊' => '誼',
+ '谋' => '謀',
+ '谌' => '諶',
+ '谍' => '諜',
+ '谎' => '謊',
+ '谏' => '諌',
+ '谐' => '諧',
+ '谑' => '謔',
+ '谒' => '謁',
+ '谓' => '謂',
+ '谔' => '諤',
+ '谕' => '諭',
+ '谖' => '諼',
+ '谗' => '讒',
+ '谘' => '咨',
+ '谙' => '諳',
+ '谚' => '諺',
+ '谛' => '諦',
+ '谜' => '謎',
+ '谝' => '諞',
+ '谞' => '諝',
+ '谟' => '謨',
+ '谠' => '讜',
+ '谡' => '謖',
+ '谢' => '謝',
+ '谣' => '謠',
+ '谤' => '謗',
+ '谥' => '諡',
+ '谦' => '謙',
+ '谧' => '謐',
+ '谨' => '謹',
+ '谩' => '謾',
+ '谪' => '謫',
+ '谫' => '謭',
+ '谬' => '謬',
+ '谭' => '譚',
+ '谮' => '譖',
+ '谯' => '譙',
+ '谰' => '譋',
+ '谱' => '諩',
+ '谲' => '噊',
+ '谳' => '讞',
+ '谴' => '譴',
+ '谵' => '譫',
+ '谶' => '讖',
+ '谷' => '穀',
+ '谿' => '溪',
+ '豆' => '梪',
+ '豈' => '岂',
+ '豊' => '丰',
+ '豋' => '登',
+ '豎' => '竖',
+ '豐' => '丰',
+ '豔' => '艳',
+ '豗' => '拻',
+ '象' => '像',
+ '豣' => '豜',
+ '豬' => '猪',
+ '豶' => '豮',
+ '豺' => '犲',
+ '貉' => '狢',
+ '貌' => '皃',
+ '貍' => '狸',
+ '貓' => '猫',
+ '貜' => '玃',
+ '貮' => '二',
+ '貳' => '二',
+ '買' => '买',
+ '賉' => '卹',
+ '賊' => '戝',
+ '賌' => '賅',
+ '賓' => '宾',
+ '賔' => '宾',
+ '賗' => '串',
+ '賛' => '讃',
+ '賝' => '琛',
+ '賣' => '卖',
+ '質' => '貭',
+ '賬' => '帐',
+ '賸' => '剩',
+ '贊' => '讃',
+ '贐' => '賮',
+ '贗' => '贋',
+ '贛' => '灨',
+ '贜' => '贓',
+ '贝' => '貝',
+ '贞' => '貞',
+ '负' => '負',
+ '贠' => '貟',
+ '贡' => '貢',
+ '财' => '財',
+ '责' => '責',
+ '贤' => '賢',
+ '败' => '敗',
+ '账' => '帐',
+ '货' => '貨',
+ '质' => '貭',
+ '贩' => '販',
+ '贪' => '貪',
+ '贫' => '貧',
+ '贬' => '貶',
+ '购' => '購',
+ '贮' => '貯',
+ '贯' => '貫',
+ '贰' => '二',
+ '贱' => '賤',
+ '贲' => '賁',
+ '贳' => '貰',
+ '贴' => '貼',
+ '贵' => '貴',
+ '贶' => '貺',
+ '贷' => '貸',
+ '贸' => '貿',
+ '费' => '費',
+ '贺' => '賀',
+ '贻' => '貽',
+ '贼' => '戝',
+ '贽' => '贄',
+ '贾' => '賈',
+ '贿' => '賄',
+ '赀' => '貲',
+ '赁' => '賃',
+ '赂' => '賂',
+ '赃' => '贓',
+ '资' => '資',
+ '赅' => '賅',
+ '赆' => '賮',
+ '赇' => '賕',
+ '赈' => '賑',
+ '赉' => '賚',
+ '赊' => '賒',
+ '赋' => '賦',
+ '赌' => '賭',
+ '赍' => '賫',
+ '赎' => '贖',
+ '赏' => '賞',
+ '赐' => '賜',
+ '赑' => '贔',
+ '赒' => '賙',
+ '赓' => '賡',
+ '赔' => '賠',
+ '赕' => '賧',
+ '赖' => '賴',
+ '赗' => '賵',
+ '赘' => '贅',
+ '赙' => '賻',
+ '赚' => '賺',
+ '赛' => '賽',
+ '赜' => '賾',
+ '赝' => '贋',
+ '赞' => '讃',
+ '赟' => '贇',
+ '赠' => '贈',
+ '赡' => '贍',
+ '赢' => '贏',
+ '赣' => '灨',
+ '赪' => '竀',
+ '赬' => '竀',
+ '赱' => '走',
+ '趂' => '趁',
+ '趆' => '赿',
+ '趍' => '趋',
+ '趕' => '赶',
+ '趙' => '赵',
+ '趨' => '趋',
+ '趲' => '趱',
+ '跳' => '趒',
+ '跺' => '跥',
+ '跼' => '侷',
+ '踈' => '疏',
+ '踐' => '践',
+ '踙' => '踂',
+ '踡' => '蜷',
+ '踣' => '殕',
+ '踩' => '跴',
+ '踪' => '踨',
+ '踫' => '掽',
+ '踴' => '踊',
+ '蹂' => '禸',
+ '蹌' => '跄',
+ '蹔' => '暂',
+ '蹕' => '跸',
+ '蹖' => '桩',
+ '蹚' => '趟',
+ '蹞' => '跬',
+ '蹟' => '跡',
+ '蹠' => '跖',
+ '蹣' => '蹒',
+ '蹤' => '踨',
+ '蹧' => '糟',
+ '蹯' => '番',
+ '蹲' => '墫',
+ '蹺' => '跷',
+ '蹻' => '跷',
+ '躁' => '趮',
+ '躂' => '跶',
+ '躉' => '趸',
+ '躊' => '踌',
+ '躋' => '跻',
+ '躍' => '跃',
+ '躑' => '踯',
+ '躒' => '跞',
+ '躓' => '踬',
+ '躕' => '蹰',
+ '躚' => '跹',
+ '躛' => '躗',
+ '躡' => '蹑',
+ '躥' => '蹿',
+ '躦' => '躜',
+ '躪' => '躏',
+ '躭' => '耽',
+ '躰' => '体',
+ '躲' => '躱',
+ '軀' => '躯',
+ '軆' => '体',
+ '軍' => '军',
+ '軛' => '枙',
+ '軠' => '軖',
+ '軲' => '毂',
+ '軶' => '枙',
+ '輓' => '挽',
+ '輕' => '軽',
+ '輧' => '軿',
+ '輿' => '舆',
+ '轀' => '輼',
+ '轂' => '毂',
+ '轏' => '栈',
+ '轝' => '舆',
+ '轞' => '槛',
+ '车' => '車',
+ '轧' => '軋',
+ '轨' => '軌',
+ '轩' => '軒',
+ '轪' => '軑',
+ '轫' => '軔',
+ '转' => '轉',
+ '轭' => '枙',
+ '轮' => '輪',
+ '软' => '軟',
+ '轰' => '轟',
+ '轱' => '毂',
+ '轲' => '軻',
+ '轳' => '轤',
+ '轴' => '軸',
+ '轵' => '軹',
+ '轶' => '軼',
+ '轷' => '軤',
+ '轸' => '軫',
+ '轹' => '轢',
+ '轺' => '軺',
+ '轻' => '軽',
+ '轼' => '軾',
+ '载' => '載',
+ '轾' => '輊',
+ '轿' => '轎',
+ '辀' => '輈',
+ '辁' => '輇',
+ '辂' => '輅',
+ '较' => '較',
+ '辄' => '輒',
+ '辅' => '輔',
+ '辆' => '輛',
+ '辇' => '輦',
+ '辈' => '輩',
+ '辉' => '輝',
+ '辊' => '輥',
+ '辋' => '輞',
+ '辌' => '輬',
+ '辍' => '輟',
+ '辎' => '輜',
+ '辏' => '輳',
+ '辐' => '輻',
+ '辑' => '輯',
+ '辒' => '輼',
+ '输' => '輸',
+ '辔' => '轡',
+ '辕' => '轅',
+ '辖' => '轄',
+ '辗' => '輾',
+ '辘' => '轆',
+ '辙' => '轍',
+ '辚' => '轔',
+ '辠' => '罪',
+ '辣' => '辢',
+ '辦' => '办',
+ '辧' => '办',
+ '辨' => '办',
+ '辭' => '辞',
+ '辮' => '辫',
+ '辯' => '辩',
+ '農' => '农',
+ '迖' => '达',
+ '迡' => '迟',
+ '迤' => '迆',
+ '迪' => '廸',
+ '迬' => '往',
+ '迭' => '叠',
+ '迳' => '径',
+ '迴' => '囘',
+ '迹' => '跡',
+ '迺' => '乃',
+ '迻' => '移',
+ '逃' => '迯',
+ '逈' => '迥',
+ '逊' => '愻',
+ '逌' => '攸',
+ '逓' => '递',
+ '逕' => '径',
+ '這' => '这',
+ '連' => '连',
+ '逥' => '囘',
+ '逩' => '奔',
+ '逮' => '迨',
+ '逰' => '游',
+ '週' => '周',
+ '進' => '进',
+ '逸' => '劮',
+ '逺' => '远',
+ '逾' => '踰',
+ '遅' => '迟',
+ '遉' => '侦',
+ '遊' => '游',
+ '運' => '运',
+ '遍' => '徧',
+ '過' => '过',
+ '遑' => '徨',
+ '達' => '达',
+ '違' => '违',
+ '遜' => '愻',
+ '遞' => '递',
+ '遟' => '迟',
+ '遠' => '远',
+ '遡' => '泝',
+ '遥' => '遙',
+ '遧' => '章',
+ '適' => '适',
+ '遯' => '遁',
+ '遲' => '迟',
+ '遳' => '矬',
+ '遶' => '繞',
+ '遷' => '迁',
+ '選' => '选',
+ '遺' => '遗',
+ '遼' => '辽',
+ '避' => '辟',
+ '邁' => '迈',
+ '還' => '还',
+ '邇' => '迩',
+ '邉' => '边',
+ '邊' => '边',
+ '邍' => '原',
+ '邏' => '逻',
+ '邐' => '逦',
+ '邨' => '村',
+ '郁' => '欝',
+ '郉' => '邢',
+ '郘' => '吕',
+ '郞' => '郎',
+ '郟' => '郏',
+ '郣' => '渤',
+ '郭' => '墎',
+ '郲' => '莱',
+ '郵' => '邮',
+ '郷' => '乡',
+ '鄁' => '邶',
+ '鄃' => '俞',
+ '鄆' => '郓',
+ '鄉' => '乡',
+ '鄒' => '邹',
+ '鄔' => '邬',
+ '鄕' => '乡',
+ '鄖' => '郧',
+ '鄦' => '許',
+ '鄧' => '邓',
+ '鄭' => '郑',
+ '鄰' => '邻',
+ '鄲' => '郸',
+ '鄴' => '邺',
+ '鄶' => '郐',
+ '鄹' => '郰',
+ '鄺' => '邝',
+ '酆' => '鄷',
+ '酇' => '酂',
+ '酈' => '郦',
+ '酉' => '丣',
+ '酧' => '詶',
+ '酬' => '詶',
+ '醃' => '腌',
+ '醆' => '琖',
+ '醉' => '酔',
+ '醋' => '酢',
+ '醖' => '酝',
+ '醜' => '丑',
+ '醞' => '酝',
+ '醡' => '搾',
+ '醫' => '医',
+ '醬' => '酱',
+ '醱' => '酦',
+ '醻' => '詶',
+ '醼' => '宴',
+ '釀' => '酿',
+ '釁' => '衅',
+ '釃' => '酾',
+ '釅' => '酽',
+ '釆' => '办',
+ '采' => '採',
+ '釋' => '释',
+ '里' => '裏',
+ '重' => '緟',
+ '野' => '埜',
+ '釐' => '厘',
+ '釒' => '金',
+ '釦' => '扣',
+ '釬' => '焊',
+ '釾' => '䥺',
+ '鈡' => '螤',
+ '鉅' => '巨',
+ '鉌' => '和',
+ '鉗' => '拑',
+ '鉛' => '鈆',
+ '鉢' => '缽',
+ '鉤' => '鈎',
+ '銜' => '啣',
+ '銲' => '焊',
+ '鋤' => '耡',
+ '鋪' => '舖',
+ '鋭' => '銳',
+ '鋺' => '碗',
+ '錄' => '彔',
+ '錢' => '銭',
+ '録' => '彔',
+ '錶' => '表',
+ '錼' => '捺',
+ '錽' => '鋄',
+ '鍊' => '炼',
+ '鍛' => '煅',
+ '鍤' => '臿',
+ '鍾' => '螤',
+ '鎌' => '劆',
+ '鎔' => '熔',
+ '鎙' => '矟',
+ '鎚' => '錘',
+ '鎣' => '蓥',
+ '鎮' => '鎭',
+ '鎰' => '賹',
+ '鏁' => '鎖',
+ '鏄' => '鎛',
+ '鏇' => '旋',
+ '鏎' => '毕',
+ '鏗' => '鍞',
+ '鏟' => '刬',
+ '鏨' => '錾',
+ '鏬' => '罅',
+ '鏰' => '錋',
+ '鏺' => '䥽',
+ '鏽' => '銹',
+ '鐀' => '匮',
+ '鐉' => '鉆',
+ '鐊' => '鍚',
+ '鐑' => '鍥',
+ '鐘' => '螤',
+ '鐥' => '䦅',
+ '鐪' => '鏀',
+ '鐫' => '鎸',
+ '鐮' => '劆',
+ '鐯' => '䦃',
+ '鐱' => '剑',
+ '鐵' => '銕',
+ '鐷' => '鍱',
+ '鑄' => '鋳',
+ '鑑' => '鉴',
+ '鑒' => '鉴',
+ '鑛' => '矿',
+ '鑤' => '刨',
+ '鑨' => '砻',
+ '鑪' => '炉',
+ '鑮' => '鎛',
+ '鑯' => '尖',
+ '鑰' => '鈅',
+ '鑳' => '鍵',
+ '鑵' => '罐',
+ '鑽' => '鉆',
+ '鑾' => '銮',
+ '鑿' => '凿',
+ '钁' => '䦆',
+ '钂' => '鎲',
+ '钅' => '金',
+ '钆' => '釓',
+ '钇' => '釔',
+ '针' => '針',
+ '钉' => '釘',
+ '钊' => '釗',
+ '钋' => '釙',
+ '钌' => '釕',
+ '钍' => '釷',
+ '钎' => '釺',
+ '钏' => '釧',
+ '钐' => '釤',
+ '钑' => '鈒',
+ '钒' => '釩',
+ '钓' => '釣',
+ '钔' => '鍆',
+ '钕' => '釹',
+ '钖' => '鍚',
+ '钗' => '釵',
+ '钘' => '鈃',
+ '钙' => '鈣',
+ '钚' => '鈈',
+ '钛' => '鈦',
+ '钜' => '巨',
+ '钝' => '鈍',
+ '钞' => '鈔',
+ '钟' => '螤',
+ '钠' => '鈉',
+ '钡' => '鋇',
+ '钢' => '鋼',
+ '钣' => '鈑',
+ '钤' => '鈐',
+ '钥' => '鈅',
+ '钦' => '欽',
+ '钧' => '鈞',
+ '钨' => '鎢',
+ '钩' => '鈎',
+ '钪' => '鈧',
+ '钫' => '鈁',
+ '钬' => '鈥',
+ '钭' => '鈄',
+ '钮' => '鈕',
+ '钯' => '鈀',
+ '钰' => '鈺',
+ '钱' => '銭',
+ '钲' => '鉦',
+ '钳' => '拑',
+ '钴' => '鈷',
+ '钵' => '缽',
+ '钶' => '鈳',
+ '钷' => '鉕',
+ '钸' => '鈽',
+ '钹' => '鈸',
+ '钺' => '鉞',
+ '钻' => '鉆',
+ '钼' => '鉬',
+ '钽' => '鉭',
+ '钾' => '鉀',
+ '钿' => '鈿',
+ '铀' => '鈾',
+ '铁' => '銕',
+ '铂' => '鉑',
+ '铃' => '鈴',
+ '铄' => '鑠',
+ '铅' => '鈆',
+ '铆' => '鉚',
+ '铇' => '鉋',
+ '铈' => '鈰',
+ '铉' => '鉉',
+ '铊' => '鉈',
+ '铋' => '鉍',
+ '铌' => '鈮',
+ '铍' => '鈹',
+ '铎' => '鐸',
+ '铏' => '鉶',
+ '铐' => '銬',
+ '铑' => '銠',
+ '铒' => '鉺',
+ '铓' => '鋩',
+ '铔' => '錏',
+ '铕' => '銪',
+ '铖' => '鋮',
+ '铗' => '鋏',
+ '铘' => '鋣',
+ '铙' => '鐃',
+ '铚' => '銍',
+ '铛' => '鐺',
+ '铜' => '銅',
+ '铝' => '鋁',
+ '铞' => '銱',
+ '铟' => '銦',
+ '铠' => '鎧',
+ '铡' => '鍘',
+ '铢' => '銖',
+ '铣' => '銑',
+ '铤' => '鋌',
+ '铥' => '銩',
+ '铦' => '銛',
+ '铧' => '鏵',
+ '铨' => '銓',
+ '铩' => '鎩',
+ '铪' => '鉿',
+ '铫' => '銚',
+ '铬' => '鉻',
+ '铭' => '銘',
+ '铮' => '錚',
+ '铯' => '銫',
+ '铰' => '鉸',
+ '铱' => '銥',
+ '铲' => '刬',
+ '铳' => '銃',
+ '铴' => '鐋',
+ '铵' => '銨',
+ '银' => '銀',
+ '铷' => '銣',
+ '铸' => '鋳',
+ '铹' => '鐒',
+ '铺' => '舖',
+ '铻' => '鋙',
+ '铼' => '錸',
+ '铽' => '鋱',
+ '链' => '鏈',
+ '铿' => '鍞',
+ '销' => '銷',
+ '锁' => '鎖',
+ '锂' => '鋰',
+ '锃' => '鋥',
+ '锄' => '耡',
+ '锅' => '鍋',
+ '锆' => '鋯',
+ '锇' => '鋨',
+ '锈' => '銹',
+ '锉' => '銼',
+ '锊' => '鋝',
+ '锋' => '鋒',
+ '锌' => '鋅',
+ '锍' => '鋶',
+ '锎' => '鐦',
+ '锏' => '鐧',
+ '锐' => '銳',
+ '锑' => '銻',
+ '锒' => '鋃',
+ '锓' => '鋟',
+ '锔' => '鋦',
+ '锕' => '錒',
+ '锖' => '錆',
+ '锗' => '鍺',
+ '锘' => '鍩',
+ '错' => '錯',
+ '锚' => '錨',
+ '锛' => '錛',
+ '锜' => '錡',
+ '锝' => '鍀',
+ '锞' => '錁',
+ '锟' => '錕',
+ '锠' => '錩',
+ '锡' => '錫',
+ '锢' => '錮',
+ '锣' => '鑼',
+ '锤' => '錘',
+ '锥' => '錐',
+ '锦' => '錦',
+ '锧' => '鑕',
+ '锨' => '鍁',
+ '锩' => '錈',
+ '锪' => '鍃',
+ '锫' => '錇',
+ '锬' => '錟',
+ '锭' => '錠',
+ '键' => '鍵',
+ '锯' => '鋸',
+ '锰' => '錳',
+ '锱' => '錙',
+ '锲' => '鍥',
+ '锳' => '鍈',
+ '锴' => '鍇',
+ '锵' => '鏘',
+ '锶' => '鍶',
+ '锷' => '鍔',
+ '锸' => '臿',
+ '锹' => '鍬',
+ '锺' => '螤',
+ '锻' => '煅',
+ '锼' => '鎪',
+ '锽' => '鍠',
+ '锾' => '鍰',
+ '锿' => '鎄',
+ '镀' => '鍍',
+ '镁' => '鎂',
+ '镂' => '鏤',
+ '镃' => '鎡',
+ '镄' => '鐨',
+ '镅' => '鎇',
+ '镆' => '鏌',
+ '镇' => '鎭',
+ '镈' => '鎛',
+ '镉' => '鎘',
+ '镊' => '鑷',
+ '镋' => '鎲',
+ '镌' => '鎸',
+ '镍' => '鎳',
+ '镎' => '鎿',
+ '镏' => '鎦',
+ '镐' => '鎬',
+ '镑' => '鎊',
+ '镒' => '賹',
+ '镓' => '鎵',
+ '镔' => '鑌',
+ '镕' => '熔',
+ '镖' => '鏢',
+ '镗' => '鏜',
+ '镘' => '鏝',
+ '镙' => '鏍',
+ '镚' => '錋',
+ '镛' => '鏞',
+ '镜' => '鏡',
+ '镝' => '鏑',
+ '镞' => '鏃',
+ '镟' => '旋',
+ '镠' => '鏐',
+ '镡' => '鐔',
+ '镢' => '鐝',
+ '镣' => '鐐',
+ '镤' => '鏷',
+ '镥' => '鑥',
+ '镦' => '鐓',
+ '镧' => '鑭',
+ '镨' => '鐠',
+ '镩' => '鑹',
+ '镪' => '鏹',
+ '镫' => '鐙',
+ '镬' => '鑊',
+ '镭' => '鐳',
+ '镮' => '鐶',
+ '镯' => '鐲',
+ '镰' => '劆',
+ '镱' => '鐿',
+ '镲' => '鑔',
+ '镳' => '鑣',
+ '镴' => '鑞',
+ '镵' => '鑱',
+ '镶' => '鑲',
+ '长' => '長',
+ '閉' => '閇',
+ '開' => '开',
+ '閞' => '关',
+ '関' => '关',
+ '閤' => '合',
+ '閧' => '哄',
+ '閲' => '閱',
+ '閷' => '杀',
+ '閻' => '閆',
+ '闆' => '板',
+ '闇' => '晻',
+ '闊' => '濶',
+ '闗' => '关',
+ '闘' => '斗',
+ '闚' => '窥',
+ '關' => '关',
+ '闡' => '灛',
+ '闢' => '辟',
+ '门' => '門',
+ '闩' => '閂',
+ '闪' => '閃',
+ '闫' => '閆',
+ '闬' => '閈',
+ '闭' => '閇',
+ '问' => '問',
+ '闯' => '闖',
+ '闰' => '閏',
+ '闱' => '闈',
+ '闲' => '閑',
+ '闳' => '閎',
+ '间' => '間',
+ '闵' => '閔',
+ '闶' => '閌',
+ '闷' => '悶',
+ '闸' => '閘',
+ '闹' => '閙',
+ '闺' => '閨',
+ '闻' => '聞',
+ '闼' => '闥',
+ '闽' => '閩',
+ '闾' => '閭',
+ '闿' => '闓',
+ '阀' => '閥',
+ '阁' => '閣',
+ '阂' => '閡',
+ '阃' => '閫',
+ '阅' => '閱',
+ '阆' => '閬',
+ '阇' => '闍',
+ '阈' => '閾',
+ '阉' => '閹',
+ '阊' => '閶',
+ '阌' => '閿',
+ '阍' => '閽',
+ '阎' => '閆',
+ '阏' => '閼',
+ '阐' => '灛',
+ '阑' => '闌',
+ '阒' => '闃',
+ '阓' => '闠',
+ '阔' => '濶',
+ '阕' => '闋',
+ '阖' => '闔',
+ '阗' => '闐',
+ '阘' => '闒',
+ '阙' => '闕',
+ '阚' => '闞',
+ '阛' => '闤',
+ '阜' => '峊',
+ '阝' => '峊',
+ '阣' => '屹',
+ '阨' => '厄',
+ '阪' => '坂',
+ '阬' => '坑',
+ '阯' => '址',
+ '阱' => '穽',
+ '阳' => '昜',
+ '阶' => '堦',
+ '附' => '坿',
+ '陆' => '坴',
+ '陈' => '敶',
+ '陔' => '垓',
+ '陘' => '陉',
+ '陜' => '陕',
+ '陝' => '陕',
+ '陞' => '升',
+ '陣' => '阵',
+ '险' => '硷',
+ '陰' => '阴',
+ '陳' => '敶',
+ '陵' => '琌',
+ '陶' => '匋',
+ '陸' => '坴',
+ '陽' => '昜',
+ '隄' => '堤',
+ '隉' => '陧',
+ '隊' => '队',
+ '階' => '堦',
+ '隕' => '陨',
+ '隙' => '郄',
+ '際' => '际',
+ '障' => '墇',
+ '隞' => '敖',
+ '隠' => '隐',
+ '隣' => '邻',
+ '隨' => '随',
+ '險' => '硷',
+ '隱' => '隐',
+ '隳' => '隓',
+ '隴' => '陇',
+ '隷' => '隶',
+ '隸' => '隶',
+ '隻' => '只',
+ '隿' => '弋',
+ '雇' => '僱',
+ '雋' => '隽',
+ '雑' => '杂',
+ '雕' => '彫',
+ '雖' => '虽',
+ '雙' => '双',
+ '雛' => '雏',
+ '雜' => '杂',
+ '雝' => '雍',
+ '雠' => '仇',
+ '離' => '离',
+ '難' => '难',
+ '雥' => '杂',
+ '雰' => '氛',
+ '雲' => '云',
+ '電' => '电',
+ '震' => '誫',
+ '霊' => '灵',
+ '霍' => '癨',
+ '霑' => '沾',
+ '霒' => '阴',
+ '霓' => '蛪',
+ '霞' => '赮',
+ '霠' => '阴',
+ '霧' => '雾',
+ '霩' => '廓',
+ '霸' => '覇',
+ '霺' => '溦',
+ '霽' => '霁',
+ '靂' => '雳',
+ '靄' => '霭',
+ '靆' => '叇',
+ '靈' => '灵',
+ '靉' => '叆',
+ '青' => '靑',
+ '靚' => '靓',
+ '靜' => '静',
+ '靝' => '靔',
+ '靨' => '靥',
+ '靭' => '肕',
+ '靼' => '靻',
+ '鞂' => '秸',
+ '鞍' => '鞌',
+ '鞏' => '巩',
+ '鞒' => '桥',
+ '鞠' => '陱',
+ '鞤' => '帮',
+ '鞦' => '秋',
+ '鞽' => '桥',
+ '韁' => '繮',
+ '韃' => '鞑',
+ '韆' => '仟',
+ '韈' => '袜',
+ '韉' => '鞯',
+ '韌' => '肕',
+ '韤' => '袜',
+ '韥' => '韣',
+ '韦' => '韋',
+ '韧' => '肕',
+ '韨' => '韍',
+ '韩' => '韓',
+ '韪' => '韙',
+ '韫' => '韞',
+ '韬' => '韜',
+ '韮' => '韭',
+ '韲' => '虀',
+ '韻' => '韵',
+ '響' => '响',
+ '頒' => '朌',
+ '頤' => '頉',
+ '頫' => '俛',
+ '頭' => '头',
+ '頴' => '穎',
+ '頸' => '頚',
+ '頹' => '穨',
+ '頼' => '賴',
+ '頽' => '穨',
+ '顊' => '頉',
+ '顐' => '諢',
+ '顔' => '顏',
+ '顕' => '显',
+ '願' => '愿',
+ '顚' => '傎',
+ '顛' => '傎',
+ '類' => '类',
+ '顣' => '蹙',
+ '顧' => '頋',
+ '顯' => '显',
+ '页' => '頁',
+ '顶' => '頂',
+ '顷' => '頃',
+ '顸' => '頇',
+ '项' => '項',
+ '顺' => '順',
+ '须' => '須',
+ '顼' => '頊',
+ '顽' => '頑',
+ '顾' => '頋',
+ '顿' => '頓',
+ '颀' => '頎',
+ '颁' => '朌',
+ '颂' => '頌',
+ '颃' => '頏',
+ '预' => '預',
+ '颅' => '顱',
+ '领' => '領',
+ '颇' => '頗',
+ '颈' => '頚',
+ '颉' => '頡',
+ '颊' => '頰',
+ '颋' => '頲',
+ '颌' => '頜',
+ '颍' => '潁',
+ '颎' => '熲',
+ '颏' => '頦',
+ '颐' => '頉',
+ '频' => '頻',
+ '颒' => '頮',
+ '颓' => '穨',
+ '颔' => '頷',
+ '颕' => '穎',
+ '颖' => '穎',
+ '颗' => '顆',
+ '题' => '題',
+ '颙' => '顒',
+ '颚' => '顎',
+ '颛' => '顓',
+ '颜' => '顏',
+ '额' => '額',
+ '颞' => '顳',
+ '颟' => '顢',
+ '颠' => '傎',
+ '颡' => '顙',
+ '颢' => '顥',
+ '颣' => '纇',
+ '颤' => '顫',
+ '颥' => '顬',
+ '颦' => '顰',
+ '颧' => '顴',
+ '風' => '凨',
+ '颱' => '台',
+ '颳' => '刮',
+ '颺' => '扬',
+ '飃' => '旚',
+ '飄' => '旚',
+ '飈' => '飆',
+ '飌' => '凨',
+ '风' => '凨',
+ '飏' => '扬',
+ '飐' => '颭',
+ '飑' => '颮',
+ '飒' => '颯',
+ '飓' => '颶',
+ '飔' => '颸',
+ '飕' => '颼',
+ '飖' => '颻',
+ '飗' => '飀',
+ '飘' => '旚',
+ '飙' => '飆',
+ '飚' => '飆',
+ '飜' => '繙',
+ '飞' => '飛',
+ '飠' => '食',
+ '飰' => '飯',
+ '飽' => '飹',
+ '餁' => '飪',
+ '餈' => '糍',
+ '養' => '养',
+ '餐' => '喰',
+ '餘' => '余',
+ '餚' => '肴',
+ '餝' => '飾',
+ '餠' => '餅',
+ '館' => '舘',
+ '餬' => '糊',
+ '餱' => '糇',
+ '餵' => '喂',
+ '餹' => '糖',
+ '饇' => '飫',
+ '饊' => '糤',
+ '饋' => '餽',
+ '饑' => '飢',
+ '饗' => '飨',
+ '饜' => '餍',
+ '饟' => '餉',
+ '饣' => '食',
+ '饤' => '飣',
+ '饥' => '飢',
+ '饦' => '飥',
+ '饧' => '餳',
+ '饨' => '飩',
+ '饩' => '餼',
+ '饪' => '飪',
+ '饫' => '飫',
+ '饬' => '飭',
+ '饭' => '飯',
+ '饮' => '飲',
+ '饯' => '餞',
+ '饰' => '飾',
+ '饱' => '飹',
+ '饲' => '飼',
+ '饳' => '飿',
+ '饴' => '飴',
+ '饵' => '餌',
+ '饶' => '饒',
+ '饷' => '餉',
+ '饸' => '餄',
+ '饹' => '餎',
+ '饺' => '餃',
+ '饻' => '餏',
+ '饼' => '餅',
+ '饽' => '餑',
+ '饾' => '餖',
+ '饿' => '餓',
+ '馀' => '余',
+ '馁' => '餒',
+ '馂' => '餕',
+ '馃' => '餜',
+ '馄' => '餛',
+ '馅' => '餡',
+ '馆' => '舘',
+ '馇' => '餷',
+ '馈' => '餽',
+ '馉' => '餶',
+ '馊' => '餿',
+ '馋' => '饞',
+ '馌' => '饁',
+ '馍' => '饃',
+ '馎' => '餺',
+ '馏' => '餾',
+ '馐' => '饈',
+ '馑' => '饉',
+ '馒' => '饅',
+ '馓' => '糤',
+ '馔' => '饌',
+ '馕' => '饢',
+ '馘' => '聝',
+ '馫' => '馨',
+ '馮' => '冯',
+ '馽' => '絷',
+ '駄' => '馱',
+ '駆' => '敺',
+ '駈' => '敺',
+ '駞' => '駝',
+ '駡' => '傌',
+ '駮' => '駁',
+ '駴' => '駭',
+ '騃' => '呆',
+ '騈' => '駢',
+ '騣' => '騌',
+ '騪' => '捜',
+ '騰' => '腾',
+ '騲' => '艸',
+ '騹' => '騏',
+ '驀' => '蓦',
+ '驅' => '敺',
+ '驆' => '跸',
+ '驇' => '騺',
+ '驕' => '憍',
+ '驚' => '惊',
+ '驩' => '懽',
+ '马' => '馬',
+ '驭' => '馭',
+ '驮' => '馱',
+ '驯' => '馴',
+ '驰' => '馳',
+ '驱' => '敺',
+ '驲' => '馹',
+ '驳' => '駁',
+ '驴' => '驢',
+ '驵' => '駔',
+ '驶' => '駛',
+ '驷' => '駟',
+ '驸' => '駙',
+ '驹' => '駒',
+ '驺' => '騶',
+ '驻' => '駐',
+ '驼' => '駝',
+ '驽' => '駑',
+ '驾' => '駕',
+ '驿' => '驛',
+ '骀' => '駘',
+ '骁' => '驍',
+ '骂' => '傌',
+ '骃' => '駰',
+ '骄' => '憍',
+ '骅' => '驊',
+ '骆' => '駱',
+ '骇' => '駭',
+ '骈' => '駢',
+ '骉' => '驫',
+ '骊' => '驪',
+ '骋' => '騁',
+ '验' => '驗',
+ '骍' => '騂',
+ '骎' => '駸',
+ '骏' => '駿',
+ '骐' => '騏',
+ '骑' => '騎',
+ '骒' => '騍',
+ '骓' => '騅',
+ '骔' => '騌',
+ '骕' => '驌',
+ '骖' => '驂',
+ '骗' => '騙',
+ '骘' => '騭',
+ '骙' => '騤',
+ '骚' => '騷',
+ '骛' => '騖',
+ '骜' => '驁',
+ '骝' => '騮',
+ '骞' => '騫',
+ '骟' => '騸',
+ '骠' => '驃',
+ '骡' => '騾',
+ '骢' => '驄',
+ '骣' => '驏',
+ '骤' => '驟',
+ '骥' => '驥',
+ '骦' => '驦',
+ '骧' => '驤',
+ '骫' => '骪',
+ '骯' => '肮',
+ '骵' => '体',
+ '骹' => '踍',
+ '骻' => '胯',
+ '髄' => '膸',
+ '髊' => '骴',
+ '髌' => '膑',
+ '髏' => '髅',
+ '髒' => '脏',
+ '髓' => '膸',
+ '體' => '体',
+ '髕' => '膑',
+ '髖' => '髋',
+ '髙' => '高',
+ '髣' => '仿',
+ '髦' => '氂',
+ '髪' => '发',
+ '髮' => '发',
+ '髯' => '髥',
+ '髴' => '仏',
+ '鬁' => '痢',
+ '鬃' => '騌',
+ '鬆' => '松',
+ '鬍' => '胡',
+ '鬎' => '瘌',
+ '鬚' => '須',
+ '鬠' => '髺',
+ '鬢' => '鬓',
+ '鬥' => '斗',
+ '鬦' => '斗',
+ '鬧' => '閙',
+ '鬨' => '哄',
+ '鬩' => '阋',
+ '鬪' => '斗',
+ '鬫' => '闞',
+ '鬬' => '斗',
+ '鬭' => '斗',
+ '鬮' => '阄',
+ '鬰' => '欝',
+ '鬱' => '欝',
+ '鬹' => '鬶',
+ '鬻' => '粥',
+ '魁' => '櫆',
+ '魊' => '蜮',
+ '魎' => '魉',
+ '魘' => '魇',
+ '魡' => '釣',
+ '魽' => '蚶',
+ '鮣' => '䲟',
+ '鮭' => '觟',
+ '鮮' => '尟',
+ '鯁' => '骾',
+ '鯊' => '魦',
+ '鯋' => '魦',
+ '鯗' => '鮝',
+ '鰆' => '䲠',
+ '鰌' => '䲡',
+ '鰍' => '䲡',
+ '鰧' => '䲢',
+ '鰿' => '鯽',
+ '鱅' => '鰫',
+ '鱋' => '魼',
+ '鱔' => '鱓',
+ '鱞' => '鰥',
+ '鱷' => '鰐',
+ '鱼' => '魚',
+ '鱽' => '魛',
+ '鱿' => '魷',
+ '鲀' => '魨',
+ '鲁' => '魯',
+ '鲂' => '魴',
+ '鲄' => '魺',
+ '鲅' => '鮁',
+ '鲆' => '鮃',
+ '鲇' => '鮎',
+ '鲈' => '鱸',
+ '鲉' => '鮋',
+ '鲊' => '鮓',
+ '鲋' => '鮒',
+ '鲌' => '鮊',
+ '鲍' => '鮑',
+ '鲎' => '鱟',
+ '鲏' => '鮍',
+ '鲐' => '鮐',
+ '鲑' => '觟',
+ '鲒' => '鮚',
+ '鲓' => '鮳',
+ '鲔' => '鮪',
+ '鲕' => '鮞',
+ '鲖' => '鮦',
+ '鲗' => '鰂',
+ '鲘' => '鮜',
+ '鲙' => '鱠',
+ '鲚' => '鱭',
+ '鲛' => '鮫',
+ '鲜' => '尟',
+ '鲝' => '鮺',
+ '鲞' => '鮝',
+ '鲟' => '鱘',
+ '鲠' => '骾',
+ '鲡' => '鱺',
+ '鲢' => '鰱',
+ '鲣' => '鰹',
+ '鲤' => '鯉',
+ '鲥' => '鰣',
+ '鲦' => '鰷',
+ '鲧' => '鯀',
+ '鲨' => '魦',
+ '鲩' => '鯇',
+ '鲪' => '鮶',
+ '鲫' => '鯽',
+ '鲬' => '鯒',
+ '鲭' => '鯖',
+ '鲮' => '鯪',
+ '鲯' => '鯕',
+ '鲰' => '鯫',
+ '鲱' => '鯡',
+ '鲲' => '鯤',
+ '鲳' => '鯧',
+ '鲴' => '鯝',
+ '鲵' => '鯢',
+ '鲶' => '鯰',
+ '鲷' => '鯛',
+ '鲸' => '鯨',
+ '鲹' => '鰺',
+ '鲺' => '鯴',
+ '鲻' => '鯔',
+ '鲼' => '鱝',
+ '鲽' => '鰈',
+ '鲾' => '鰏',
+ '鲿' => '鱨',
+ '鳀' => '鯷',
+ '鳁' => '鰛',
+ '鳃' => '鰓',
+ '鳄' => '鰐',
+ '鳅' => '䲡',
+ '鳆' => '鰒',
+ '鳇' => '鰉',
+ '鳊' => '鯿',
+ '鳋' => '鰠',
+ '鳌' => '鰲',
+ '鳍' => '鰭',
+ '鳎' => '鰨',
+ '鳏' => '鰥',
+ '鳐' => '鰩',
+ '鳑' => '鰟',
+ '鳒' => '鰜',
+ '鳓' => '鰳',
+ '鳔' => '鰾',
+ '鳕' => '鱈',
+ '鳖' => '鱉',
+ '鳗' => '鰻',
+ '鳘' => '鰵',
+ '鳙' => '鰫',
+ '鳛' => '鰼',
+ '鳜' => '鱖',
+ '鳝' => '鱓',
+ '鳞' => '鱗',
+ '鳟' => '鱒',
+ '鳠' => '鱯',
+ '鳢' => '鱧',
+ '鳣' => '鱣',
+ '鳧' => '凫',
+ '鳫' => '雁',
+ '鳬' => '凫',
+ '鳮' => '雞',
+ '鳯' => '凤',
+ '鳳' => '凤',
+ '鳾' => '䴓',
+ '鴃' => '鴂',
+ '鴇' => '鳵',
+ '鴈' => '雁',
+ '鴙' => '雉',
+ '鴷' => '䴕',
+ '鵁' => '䴔',
+ '鵛' => '頚',
+ '鵞' => '鵝',
+ '鵰' => '彫',
+ '鵶' => '鴉',
+ '鶄' => '䴖',
+ '鶤' => '鵾',
+ '鶪' => '䴗',
+ '鶯' => '莺',
+ '鶵' => '雏',
+ '鶾' => '翰',
+ '鷄' => '雞',
+ '鷈' => '䴘',
+ '鷉' => '䴘',
+ '鷍' => '枭',
+ '鷘' => '鶒',
+ '鷰' => '燕',
+ '鷴' => '鷳',
+ '鷿' => '䴙',
+ '鸊' => '䴙',
+ '鸝' => '鵑',
+ '鸞' => '鵉',
+ '鸟' => '鳥',
+ '鸠' => '鳩',
+ '鸡' => '雞',
+ '鸢' => '鳶',
+ '鸣' => '鳴',
+ '鸤' => '鳲',
+ '鸥' => '鷗',
+ '鸦' => '鴉',
+ '鸧' => '鶬',
+ '鸨' => '鳵',
+ '鸩' => '鴆',
+ '鸪' => '鴣',
+ '鸫' => '鶇',
+ '鸬' => '鸕',
+ '鸭' => '鴨',
+ '鸮' => '鴞',
+ '鸯' => '鴦',
+ '鸰' => '鴒',
+ '鸱' => '鴟',
+ '鸲' => '鴝',
+ '鸳' => '鴛',
+ '鸴' => '鷽',
+ '鸵' => '鴕',
+ '鸶' => '鷥',
+ '鸷' => '鷙',
+ '鸸' => '鴯',
+ '鸹' => '鴰',
+ '鸺' => '鵂',
+ '鸻' => '鴴',
+ '鸼' => '鵃',
+ '鸽' => '鴿',
+ '鸾' => '鵉',
+ '鸿' => '鴻',
+ '鹀' => '鵐',
+ '鹁' => '鵓',
+ '鹂' => '鵑',
+ '鹃' => '鵑',
+ '鹄' => '鵠',
+ '鹅' => '鵝',
+ '鹆' => '鵒',
+ '鹇' => '鷳',
+ '鹈' => '鵜',
+ '鹉' => '鵡',
+ '鹊' => '鵲',
+ '鹋' => '鶓',
+ '鹌' => '鵪',
+ '鹍' => '鵾',
+ '鹎' => '鵯',
+ '鹏' => '鵬',
+ '鹐' => '鵮',
+ '鹑' => '鶉',
+ '鹒' => '鶊',
+ '鹓' => '鵷',
+ '鹔' => '鷫',
+ '鹕' => '鶘',
+ '鹖' => '鶡',
+ '鹗' => '鶚',
+ '鹘' => '鶻',
+ '鹙' => '鶖',
+ '鹚' => '鶿',
+ '鹛' => '鶥',
+ '鹜' => '鶩',
+ '鹝' => '鷊',
+ '鹞' => '鷂',
+ '鹟' => '鶲',
+ '鹠' => '鶹',
+ '鹡' => '鶺',
+ '鹢' => '鷁',
+ '鹣' => '鶼',
+ '鹤' => '鶴',
+ '鹥' => '鷖',
+ '鹦' => '鸚',
+ '鹧' => '鷓',
+ '鹨' => '鷚',
+ '鹩' => '鷯',
+ '鹪' => '鷦',
+ '鹫' => '鷲',
+ '鹬' => '鷸',
+ '鹭' => '鷺',
+ '鹯' => '鸇',
+ '鹰' => '鷹',
+ '鹱' => '鸌',
+ '鹲' => '鸏',
+ '鹳' => '鸛',
+ '鹴' => '鸘',
+ '鹵' => '卤',
+ '鹹' => '咸',
+ '鹼' => '硷',
+ '鹽' => '塩',
+ '鹾' => '鹺',
+ '麁' => '粗',
+ '麄' => '粗',
+ '麆' => '粗',
+ '麋' => '麊',
+ '麗' => '丽',
+ '麠' => '麖',
+ '麤' => '粗',
+ '麦' => '麥',
+ '麪' => '面',
+ '麯' => '曲',
+ '麴' => '曲',
+ '麵' => '面',
+ '麸' => '麩',
+ '麻' => '淋',
+ '麼' => '么',
+ '麽' => '么',
+ '黄' => '黃',
+ '黌' => '黉',
+ '黎' => '菞',
+ '黒' => '黑',
+ '黔' => '軡',
+ '黙' => '默',
+ '點' => '奌',
+ '黨' => '党',
+ '黲' => '黪',
+ '黴' => '霉',
+ '黶' => '黡',
+ '黷' => '黩',
+ '黾' => '黽',
+ '鼄' => '蛛',
+ '鼅' => '蜘',
+ '鼇' => '鰲',
+ '鼈' => '鱉',
+ '鼋' => '黿',
+ '鼌' => '鼂',
+ '鼍' => '鼉',
+ '鼓' => '皷',
+ '鼕' => '冬',
+ '鼗' => '鞀',
+ '鼳' => '鼰',
+ '鼹' => '鼴',
+ '鼾' => '哻',
+ '齀' => '鼿',
+ '齃' => '頞',
+ '齊' => '亝',
+ '齋' => '斋',
+ '齎' => '賫',
+ '齏' => '虀',
+ '齐' => '亝',
+ '齑' => '虀',
+ '齒' => '歯',
+ '齣' => '出',
+ '齥' => '齛',
+ '齧' => '啮',
+ '齩' => '咬',
+ '齪' => '踀',
+ '齳' => '齫',
+ '齶' => '腭',
+ '齿' => '歯',
+ '龀' => '齔',
+ '龁' => '齕',
+ '龂' => '齗',
+ '龃' => '齟',
+ '龄' => '齡',
+ '龅' => '齙',
+ '龆' => '齠',
+ '龇' => '齜',
+ '龈' => '齦',
+ '龉' => '齬',
+ '龊' => '踀',
+ '龋' => '齲',
+ '龌' => '齷',
+ '龍' => '竜',
+ '龎' => '厐',
+ '龐' => '厐',
+ '龑' => '䶮',
+ '龒' => '竜',
+ '龘' => '龖',
+ '龙' => '竜',
+ '龚' => '龔',
+ '龛' => '龕',
+ '龜' => '亀',
+ '龝' => '秋',
+ '龞' => '鱉',
+ '龟' => '亀',
+ '龢' => '和',
+ '꒜' => 'ꃀ',
+ '꒞' => 'ꁊ',
+ '꒬' => 'ꁐ',
+ '꒰' => 'ꏂ',
+ '꒺' => 'ꎿ',
+ '꒾' => 'ꊱ',
+ '꒿' => 'ꉙ',
+ '꓀' => 'ꎫ',
+ '꓂' => 'ꎵ',
+ '0' => 'O',
+ '1' => 'I',
+ '2' => '2',
+ '3' => 'E',
+ '4' => 'A',
+ '5' => 'S',
+ '6' => 'G',
+ '7' => '7',
+ '8' => '8',
+ '9' => '9',
+ ':' => ':',
+ ';' => ';',
+ '<' => '<',
+ '=' => '=',
+ '>' => '>',
+ '?' => '?',
+ '@' => 'A',
+ 'A' => 'A',
+ 'B' => 'B',
+ 'C' => 'C',
+ 'D' => 'D',
+ 'E' => 'E',
+ 'F' => 'F',
+ 'G' => 'G',
+ 'H' => 'H',
+ 'I' => 'I',
+ 'J' => 'J',
+ 'K' => 'K',
+ 'L' => 'L',
+ 'M' => 'M',
+ 'N' => 'N',
+ 'O' => 'O',
+ 'P' => 'P',
+ 'Q' => 'Q',
+ 'R' => 'R',
+ 'S' => 'S',
+ 'T' => 'T',
+ 'U' => 'U',
+ 'V' => 'V',
+ 'W' => 'W',
+ 'X' => 'X',
+ 'Y' => 'Y',
+ 'Z' => 'Z',
+ '[' => '[',
+ '\' => '\\',
+ ']' => ']',
+ '^' => '^',
+ '_' => '_',
+ '`' => '`',
+ 'a' => 'A',
+ 'b' => 'B',
+ 'c' => 'C',
+ 'd' => 'D',
+ 'e' => 'E',
+ 'f' => 'F',
+ 'g' => 'G',
+ 'h' => 'H',
+ 'i' => 'I',
+ 'j' => 'J',
+ 'k' => 'K',
+ 'l' => 'L',
+ 'm' => 'M',
+ 'n' => 'N',
+ 'o' => 'O',
+ 'p' => 'P',
+ 'q' => 'Q',
+ 'r' => 'R',
+ 's' => 'S',
+ 't' => 'T',
+ 'u' => 'U',
+ 'v' => 'V',
+ 'w' => 'W',
+ 'x' => 'X',
+ 'y' => 'Y',
+ 'z' => 'Z',
+ '。' => '。',
+ '「' => '「',
+ '」' => '」',
+ '、' => '、',
+ '・' => '・',
+ 'ヲ' => 'ヲ',
+ 'ァ' => 'ァ',
+ 'ィ' => 'ィ',
+ 'ゥ' => 'ゥ',
+ 'ェ' => 'ェ',
+ 'ォ' => 'ォ',
+ 'ャ' => 'ャ',
+ 'ュ' => 'ュ',
+ 'ョ' => 'ョ',
+ 'ッ' => 'ッ',
+ 'ー' => 'ー',
+ 'ア' => 'ア',
+ 'イ' => 'イ',
+ 'ウ' => 'ウ',
+ 'エ' => 'エ',
+ 'オ' => 'オ',
+ 'カ' => 'カ',
+ 'キ' => 'キ',
+ 'ク' => 'ク',
+ 'ケ' => 'ケ',
+ 'コ' => 'コ',
+ 'サ' => 'サ',
+ 'シ' => 'シ',
+ 'ス' => 'ス',
+ 'セ' => 'セ',
+ 'ソ' => 'ソ',
+ 'タ' => 'タ',
+ 'チ' => 'チ',
+ 'ツ' => 'ツ',
+ 'テ' => 'テ',
+ 'ト' => 'ト',
+ 'ナ' => 'ナ',
+ 'ニ' => 'ニ',
+ 'ヌ' => 'ヌ',
+ 'ネ' => 'ネ',
+ 'ノ' => 'ノ',
+ 'ハ' => 'ハ',
+ 'ヒ' => 'ヒ',
+ 'フ' => 'フ',
+ 'ヘ' => 'へ',
+ 'ホ' => 'ホ',
+ 'マ' => 'マ',
+ 'ミ' => 'ミ',
+ 'ム' => 'ム',
+ 'メ' => 'メ',
+ 'モ' => 'モ',
+ 'ヤ' => 'ヤ',
+ 'ユ' => 'ユ',
+ 'ヨ' => 'ヨ',
+ 'ラ' => 'ラ',
+ 'リ' => 'リ',
+ 'ル' => 'ル',
+ 'レ' => 'レ',
+ 'ロ' => 'ロ',
+ 'ワ' => 'ワ',
+ 'ン' => 'ン',
+ '゙' => '゙',
+ '゚' => '゚',
+ 'ᅠ' => 'ㅤ',
+ 'ᄀ' => 'ㄱ',
+ 'ᄁ' => 'ㄲ',
+ 'ᆪ' => 'ㄳ',
+ 'ᄂ' => 'ㄴ',
+ 'ᆬ' => 'ㄵ',
+ 'ᆭ' => 'ㄶ',
+ 'ᄃ' => 'ㄷ',
+ 'ᄄ' => 'ㄸ',
+ 'ᄅ' => 'ㄹ',
+ 'ᆰ' => 'ㄺ',
+ 'ᆱ' => 'ㄻ',
+ 'ᆲ' => 'ㄼ',
+ 'ᆳ' => 'ㄽ',
+ 'ᆴ' => 'ㄾ',
+ 'ᆵ' => 'ㄿ',
+ 'ᄚ' => 'ㅀ',
+ 'ᄆ' => 'ㅁ',
+ 'ᄇ' => 'ㅂ',
+ 'ᄈ' => 'ㅃ',
+ 'ᄡ' => 'ㅄ',
+ 'ᄉ' => 'ㅅ',
+ 'ᄊ' => 'ㅆ',
+ 'ᄋ' => 'ㅇ',
+ 'ᄌ' => 'ㅈ',
+ 'ᄍ' => 'ㅉ',
+ 'ᄎ' => 'ㅊ',
+ 'ᄏ' => 'ㅋ',
+ 'ᄐ' => 'ㅌ',
+ 'ᄑ' => 'ㅍ',
+ 'ᄒ' => 'ㅎ',
+ 'ᅡ' => 'ㅏ',
+ 'ᅢ' => 'ㅐ',
+ 'ᅣ' => 'ㅑ',
+ 'ᅤ' => 'ㅒ',
+ 'ᅥ' => 'ㅓ',
+ 'ᅦ' => 'ㅔ',
+ 'ᅧ' => 'ㅕ',
+ 'ᅨ' => 'ㅖ',
+ 'ᅩ' => 'ㅗ',
+ 'ᅪ' => 'ㅘ',
+ 'ᅫ' => 'ㅙ',
+ 'ᅬ' => 'ㅚ',
+ 'ᅭ' => 'ㅛ',
+ 'ᅮ' => 'ㅜ',
+ 'ᅯ' => 'ㅝ',
+ 'ᅰ' => 'ㅞ',
+ 'ᅱ' => 'ㅟ',
+ 'ᅲ' => 'ㅠ',
+ 'ᅳ' => 'ㅡ',
+ 'ᅴ' => 'ㅢ',
+ 'ᅵ' => 'ㅣ',
+);
diff --git a/AntiSpoof/equivset.ser b/AntiSpoof/equivset.ser
new file mode 100644
index 00000000..f3ca3de8
--- /dev/null
+++ b/AntiSpoof/equivset.ser
@@ -0,0 +1 @@
+a:5567:{s:1:"$";s:1:"S";i:0;s:1:"O";i:1;s:1:"I";i:3;s:1:"E";i:4;s:1:"A";i:5;s:1:"S";i:6;s:1:"G";s:1:"@";s:1:"A";s:1:"a";s:1:"A";s:1:"b";s:1:"B";s:1:"c";s:1:"C";s:1:"d";s:1:"D";s:1:"e";s:1:"E";s:1:"f";s:1:"F";s:1:"g";s:1:"G";s:1:"h";s:1:"H";s:1:"i";s:1:"I";s:1:"j";s:1:"J";s:1:"k";s:1:"K";s:1:"l";s:1:"L";s:1:"m";s:1:"M";s:1:"n";s:1:"N";s:1:"o";s:1:"O";s:1:"p";s:1:"P";s:1:"q";s:1:"Q";s:1:"r";s:1:"R";s:1:"s";s:1:"S";s:1:"t";s:1:"T";s:1:"u";s:1:"U";s:1:"v";s:1:"V";s:1:"w";s:1:"W";s:1:"x";s:1:"X";s:1:"y";s:1:"Y";s:1:"z";s:1:"Z";s:1:"|";s:1:"I";s:2:"¢";s:1:"C";s:2:"£";s:1:"L";s:2:"®";s:1:"R";s:2:"À";s:1:"A";s:2:"Á";s:1:"A";s:2:"Â";s:1:"A";s:2:"Ã";s:1:"A";s:2:"Ä";s:1:"A";s:2:"Å";s:1:"A";s:2:"Æ";s:1:"A";s:2:"Ð";s:1:"D";s:2:"Ø";s:1:"O";s:2:"Þ";s:1:"P";s:2:"ß";s:1:"B";s:2:"à";s:1:"A";s:2:"á";s:1:"A";s:2:"â";s:1:"A";s:2:"ã";s:1:"A";s:2:"ä";s:1:"A";s:2:"å";s:1:"A";s:2:"æ";s:1:"A";s:2:"ç";s:1:"C";s:2:"è";s:1:"E";s:2:"é";s:1:"E";s:2:"ê";s:1:"E";s:2:"ë";s:1:"E";s:2:"ì";s:1:"I";s:2:"í";s:1:"I";s:2:"î";s:1:"I";s:2:"ï";s:1:"I";s:2:"ð";s:1:"D";s:2:"ñ";s:1:"N";s:2:"ò";s:1:"O";s:2:"ó";s:1:"O";s:2:"ô";s:1:"O";s:2:"õ";s:1:"O";s:2:"ö";s:1:"O";s:2:"ø";s:1:"O";s:2:"ù";s:1:"U";s:2:"ú";s:1:"U";s:2:"û";s:1:"U";s:2:"ü";s:1:"U";s:2:"ý";s:1:"Y";s:2:"þ";s:1:"P";s:2:"ÿ";s:1:"Y";s:2:"Ā";s:1:"A";s:2:"ā";s:1:"A";s:2:"Ă";s:1:"A";s:2:"ă";s:1:"A";s:2:"Ą";s:1:"A";s:2:"ą";s:1:"A";s:2:"ć";s:1:"C";s:2:"ĉ";s:1:"C";s:2:"ċ";s:1:"C";s:2:"č";s:1:"C";s:2:"ď";s:1:"D";s:2:"Đ";s:1:"D";s:2:"đ";s:1:"D";s:2:"ē";s:1:"E";s:2:"ĕ";s:1:"E";s:2:"ė";s:1:"E";s:2:"ę";s:1:"E";s:2:"ě";s:1:"E";s:2:"ĝ";s:1:"G";s:2:"ğ";s:1:"G";s:2:"ġ";s:1:"G";s:2:"ģ";s:1:"G";s:2:"ĥ";s:1:"H";s:2:"Ħ";s:1:"H";s:2:"ħ";s:1:"H";s:2:"ĩ";s:1:"I";s:2:"ī";s:1:"I";s:2:"ĭ";s:1:"I";s:2:"į";s:1:"I";s:2:"ı";s:1:"I";s:2:"ij";s:2:"IJ";s:2:"ķ";s:1:"K";s:2:"ĸ";s:1:"K";s:2:"Ĺ";s:1:"L";s:2:"ĺ";s:1:"L";s:2:"Ļ";s:1:"L";s:2:"ļ";s:1:"L";s:2:"Ľ";s:1:"L";s:2:"ľ";s:1:"L";s:2:"Ŀ";s:1:"L";s:2:"ŀ";s:1:"L";s:2:"Ł";s:1:"L";s:2:"ł";s:1:"L";s:2:"ń";s:1:"N";s:2:"Ņ";s:1:"N";s:2:"ņ";s:1:"N";s:2:"ň";s:1:"N";s:2:"ō";s:1:"O";s:2:"ŏ";s:1:"O";s:2:"ő";s:1:"O";s:2:"œ";s:2:"Œ";s:2:"Ŕ";s:1:"R";s:2:"ŕ";s:1:"R";s:2:"Ŗ";s:1:"R";s:2:"ŗ";s:1:"R";s:2:"Ř";s:1:"R";s:2:"ř";s:1:"R";s:2:"Ś";s:1:"S";s:2:"ś";s:1:"S";s:2:"Ŝ";s:1:"S";s:2:"ŝ";s:1:"S";s:2:"Ş";s:1:"S";s:2:"ş";s:1:"S";s:2:"Š";s:1:"S";s:2:"š";s:1:"S";s:2:"Ţ";s:1:"T";s:2:"ţ";s:1:"T";s:2:"Ť";s:1:"T";s:2:"ť";s:1:"T";s:2:"Ŧ";s:1:"T";s:2:"ŧ";s:1:"T";s:2:"ũ";s:1:"U";s:2:"ū";s:1:"U";s:2:"ŭ";s:1:"U";s:2:"ů";s:1:"U";s:2:"ű";s:1:"U";s:2:"ų";s:1:"U";s:2:"ŵ";s:1:"W";s:2:"ŷ";s:1:"Y";s:2:"ź";s:1:"Z";s:2:"ż";s:1:"Z";s:2:"ž";s:1:"Z";s:2:"ƀ";s:1:"B";s:2:"Ɓ";s:1:"B";s:2:"Ƃ";s:1:"B";s:2:"ƃ";s:1:"B";s:2:"Ƅ";s:1:"B";s:2:"ƅ";s:1:"B";s:2:"Ƈ";s:1:"C";s:2:"ƈ";s:1:"C";s:2:"Ɖ";s:1:"D";s:2:"Ɗ";s:1:"D";s:2:"Ƌ";s:1:"D";s:2:"ƌ";s:1:"D";s:2:"Ə";s:2:"ǝ";s:2:"Ɛ";s:1:"E";s:2:"Ƒ";s:1:"F";s:2:"ƒ";s:1:"F";s:2:"Ɠ";s:1:"G";s:2:"Ɩ";s:1:"L";s:2:"Ɨ";s:1:"L";s:2:"Ƙ";s:1:"K";s:2:"ƙ";s:1:"K";s:2:"ƚ";s:1:"L";s:2:"Ɲ";s:1:"N";s:2:"ơ";s:2:"Ơ";s:2:"Ƥ";s:1:"P";s:2:"ƥ";s:1:"P";s:2:"Ʀ";s:1:"R";s:2:"Ƨ";s:1:"2";s:2:"ƨ";s:1:"2";s:2:"ƫ";s:1:"T";s:2:"Ƭ";s:1:"T";s:2:"ƭ";s:1:"T";s:2:"Ʈ";s:1:"T";s:2:"Ʊ";s:1:"U";s:2:"Ʋ";s:1:"U";s:2:"Ƴ";s:1:"Y";s:2:"ƴ";s:1:"Y";s:2:"Ƶ";s:1:"Z";s:2:"ƶ";s:1:"Z";s:2:"Ʒ";s:1:"E";s:2:"Ƽ";s:1:"S";s:2:"ƽ";s:1:"S";s:2:"ƿ";s:1:"P";s:2:"ǀ";s:1:"I";s:2:"ǃ";s:1:"I";s:2:"DŽ";s:2:"DZ";s:2:"dž";s:2:"dz";s:2:"lj";s:2:"LJ";s:2:"nj";s:2:"NJ";s:2:"Ǎ";s:1:"A";s:2:"ǐ";s:1:"I";s:2:"ǒ";s:1:"O";s:2:"ǔ";s:1:"U";s:2:"ǖ";s:1:"U";s:2:"ǘ";s:1:"U";s:2:"ǚ";s:1:"U";s:2:"ǜ";s:1:"U";s:2:"Ǟ";s:1:"A";s:2:"ǟ";s:1:"A";s:2:"ǡ";s:1:"A";s:2:"Ǥ";s:1:"G";s:2:"Ǡ";s:1:"A";s:2:"ǥ";s:1:"G";s:2:"ǧ";s:1:"G";s:2:"ǫ";s:1:"O";s:2:"dz";s:2:"DZ";s:2:"ǵ";s:1:"G";s:2:"Ƿ";s:1:"P";s:2:"Ǻ";s:1:"A";s:2:"ǻ";s:1:"A";s:2:"Ǽ";s:1:"A";s:2:"Ǿ";s:1:"O";s:2:"ǿ";s:1:"O";s:2:"Ȁ";s:1:"A";s:2:"ȁ";s:1:"A";s:2:"Ȃ";s:1:"A";s:2:"ȅ";s:1:"E";s:2:"ȇ";s:1:"E";s:2:"Ȑ";s:1:"R";s:2:"ȑ";s:1:"R";s:2:"Ȓ";s:1:"R";s:2:"ȓ";s:1:"R";s:2:"Ț";s:1:"T";s:2:"ț";s:1:"T";s:2:"Ȝ";s:1:"E";s:2:"ȝ";s:1:"E";s:2:"Ȟ";s:1:"H";s:2:"Ƞ";s:1:"N";s:2:"Ȣ";s:1:"8";s:2:"ȣ";s:1:"8";s:2:"Ȥ";s:1:"Z";s:2:"ȥ";s:1:"Z";s:2:"Ȧ";s:1:"A";s:2:"Ȩ";s:1:"E";s:2:"ȩ";s:1:"E";s:2:"Ȳ";s:1:"Y";s:2:"ȳ";s:1:"Y";s:2:"Ɋ";s:1:"Q";s:2:"ɑ";s:1:"A";s:2:"ɓ";s:1:"B";s:2:"ɖ";s:1:"D";s:2:"ɗ";s:1:"D";s:2:"ɘ";s:2:"ǝ";s:2:"ə";s:1:"E";s:2:"ɚ";s:2:"ǝ";s:2:"ɛ";s:1:"E";s:2:"ɜ";s:1:"E";s:2:"ɠ";s:1:"G";s:2:"ɡ";s:1:"G";s:2:"ɢ";s:1:"G";s:2:"ɦ";s:1:"H";s:2:"ɨ";s:1:"I";s:2:"ɩ";s:1:"I";s:2:"ɫ";s:1:"I";s:2:"ɭ";s:1:"I";s:2:"ɯ";s:1:"M";s:2:"ɱ";s:1:"M";s:2:"ɲ";s:1:"N";s:2:"ɳ";s:1:"N";s:2:"ɵ";s:1:"O";s:2:"ɼ";s:1:"R";s:2:"ɽ";s:1:"R";s:2:"ʀ";s:1:"R";s:2:"ʂ";s:1:"S";s:2:"ʃ";s:1:"C";s:2:"ʈ";s:1:"T";s:2:"ʊ";s:1:"Y";s:2:"ʋ";s:1:"U";s:2:"ʏ";s:1:"Y";s:2:"ʐ";s:1:"Z";s:2:"ʒ";s:1:"E";s:2:"ʔ";s:1:"?";s:2:"ʘ";s:1:"O";s:2:"ʙ";s:1:"B";s:2:"ʜ";s:1:"H";s:2:"ʠ";s:1:"Q";s:2:"ʰ";s:1:"H";s:2:"ʱ";s:1:"H";s:2:"ʳ";s:1:"R";s:2:"ʴ";s:1:"R";s:2:"ʵ";s:1:"R";s:2:"ʶ";s:1:"R";s:2:"ʸ";s:1:"Y";s:2:"Ύ";s:1:"Y";s:2:"Α";s:1:"A";s:2:"Β";s:1:"B";s:2:"Γ";s:1:"R";s:2:"Ε";s:1:"E";s:2:"Ζ";s:1:"Z";s:2:"Η";s:1:"H";s:2:"Θ";s:1:"O";s:2:"Ι";s:1:"I";s:2:"Κ";s:1:"K";s:2:"Μ";s:1:"M";s:2:"Ν";s:1:"N";s:2:"Ο";s:1:"O";s:2:"Ρ";s:1:"P";s:2:"Τ";s:1:"T";s:2:"Υ";s:1:"Y";s:2:"Φ";s:2:"ɸ";s:2:"Χ";s:1:"X";s:2:"ά";s:1:"A";s:2:"ή";s:1:"H";s:2:"α";s:1:"A";s:2:"β";s:1:"B";s:2:"γ";s:1:"Y";s:2:"δ";s:2:"Δ";s:2:"ε";s:1:"E";s:2:"η";s:1:"N";s:2:"θ";s:1:"O";s:2:"ι";s:1:"I";s:2:"κ";s:1:"K";s:2:"λ";s:2:"Λ";s:2:"μ";s:1:"M";s:2:"ν";s:1:"N";s:2:"ξ";s:2:"Ξ";s:2:"ο";s:1:"O";s:2:"π";s:2:"Π";s:2:"ρ";s:1:"P";s:2:"ς";s:1:"C";s:2:"σ";s:1:"O";s:2:"τ";s:1:"T";s:2:"υ";s:1:"Y";s:2:"φ";s:2:"ɸ";s:2:"χ";s:1:"X";s:2:"ψ";s:2:"Ψ";s:2:"ω";s:1:"W";s:2:"ϋ";s:1:"Y";s:2:"ό";s:1:"O";s:2:"ύ";s:1:"Y";s:2:"ϒ";s:1:"Y";s:2:"ϓ";s:1:"Y";s:2:"ϕ";s:2:"ɸ";s:2:"Ϝ";s:1:"F";s:2:"ϝ";s:1:"F";s:2:"Ϩ";s:1:"2";s:2:"ϩ";s:1:"2";s:2:"ϲ";s:1:"C";s:2:"ϳ";s:1:"J";s:2:"ϴ";s:1:"O";s:2:"Ϲ";s:1:"C";s:2:"Є";s:1:"E";s:2:"Ѕ";s:1:"S";s:2:"І";s:1:"I";s:2:"Ј";s:1:"J";s:2:"Ћ";s:1:"H";s:2:"А";s:1:"A";s:2:"Б";s:1:"G";s:2:"В";s:1:"B";s:2:"Г";s:1:"R";s:2:"Е";s:1:"E";s:2:"З";s:1:"E";s:2:"К";s:1:"K";s:2:"М";s:1:"M";s:2:"Н";s:1:"H";s:2:"О";s:1:"O";s:2:"П";s:2:"Π";s:2:"Р";s:1:"P";s:2:"С";s:1:"C";s:2:"Т";s:1:"T";s:2:"У";s:1:"Y";s:2:"Ф";s:2:"ɸ";s:2:"Х";s:1:"X";s:2:"Ч";s:1:"A";s:2:"Ъ";s:1:"B";s:2:"Ь";s:1:"B";s:2:"а";s:1:"A";s:2:"б";s:1:"B";s:2:"в";s:1:"B";s:2:"г";s:1:"R";s:2:"е";s:1:"E";s:2:"ж";s:2:"Ж";s:2:"з";s:1:"E";s:2:"и";s:2:"И";s:2:"к";s:1:"K";s:2:"л";s:2:"Л";s:2:"м";s:1:"M";s:2:"н";s:1:"H";s:2:"о";s:1:"O";s:2:"п";s:2:"Π";s:2:"р";s:1:"P";s:2:"с";s:1:"C";s:2:"т";s:1:"T";s:2:"у";s:1:"Y";s:2:"ф";s:2:"ɸ";s:2:"х";s:1:"X";s:2:"ц";s:1:"U";s:2:"ч";s:1:"A";s:2:"ъ";s:1:"B";s:2:"ы";s:2:"Ы";s:2:"ь";s:1:"B";s:2:"я";s:1:"R";s:2:"є";s:1:"E";s:2:"ѕ";s:1:"S";s:2:"і";s:1:"I";s:2:"ї";s:1:"I";s:2:"ј";s:1:"J";s:2:"њ";s:1:"H";s:2:"ћ";s:1:"H";s:2:"ќ";s:1:"K";s:2:"ў";s:1:"Y";s:2:"Ѣ";s:1:"B";s:2:"ѣ";s:1:"B";s:2:"Ѳ";s:1:"O";s:2:"ѳ";s:1:"O";s:2:"Ѵ";s:1:"V";s:2:"ѵ";s:1:"V";s:2:"ѽ";s:2:"Ѽ";s:2:"Ҋ";s:2:"И";s:2:"ҋ";s:2:"И";s:2:"Ҍ";s:1:"B";s:2:"ҍ";s:1:"B";s:2:"ґ";s:2:"Ґ";s:2:"Ғ";s:1:"F";s:2:"ғ";s:1:"F";s:2:"Җ";s:2:"Ж";s:2:"җ";s:2:"Ж";s:2:"Ҙ";s:1:"E";s:2:"ҙ";s:1:"E";s:2:"Қ";s:1:"K";s:2:"қ";s:1:"K";s:2:"ҝ";s:1:"K";s:2:"Ҟ";s:1:"K";s:2:"ҟ";s:1:"K";s:2:"ҡ";s:1:"K";s:2:"Ң";s:1:"H";s:2:"ң";s:1:"H";s:2:"Ҫ";s:1:"C";s:2:"ҫ";s:1:"C";s:2:"Ҭ";s:1:"T";s:2:"ҭ";s:1:"T";s:2:"Ү";s:1:"Y";s:2:"ү";s:1:"Y";s:2:"Ұ";s:1:"Y";s:2:"ұ";s:1:"Y";s:2:"Ҳ";s:1:"X";s:2:"ҳ";s:1:"X";s:2:"Ҷ";s:1:"Y";s:2:"ҷ";s:1:"Y";s:2:"Һ";s:1:"H";s:2:"һ";s:1:"H";s:2:"ҽ";s:2:"Ҽ";s:2:"Ҿ";s:2:"Ҽ";s:2:"ҿ";s:2:"Ҽ";s:2:"Ӏ";s:1:"I";s:2:"ӄ";s:1:"K";s:2:"Ӆ";s:2:"Л";s:2:"ӆ";s:2:"Л";s:2:"Ӈ";s:1:"H";s:2:"ӈ";s:1:"H";s:2:"Ӊ";s:1:"H";s:2:"ӊ";s:1:"H";s:2:"Ӌ";s:1:"Y";s:2:"ӌ";s:1:"Y";s:2:"Ӎ";s:1:"M";s:2:"ӎ";s:1:"M";s:2:"Ӕ";s:1:"A";s:2:"ӕ";s:1:"A";s:2:"Ә";s:2:"ǝ";s:2:"ә";s:2:"ǝ";s:2:"Ӡ";s:1:"E";s:2:"ӡ";s:1:"E";s:2:"ӧ";s:1:"O";s:2:"Ө";s:1:"O";s:2:"ө";s:1:"O";s:2:"ӫ";s:1:"O";s:2:"ӯ";s:1:"Y";s:2:"ӱ";s:1:"Y";s:2:"ӳ";s:1:"Y";s:2:"Ԁ";s:1:"D";s:2:"ԁ";s:1:"D";s:2:"ԋ";s:1:"H";s:2:"Ԍ";s:1:"G";s:2:"ԍ";s:1:"G";s:2:"Ա";s:1:"U";s:2:"Բ";s:2:"բ";s:2:"Գ";s:1:"Q";s:2:"Դ";s:2:"դ";s:2:"Ե";s:2:"ե";s:2:"Զ";s:2:"զ";s:2:"Է";s:2:"է";s:2:"Ը";s:2:"ը";s:2:"Թ";s:2:"թ";s:2:"Ժ";s:2:"ժ";s:2:"Ի";s:2:"ի";s:2:"Լ";s:2:"լ";s:2:"Խ";s:2:"խ";s:2:"Ծ";s:2:"ծ";s:2:"Կ";s:2:"կ";s:2:"Հ";s:2:"հ";s:2:"Ձ";s:2:"ձ";s:2:"Ղ";s:2:"ղ";s:2:"Ճ";s:2:"ճ";s:2:"Մ";s:1:"U";s:2:"Յ";s:1:"E";s:2:"Ն";s:2:"ն";s:2:"Շ";s:2:"շ";s:2:"Ո";s:2:"ո";s:2:"Չ";s:2:"չ";s:2:"Պ";s:2:"պ";s:2:"Ջ";s:2:"ջ";s:2:"Ռ";s:2:"ռ";s:2:"Ս";s:1:"U";s:2:"Վ";s:2:"վ";s:2:"Տ";s:2:"տ";s:2:"Ր";s:2:"ր";s:2:"Ց";s:2:"ց";s:2:"Ւ";s:2:"ւ";s:2:"Փ";s:2:"փ";s:2:"Ք";s:2:"ք";s:2:"Օ";s:1:"O";s:2:"Ֆ";s:2:"ֆ";s:2:"գ";s:1:"Q";s:2:"զ";s:1:"Q";s:2:"հ";s:1:"H";s:2:"յ";s:1:"J";s:2:"ո";s:1:"N";s:2:"ռ";s:1:"N";s:2:"ս";s:1:"U";s:2:"ց";s:1:"G";s:2:"ք";s:1:"P";s:2:"օ";s:1:"O";s:2:"։";s:1:":";s:2:"֜";s:2:"́";s:2:"֯";s:2:"̊";s:2:"ֹ";s:2:"̇";s:2:"ׁ";s:2:"̇";s:2:"ׂ";s:2:"̇";s:2:"׃";s:1:":";s:2:"ׄ";s:2:"̇";s:2:"׳";s:1:"'";s:2:"״";s:1:""";s:2:"ع";s:1:"E";s:2:"ي";s:2:"ى";s:2:"ُ";s:2:"̓";s:2:"٩";s:1:"A";s:2:"٬";s:2:"،";s:2:"ٴ";s:2:"ٔ";s:2:"ڠ";s:1:"E";s:2:"ک";s:2:"ك";s:2:"ڻ";s:2:"ٹ";s:2:"ھ";s:2:"ه";s:2:"ہ";s:2:"ه";s:2:"ی";s:2:"ى";s:2:"ې";s:2:"ٻ";s:2:"ە";s:2:"ه";s:2:"ۧ";s:2:"ۦ";s:2:"۬";s:2:"۟";s:2:"۰";s:2:"٠";s:2:"۱";s:2:"١";s:2:"۲";s:2:"٢";s:2:"۳";s:2:"٣";s:2:"۷";s:2:"٧";s:2:"۸";s:2:"٨";s:2:"۹";s:1:"A";s:2:"܂";s:1:".";s:2:"݁";s:2:"̇";s:2:"݂";s:2:"ܼ";s:2:"݇";s:2:"́";s:3:"ं";s:2:"̇";s:3:"़";s:2:"̣";s:3:"॒";s:2:"̠";s:3:"॓";s:2:"̀";s:3:"॔";s:2:"́";s:3:"०";s:1:"O";s:3:"়";s:2:"̣";s:3:"০";s:1:"O";s:3:"৪";s:1:"8";s:3:"৭";s:1:"9";s:3:"ਂ";s:2:"̇";s:3:"ਃ";s:3:"ঃ";s:3:"਼";s:2:"̣";s:3:"ੋ";s:3:"ॆ";s:3:"੍";s:3:"्";s:3:"੦";s:1:"O";s:3:"੧";s:1:"9";s:3:"੪";s:1:"8";s:3:"ં";s:2:"̇";s:3:"઼";s:2:"̣";s:3:"ઽ";s:3:"ऽ";s:3:"ુ";s:3:"ु";s:3:"ૂ";s:3:"ू";s:3:"્";s:3:"्";s:3:"૦";s:1:"O";s:3:"૨";s:3:"२";s:3:"૩";s:3:"३";s:3:"૪";s:3:"४";s:3:"૮";s:3:"८";s:3:"ଃ";s:1:"8";s:3:"଼";s:2:"̣";s:3:"୦";s:1:"O";s:3:"୨";s:1:"9";s:3:"ஂ";s:2:"̊";s:3:"ஜ";s:3:"ஐ";s:3:"ர";s:3:"ஈ";s:3:"ா";s:3:"ஈ";s:3:"ை";s:3:"ன";s:3:"்";s:2:"̇";s:3:"ௗ";s:3:"ள";s:3:"௦";s:1:"O";s:3:"௧";s:3:"க";s:3:"௨";s:3:"உ";s:3:"௪";s:3:"ச";s:3:"௭";s:3:"எ";s:3:"௮";s:3:"அ";s:3:"௰";s:3:"ய";s:3:"௵";s:3:"௳";s:3:"௸";s:3:"ஷ";s:3:"ం";s:1:"O";s:3:"ః";s:3:"ঃ";s:3:"ఢ";s:3:"డ";s:3:"భ";s:3:"బ";s:3:"ష";s:3:"వ";s:3:"౦";s:1:"O";s:3:"ಂ";s:1:"O";s:3:"ಃ";s:3:"ঃ";s:3:"ಅ";s:3:"అ";s:3:"ಆ";s:3:"ఆ";s:3:"ಇ";s:3:"ఇ";s:3:"ಒ";s:3:"ఒ";s:3:"ಓ";s:3:"ఓ";s:3:"ಔ";s:3:"ఔ";s:3:"ಜ";s:3:"జ";s:3:"ಞ";s:3:"ఞ";s:3:"ಣ";s:3:"ణ";s:3:"ಯ";s:3:"య";s:3:"ಱ";s:3:"ఱ";s:3:"ಲ";s:3:"ల";s:3:"೦";s:1:"O";s:3:"೧";s:3:"౧";s:3:"೨";s:3:"౨";s:3:"೯";s:3:"౯";s:3:"ം";s:1:"O";s:3:"ഉ";s:3:"உ";s:3:"ജ";s:3:"ஐ";s:3:"ഠ";s:1:"O";s:3:"ണ";s:3:"ண";s:3:"റ";s:3:"ര";s:3:"ഴ";s:3:"ழ";s:3:"ശ";s:3:"ஶ";s:3:"ി";s:3:"ி";s:3:"ീ";s:3:"ி";s:3:"ു";s:3:"ூ";s:3:"ൂ";s:3:"ூ";s:3:"ൃ";s:3:"ூ";s:3:"ൡ";s:3:"ഞ";s:3:"ฃ";s:3:"ข";s:3:"ซ";s:3:"ช";s:3:"ฏ";s:3:"ฎ";s:3:"ด";s:3:"ค";s:3:"ต";s:3:"ค";s:3:"ท";s:3:"ฑ";s:3:"ม";s:3:"ฆ";s:3:"฿";s:1:"B";s:3:"ๅ";s:3:"า";s:3:"ํ";s:2:"̊";s:3:"๐";s:1:"O";s:3:"ຈ";s:3:"จ";s:3:"ຍ";s:3:"ย";s:3:"ບ";s:3:"บ";s:3:"ປ";s:3:"ป";s:3:"ຝ";s:3:"ฝ";s:3:"ພ";s:3:"พ";s:3:"ຟ";s:3:"ฟ";s:3:"ຸ";s:3:"ุ";s:3:"ູ";s:3:"ู";s:3:"່";s:3:"่";s:3:"້";s:3:"้";s:3:"໊";s:3:"๊";s:3:"໋";s:3:"๋";s:3:"ໍ";s:2:"̊";s:3:"໐";s:1:"O";s:3:"༌";s:3:"་";s:3:"ဝ";s:1:"O";s:3:"ံ";s:2:"̊";s:3:"၀";s:1:"O";s:3:"ყ";s:1:"Y";s:3:"ჳ";s:1:"E";s:3:"Ꭱ";s:1:"R";s:3:"Ꭵ";s:1:"I";s:3:"Ꭹ";s:1:"Y";s:3:"Ꭺ";s:1:"A";s:3:"Ꭻ";s:1:"J";s:3:"Ꭼ";s:1:"E";s:3:"Ꮁ";s:1:"R";s:3:"Ꮃ";s:1:"W";s:3:"Ꮇ";s:1:"M";s:3:"Ꮋ";s:1:"H";s:3:"Ꮍ";s:1:"Y";s:3:"Ꮎ";s:1:"O";s:3:"Ꮐ";s:1:"G";s:3:"Ꮒ";s:1:"H";s:3:"Ꮓ";s:1:"Z";s:3:"Ꮞ";s:1:"A";s:3:"Ꮟ";s:1:"B";s:3:"Ꮢ";s:1:"R";s:3:"Ꮤ";s:1:"W";s:3:"Ꮥ";s:1:"S";s:3:"Ꮩ";s:1:"V";s:3:"Ꮪ";s:1:"S";s:3:"Ꮮ";s:1:"L";s:3:"Ꮯ";s:1:"C";s:3:"Ꮲ";s:1:"P";s:3:"Ꮶ";s:1:"K";s:3:"Ꮷ";s:1:"J";s:3:"Ᏺ";s:1:"H";s:3:"Ᏻ";s:1:"G";s:3:"Ᏼ";s:1:"B";s:3:"ᐃ";s:2:"Δ";s:3:"ᐧ";s:2:"·";s:3:"ᐯ";s:1:"V";s:3:"ᑭ";s:1:"P";s:3:"ᑯ";s:1:"D";s:3:"ᒍ";s:1:"J";s:3:"ᒿ";s:1:"2";s:3:"ᓑ";s:3:"ᐡ";s:3:"ᕁ";s:1:"X";s:3:"ᕷ";s:2:"Δ";s:3:"ᕼ";s:1:"H";s:3:"ᕽ";s:1:"X";s:3:"ᖇ";s:1:"R";s:3:"ᖯ";s:1:"B";s:3:"ᖴ";s:1:"F";s:3:"ᗅ";s:1:"A";s:3:"ᗞ";s:1:"D";s:3:"ᗪ";s:1:"D";s:3:"ᗯ";s:1:"W";s:3:"ᗰ";s:1:"M";s:3:"ᗷ";s:1:"B";s:3:"ᘂ";s:3:"ᒐ";s:3:"ᘃ";s:3:"ᒉ";s:3:"ᘄ";s:3:"ᓓ";s:3:"ᘇ";s:3:"ᓚ";s:3:"ᘢ";s:3:"ᕃ";s:3:"ᘣ";s:3:"ᕆ";s:3:"ᘤ";s:3:"ᕊ";s:3:"ᘯ";s:2:"Ω";s:3:"ᘴ";s:1:"U";s:3:"ᘵ";s:2:"Ω";s:3:"᙭";s:1:"X";s:3:"᙮";s:1:"X";s:3:"ᛗ";s:1:"M";s:3:"ឣ";s:3:"អ";s:3:"ិ";s:3:"ิ";s:3:"ី";s:3:"ี";s:3:"ឹ";s:3:"ึ";s:3:"ឺ";s:3:"ื";s:3:"ំ";s:2:"̊";s:3:"់";s:3:"่";s:3:"៓";s:2:"̊";s:3:"។";s:3:"ฯ";s:3:"៕";s:3:"๚";s:3:"៙";s:3:"๏";s:3:"៚";s:3:"๛";s:3:"᠐";s:1:"O";s:3:"ᢖ";s:3:"ᡜ";s:3:"ᥙ";s:1:"U";s:3:"ᴄ";s:1:"C";s:3:"ᴅ";s:1:"D";s:3:"ᴆ";s:1:"D";s:3:"ᴇ";s:1:"E";s:3:"ᴊ";s:1:"J";s:3:"ᴋ";s:1:"K";s:3:"ᴌ";s:1:"L";s:3:"ᴍ";s:1:"M";s:3:"ᴎ";s:1:"N";s:3:"ᴏ";s:1:"O";s:3:"ᴘ";s:1:"P";s:3:"ᴛ";s:1:"T";s:3:"ᴠ";s:1:"V";s:3:"ᴡ";s:1:"W";s:3:"ᴢ";s:1:"Z";s:3:"Ḁ";s:1:"A";s:3:"ḁ";s:1:"A";s:3:"ḍ";s:1:"D";s:3:"ḗ";s:1:"E";s:3:"ḙ";s:1:"E";s:3:"ḛ";s:1:"E";s:3:"ḝ";s:1:"E";s:3:"ḡ";s:1:"G";s:3:"ḣ";s:1:"H";s:3:"ḥ";s:1:"H";s:3:"ḧ";s:1:"H";s:3:"ḩ";s:1:"H";s:3:"ḫ";s:1:"H";s:3:"ḷ";s:1:"L";s:3:"ḿ";s:1:"M";s:3:"ṁ";s:1:"M";s:3:"ṃ";s:1:"M";s:3:"ṇ";s:1:"N";s:3:"Ṕ";s:1:"P";s:3:"ṕ";s:1:"P";s:3:"Ṗ";s:1:"P";s:3:"ṗ";s:1:"P";s:3:"Ṙ";s:1:"R";s:3:"ṙ";s:1:"R";s:3:"Ṛ";s:1:"R";s:3:"ṛ";s:1:"R";s:3:"Ṝ";s:1:"R";s:3:"ṝ";s:1:"R";s:3:"Ṟ";s:1:"R";s:3:"ṟ";s:1:"R";s:3:"ṣ";s:1:"S";s:3:"ṭ";s:1:"T";s:3:"ẁ";s:1:"W";s:3:"ẃ";s:1:"W";s:3:"ẅ";s:1:"W";s:3:"ẇ";s:1:"W";s:3:"ẉ";s:1:"W";s:3:"ẏ";s:1:"Y";s:3:"ẙ";s:1:"Y";s:3:"Ạ";s:1:"A";s:3:"ạ";s:1:"A";s:3:"Ả";s:1:"A";s:3:"ả";s:1:"A";s:3:"Ấ";s:1:"A";s:3:"ấ";s:1:"A";s:3:"Ầ";s:1:"A";s:3:"ầ";s:1:"A";s:3:"Ẩ";s:1:"A";s:3:"ẩ";s:1:"A";s:3:"Ẫ";s:1:"A";s:3:"ẫ";s:1:"A";s:3:"Ậ";s:1:"A";s:3:"ậ";s:1:"A";s:3:"Ắ";s:1:"A";s:3:"ắ";s:1:"A";s:3:"Ằ";s:1:"A";s:3:"ằ";s:1:"A";s:3:"Ẳ";s:1:"A";s:3:"ẳ";s:1:"A";s:3:"Ẵ";s:1:"A";s:3:"ẵ";s:1:"A";s:3:"Ặ";s:1:"A";s:3:"ặ";s:1:"A";s:3:"ẹ";s:1:"E";s:3:"ẻ";s:1:"E";s:3:"ẽ";s:1:"E";s:3:"ế";s:1:"E";s:3:"ề";s:1:"E";s:3:"ể";s:1:"E";s:3:"ễ";s:1:"E";s:3:"ệ";s:1:"E";s:3:"ọ";s:1:"O";s:3:"ỳ";s:1:"Y";s:3:"ỵ";s:1:"Y";s:3:"ỷ";s:1:"Y";s:3:"ỹ";s:1:"Y";s:3:"ἁ";s:1:"A";s:3:"ἂ";s:1:"A";s:3:"ἃ";s:1:"A";s:3:"ἄ";s:1:"A";s:3:"ἅ";s:1:"A";s:3:"ἆ";s:1:"A";s:3:"ἇ";s:1:"A";s:3:"ἠ";s:1:"H";s:3:"ἡ";s:1:"H";s:3:"ἢ";s:1:"H";s:3:"ἣ";s:1:"H";s:3:"ἤ";s:1:"H";s:3:"ἥ";s:1:"H";s:3:"ἦ";s:1:"H";s:3:"ἧ";s:1:"H";s:3:"ὀ";s:1:"O";s:3:"ὁ";s:1:"O";s:3:"ὂ";s:1:"O";s:3:"ὃ";s:1:"O";s:3:"ὄ";s:1:"O";s:3:"ὅ";s:1:"O";s:3:"ὑ";s:1:"Y";s:3:"ὓ";s:1:"Y";s:3:"ὕ";s:1:"Y";s:3:"ὗ";s:1:"Y";s:3:"ὰ";s:1:"A";s:3:"ὴ";s:1:"H";s:3:"ὸ";s:1:"O";s:3:"ὺ";s:1:"Y";s:3:"ᾀ";s:1:"A";s:3:"ᾁ";s:1:"A";s:3:"ᾂ";s:1:"A";s:3:"ᾃ";s:1:"A";s:3:"ᾄ";s:1:"A";s:3:"ᾅ";s:1:"A";s:3:"ᾆ";s:1:"A";s:3:"ᾇ";s:1:"A";s:3:"ᾐ";s:1:"H";s:3:"ᾳ";s:1:"A";s:3:"ῠ";s:1:"Y";s:3:"ῡ";s:1:"Y";s:3:"Ῠ";s:1:"Y";s:3:"Ὺ";s:1:"Y";s:3:"₣";s:1:"F";s:3:"₤";s:1:"L";s:3:"₥";s:1:"M";s:3:"₦";s:1:"N";s:3:"₧";s:1:"P";s:3:"₩";s:1:"W";s:3:"​";s:0:"";s:3:"₷";s:1:"S";s:3:"₸";s:1:"T";s:3:"ℓ";s:1:"L";s:3:"℧";s:1:"U";s:3:"ⅆ";s:1:"D";s:3:"ⅼ";s:1:"L";s:3:"ⅽ";s:1:"C";s:3:"ⅾ";s:1:"D";s:3:"ⅿ";s:1:"M";s:3:"Ⓐ";s:1:"A";s:3:"Ⱨ";s:1:"H";s:3:"Ⲙ";s:1:"M";s:3:"ⴱ";s:1:"O";s:3:"ⴹ";s:1:"E";s:3:"ⵔ";s:1:"O";s:3:"ꭆ";s:1:"R";s:4:"𐌼";s:1:"M";s:3:"〇";s:1:"O";s:3:"ヘ";s:3:"へ";s:3:"㑳";s:3:"㑇";s:3:"㘚";s:3:"㘎";s:3:"㥮";s:3:"㤘";s:3:"㩳";s:3:"㧐";s:3:"䎛";s:3:"㖈";s:3:"䎱";s:3:"䎬";s:3:"䐠";s:3:"㬻";s:3:"䙡";s:3:"䙌";s:3:"䞍";s:3:"䝼";s:3:"䦂";s:3:"䥇";s:3:"䦶";s:3:"䦛";s:3:"䦷";s:3:"䦟";s:3:"䲣";s:3:"䱷";s:3:"上";s:3:"丄";s:3:"下";s:3:"丅";s:3:"丐";s:3:"丏";s:3:"丗";s:3:"世";s:3:"丠";s:3:"丘";s:3:"丢";s:3:"丟";s:3:"两";s:3:"両";s:3:"丨";s:1:"I";s:3:"乆";s:3:"久";s:3:"乘";s:3:"乗";s:3:"乿";s:3:"乱";s:3:"亁";s:3:"乾";s:3:"亂";s:3:"乱";s:3:"亓";s:3:"丌";s:3:"井";s:3:"丼";s:3:"亙";s:3:"亘";s:3:"亜";s:3:"亚";s:3:"亞";s:3:"亚";s:3:"亯";s:3:"享";s:3:"亰";s:3:"京";s:3:"亾";s:3:"亡";s:3:"仚";s:3:"仙";s:3:"仩";s:3:"丄";s:3:"伍";s:3:"五";s:3:"佇";s:3:"伫";s:3:"佒";s:3:"仰";s:3:"佛";s:3:"仏";s:3:"你";s:3:"伲";s:3:"併";s:3:"並";s:3:"侖";s:3:"仑";s:3:"価";s:3:"价";s:3:"侫";s:3:"佞";s:3:"侶";s:3:"侣";s:3:"俔";s:3:"伣";s:3:"俠";s:3:"侠";s:3:"信";s:3:"伩";s:3:"俣";s:3:"俁";s:3:"俥";s:3:"伡";s:3:"俯";s:3:"俛";s:3:"倀";s:3:"伥";s:3:"倂";s:3:"並";s:3:"倅";s:3:"伜";s:3:"倆";s:3:"俩";s:3:"倈";s:3:"俫";s:3:"倉";s:3:"仓";s:3:"個";s:3:"个";s:3:"們";s:3:"们";s:3:"倣";s:3:"仿";s:3:"倫";s:3:"伦";s:3:"倶";s:3:"俱";s:3:"倹";s:3:"俭";s:3:"值";s:3:"値";s:3:"偉";s:3:"伟";s:3:"側";s:3:"侧";s:3:"偵";s:3:"侦";s:3:"偸";s:3:"偷";s:3:"偹";s:3:"俻";s:3:"偽";s:3:"伪";s:3:"傖";s:3:"伧";s:3:"傘";s:3:"伞";s:3:"備";s:3:"俻";s:3:"傚";s:3:"俲";s:3:"傭";s:3:"佣";s:3:"傯";s:3:"偬";s:3:"傳";s:3:"传";s:3:"傴";s:3:"伛";s:3:"債";s:3:"债";s:3:"傷";s:3:"伤";s:3:"傾";s:3:"倾";s:3:"僂";s:3:"偻";s:3:"僅";s:3:"仅";s:3:"僉";s:3:"佥";s:3:"僊";s:3:"仙";s:3:"僑";s:3:"侨";s:3:"僕";s:3:"仆";s:3:"僞";s:3:"伪";s:3:"僥";s:3:"侥";s:3:"僨";s:3:"偾";s:3:"僭";s:3:"僣";s:3:"價";s:3:"价";s:3:"儀";s:3:"仪";s:3:"儁";s:3:"俊";s:3:"儂";s:3:"侬";s:3:"億";s:3:"亿";s:3:"儈";s:3:"侩";s:3:"儉";s:3:"俭";s:3:"儌";s:3:"侥";s:3:"儍";s:3:"傻";s:3:"儎";s:3:"傤";s:3:"儐";s:3:"傧";s:3:"儔";s:3:"俦";s:3:"儕";s:3:"侪";s:3:"儞";s:3:"伲";s:3:"償";s:3:"偿";s:3:"優";s:3:"优";s:3:"儲";s:3:"储";s:3:"儵";s:3:"倏";s:3:"儷";s:3:"俪";s:3:"儺";s:3:"傩";s:3:"儻";s:3:"傥";s:3:"儼";s:3:"俨";s:3:"児";s:3:"儿";s:3:"兑";s:3:"兌";s:3:"兒";s:3:"儿";s:3:"兔";s:3:"兎";s:3:"兗";s:3:"兖";s:3:"兦";s:3:"亡";s:3:"兩";s:3:"両";s:3:"兪";s:3:"俞";s:3:"其";s:3:"丌";s:3:"内";s:3:"內";s:3:"册";s:3:"冊";s:3:"冒";s:3:"冐";s:3:"凈";s:3:"净";s:3:"凍";s:3:"冻";s:3:"凖";s:3:"准";s:3:"凜";s:3:"凛";s:3:"凢";s:3:"凡";s:3:"凣";s:3:"凡";s:3:"凱";s:3:"凯";s:3:"凴";s:3:"凭";s:3:"凶";s:3:"兇";s:3:"凾";s:3:"函";s:3:"刂";s:3:"刀";s:3:"刄";s:3:"刃";s:3:"刋";s:3:"刊";s:3:"刪";s:3:"删";s:3:"别";s:3:"別";s:3:"刱";s:3:"创";s:3:"券";s:3:"倦";s:3:"刼";s:3:"刦";s:3:"刾";s:3:"刺";s:3:"剁";s:3:"刴";s:3:"剄";s:3:"刭";s:3:"則";s:3:"则";s:3:"剋";s:3:"克";s:3:"剎";s:3:"刹";s:3:"剗";s:3:"刬";s:3:"剙";s:3:"创";s:3:"剚";s:3:"倳";s:3:"剛";s:3:"刚";s:3:"剣";s:3:"剑";s:3:"剤";s:3:"剂";s:3:"剥";s:3:"剝";s:3:"剮";s:3:"剐";s:3:"剰";s:3:"剩";s:3:"剴";s:3:"剀";s:3:"創";s:3:"创";s:3:"剷";s:3:"刬";s:3:"劀";s:3:"刮";s:3:"劃";s:3:"划";s:3:"劄";s:3:"剳";s:3:"劇";s:3:"剧";s:3:"劉";s:3:"刘";s:3:"劊";s:3:"刽";s:3:"劋";s:3:"剿";s:3:"劌";s:3:"刿";s:3:"劍";s:3:"剑";s:3:"劑";s:3:"剂";s:3:"劒";s:3:"剑";s:3:"劔";s:3:"剑";s:3:"动";s:3:"働";s:3:"劫";s:3:"刦";s:3:"労";s:3:"劳";s:3:"劵";s:3:"倦";s:3:"効";s:3:"俲";s:3:"勁";s:3:"劲";s:3:"勓";s:3:"劾";s:3:"動";s:3:"働";s:3:"勗";s:3:"勖";s:3:"務";s:3:"务";s:3:"勛";s:3:"勋";s:3:"勞";s:3:"劳";s:3:"勢";s:3:"势";s:3:"勦";s:3:"剿";s:3:"勧";s:3:"劝";s:3:"勩";s:3:"勚";s:3:"勱";s:3:"劢";s:3:"勲";s:3:"勋";s:3:"勳";s:3:"勋";s:3:"勵";s:3:"励";s:3:"勸";s:3:"劝";s:3:"匀";s:3:"勻";s:3:"匫";s:3:"匢";s:3:"匭";s:3:"匦";s:3:"匱";s:3:"匮";s:3:"區";s:3:"区";s:3:"千";s:3:"仟";s:3:"卋";s:3:"世";s:3:"协";s:3:"劦";s:3:"卐";s:3:"卍";s:3:"卒";s:3:"卆";s:3:"協";s:3:"劦";s:3:"単";s:3:"单";s:3:"占";s:3:"佔";s:3:"卻";s:3:"却";s:3:"卽";s:3:"即";s:3:"厙";s:3:"厍";s:3:"厛";s:3:"厅";s:3:"厠";s:3:"厕";s:3:"厤";s:3:"历";s:3:"厭";s:3:"厌";s:3:"厰";s:3:"厂";s:3:"厲";s:3:"厉";s:3:"厳";s:3:"严";s:3:"厴";s:3:"厣";s:3:"参";s:3:"叁";s:3:"參";s:3:"叁";s:3:"叄";s:3:"叁";s:3:"叟";s:3:"叜";s:3:"叢";s:3:"丛";s:3:"句";s:3:"勾";s:3:"同";s:3:"仝";s:3:"吴";s:3:"吳";s:3:"呂";s:3:"吕";s:3:"呅";s:3:"吻";s:3:"呉";s:3:"吳";s:3:"告";s:3:"吿";s:3:"呐";s:3:"吶";s:3:"呑";s:3:"吞";s:3:"呡";s:3:"吻";s:3:"咒";s:3:"呪";s:3:"咱";s:3:"偺";s:3:"咼";s:3:"呙";s:3:"哌";s:3:"呱";s:3:"員";s:3:"员";s:3:"唄";s:3:"呗";s:3:"唖";s:3:"哑";s:3:"唚";s:3:"吣";s:3:"啓";s:3:"启";s:3:"啔";s:3:"启";s:3:"啕";s:3:"咷";s:3:"啗";s:3:"啖";s:3:"啞";s:3:"哑";s:3:"啟";s:3:"启";s:3:"啢";s:3:"唡";s:3:"喆";s:3:"哲";s:3:"喎";s:3:"㖞";s:3:"喒";s:3:"偺";s:3:"喚";s:3:"唤";s:3:"喞";s:3:"唧";s:3:"喧";s:3:"吅";s:3:"喪";s:3:"丧";s:3:"喫";s:3:"吃";s:3:"喬";s:3:"乔";s:3:"單";s:3:"单";s:3:"喲";s:3:"哟";s:3:"喻";s:3:"喩";s:3:"嗆";s:3:"呛";s:3:"嗇";s:3:"啬";s:3:"嗊";s:3:"唝";s:3:"嗎";s:3:"吗";s:3:"嗚";s:3:"呜";s:3:"嗩";s:3:"唢";s:3:"嗬";s:3:"呵";s:3:"嗶";s:3:"哔";s:3:"嘂";s:3:"叫";s:3:"嘆";s:3:"叹";s:3:"嘈";s:3:"傮";s:3:"嘍";s:3:"喽";s:3:"嘑";s:3:"呼";s:3:"嘓";s:3:"啯";s:3:"嘔";s:3:"呕";s:3:"嘖";s:3:"啧";s:3:"嘜";s:3:"唛";s:3:"嘨";s:3:"啸";s:3:"嘩";s:3:"哗";s:3:"嘮";s:3:"唠";s:3:"嘯";s:3:"啸";s:3:"嘰";s:3:"叽";s:3:"嘳";s:3:"喟";s:3:"嘴";s:3:"咀";s:3:"嘵";s:3:"哓";s:3:"嘸";s:3:"呒";s:3:"嘽";s:3:"啴";s:3:"噉";s:3:"啖";s:3:"噓";s:3:"嘘";s:3:"噕";s:3:"噅";s:3:"噝";s:3:"咝";s:3:"噠";s:3:"哒";s:3:"噥";s:3:"哝";s:3:"噦";s:3:"哕";s:3:"器";s:3:"噐";s:3:"噯";s:3:"嗳";s:3:"噲";s:3:"哙";s:3:"噴";s:3:"喷";s:3:"噸";s:3:"吨";s:3:"噾";s:3:"喑";s:3:"嚀";s:3:"咛";s:3:"嚇";s:3:"吓";s:3:"嚌";s:3:"哜";s:3:"嚐";s:3:"嘗";s:3:"嚔";s:3:"嚏";s:3:"嚕";s:3:"噜";s:3:"嚙";s:3:"啮";s:3:"嚥";s:3:"咽";s:3:"嚦";s:3:"呖";s:3:"嚨";s:3:"咙";s:3:"嚪";s:3:"啖";s:3:"嚮";s:3:"向";s:3:"嚲";s:3:"亸";s:3:"嚳";s:3:"喾";s:3:"嚴";s:3:"严";s:3:"嚶";s:3:"嘤";s:3:"嚻";s:3:"嚣";s:3:"嚽";s:3:"啜";s:3:"囀";s:3:"啭";s:3:"囁";s:3:"嗫";s:3:"囂";s:3:"嚣";s:3:"囅";s:3:"冁";s:3:"囈";s:3:"呓";s:3:"囉";s:3:"啰";s:3:"囑";s:3:"嘱";s:3:"囓";s:3:"啮";s:3:"回";s:3:"囘";s:3:"団";s:3:"团";s:3:"囧";s:3:"冏";s:3:"囬";s:3:"囘";s:3:"囱";s:3:"囪";s:3:"围";s:3:"囲";s:3:"国";s:3:"囯";s:3:"图";s:3:"図";s:3:"圀";s:3:"囯";s:3:"圆";s:3:"円";s:3:"圇";s:3:"囵";s:3:"國";s:3:"囯";s:3:"圍";s:3:"囲";s:3:"圎";s:3:"円";s:3:"圏";s:3:"圈";s:3:"園";s:3:"园";s:3:"圓";s:3:"円";s:3:"圖";s:3:"図";s:3:"團";s:3:"团";s:3:"圧";s:3:"压";s:3:"块";s:3:"凷";s:3:"坯";s:3:"坏";s:3:"坵";s:3:"丘";s:3:"垅";s:3:"垄";s:3:"垜";s:3:"垛";s:3:"垠";s:3:"圻";s:3:"垩";s:3:"圣";s:3:"垻";s:3:"坝";s:3:"埀";s:3:"垂";s:3:"埓";s:3:"埒";s:3:"埡";s:3:"垭";s:3:"堃";s:3:"坤";s:3:"堅";s:3:"坚";s:3:"堊";s:3:"圣";s:3:"堖";s:3:"垴";s:3:"堝";s:3:"埚";s:3:"堯";s:3:"垚";s:3:"場";s:3:"场";s:3:"塊";s:3:"凷";s:3:"塏";s:3:"垲";s:3:"塒";s:3:"埘";s:3:"塗";s:3:"凃";s:3:"塚";s:3:"冢";s:3:"塢";s:3:"坞";s:3:"塤";s:3:"埙";s:3:"填";s:3:"塡";s:3:"塲";s:3:"场";s:3:"塳";s:3:"塜";s:3:"塴";s:3:"堋";s:3:"塹";s:3:"堑";s:3:"墊";s:3:"垫";s:3:"墍";s:3:"塈";s:3:"墖";s:3:"塔";s:3:"墜";s:3:"坠";s:3:"增";s:3:"増";s:3:"墬";s:3:"地";s:3:"墮";s:3:"堕";s:3:"墯";s:3:"堕";s:3:"墳";s:3:"坟";s:3:"墻";s:3:"墙";s:3:"墾";s:3:"垦";s:3:"壇";s:3:"坛";s:3:"壊";s:3:"坏";s:3:"壋";s:3:"垱";s:3:"壎";s:3:"埙";s:3:"壓";s:3:"压";s:3:"壖";s:3:"堧";s:3:"壘";s:3:"垒";s:3:"壙";s:3:"圹";s:3:"壚";s:3:"垆";s:3:"壞";s:3:"坏";s:3:"壟";s:3:"垄";s:3:"壠";s:3:"垄";s:3:"壢";s:3:"坜";s:3:"壧";s:3:"喦";s:3:"壨";s:3:"垒";s:3:"壩";s:3:"坝";s:3:"壪";s:3:"塆";s:3:"壯";s:3:"壮";s:3:"壱";s:3:"一";s:3:"売";s:3:"卖";s:3:"壷";s:3:"壶";s:3:"壹";s:3:"一";s:3:"壺";s:3:"壶";s:3:"壼";s:3:"壸";s:3:"壿";s:3:"墫";s:3:"夀";s:3:"壽";s:3:"备";s:3:"俻";s:3:"変";s:3:"变";s:3:"夘";s:3:"卯";s:3:"夛";s:3:"多";s:3:"夜";s:3:"亱";s:3:"夠";s:3:"够";s:3:"夥";s:3:"伙";s:3:"夫";s:3:"伕";s:3:"夷";s:3:"侇";s:3:"夾";s:3:"夹";s:3:"奁";s:3:"匳";s:3:"奐";s:3:"奂";s:3:"奧";s:3:"奥";s:3:"奨";s:3:"奖";s:3:"奩";s:3:"匳";s:3:"奪";s:3:"夺";s:3:"奬";s:3:"奖";s:3:"奮";s:3:"奋";s:3:"奶";s:3:"伲";s:3:"妖";s:3:"䚶";s:3:"妝";s:3:"妆";s:3:"妬";s:3:"妒";s:3:"妳";s:3:"伲";s:3:"姊";s:3:"姉";s:3:"姗";s:3:"姍";s:3:"姙";s:3:"妊";s:3:"姦";s:3:"奸";s:3:"姪";s:3:"侄";s:3:"姬";s:3:"姫";s:3:"姸";s:3:"妍";s:3:"姹";s:3:"奼";s:3:"娚";s:3:"喃";s:3:"娟";s:3:"姢";s:3:"娯";s:3:"娛";s:3:"娱";s:3:"娛";s:3:"婀";s:3:"娿";s:3:"婁";s:3:"娄";s:3:"婉";s:3:"倇";s:3:"婣";s:3:"姻";s:3:"婦";s:3:"妇";s:3:"婭";s:3:"娅";s:3:"婾";s:3:"偷";s:3:"媎";s:3:"姐";s:3:"媧";s:3:"娲";s:3:"媬";s:3:"保";s:3:"媮";s:3:"偷";s:3:"媯";s:3:"妫";s:3:"媼";s:3:"媪";s:3:"媽";s:3:"妈";s:3:"嫗";s:3:"妪";s:3:"嫵";s:3:"妩";s:3:"嫷";s:3:"媠";s:3:"嫹";s:3:"媌";s:3:"嫺";s:3:"娴";s:3:"嫻";s:3:"娴";s:3:"嫿";s:3:"婳";s:3:"嬀";s:3:"妫";s:3:"嬃";s:3:"媭";s:3:"嬈";s:3:"娆";s:3:"嬋";s:3:"婵";s:3:"嬌";s:3:"娇";s:3:"嬙";s:3:"嫱";s:3:"嬝";s:3:"嫋";s:3:"嬡";s:3:"嫒";s:3:"嬢";s:3:"娘";s:3:"嬪";s:3:"嫔";s:3:"嬭";s:3:"伲";s:3:"嬰";s:3:"婴";s:3:"嬷";s:3:"嬤";s:3:"嬸";s:3:"婶";s:3:"孃";s:3:"娘";s:3:"孌";s:3:"娈";s:3:"孫";s:3:"孙";s:3:"孵";s:3:"孚";s:3:"孶";s:3:"孳";s:3:"學";s:3:"学";s:3:"孽";s:3:"孼";s:3:"孿";s:3:"孪";s:3:"宂";s:3:"冗";s:3:"安";s:3:"侒";s:3:"宏";s:3:"吰";s:3:"宜";s:3:"冝";s:3:"実";s:3:"实";s:3:"宮";s:3:"宫";s:3:"家";s:3:"傢";s:3:"寃";s:3:"冤";s:3:"密";s:3:"宻";s:3:"寇";s:3:"冦";s:3:"富";s:3:"冨";s:3:"寍";s:3:"宁";s:3:"寕";s:3:"宁";s:3:"寛";s:3:"宽";s:3:"寜";s:3:"宁";s:3:"寝";s:3:"寑";s:3:"寞";s:3:"嗼";s:3:"寢";s:3:"寑";s:3:"實";s:3:"实";s:3:"寧";s:3:"宁";s:3:"審";s:3:"审";s:3:"寫";s:3:"写";s:3:"寬";s:3:"宽";s:3:"寱";s:3:"呓";s:3:"寳";s:3:"宝";s:3:"寵";s:3:"宠";s:3:"寶";s:3:"宝";s:3:"寿";s:3:"壽";s:3:"尅";s:3:"克";s:3:"將";s:3:"将";s:3:"專";s:3:"专";s:3:"尋";s:3:"寻";s:3:"對";s:3:"对";s:3:"導";s:3:"导";s:3:"尓";s:3:"尒";s:3:"尔";s:3:"尒";s:3:"尘";s:3:"塵";s:3:"尚";s:3:"尙";s:3:"尝";s:3:"嘗";s:3:"尠";s:3:"尟";s:3:"尧";s:3:"垚";s:3:"尫";s:3:"尪";s:3:"尭";s:3:"垚";s:3:"尷";s:3:"尴";s:3:"尽";s:3:"儘";s:3:"局";s:3:"侷";s:3:"届";s:3:"屆";s:3:"屍";s:3:"尸";s:3:"屓";s:3:"屃";s:3:"屛";s:3:"屏";s:3:"屢";s:3:"屡";s:3:"層";s:3:"层";s:3:"屨";s:3:"屦";s:3:"屬";s:3:"属";s:3:"屭";s:3:"屃";s:3:"岀";s:3:"出";s:3:"岁";s:3:"亗";s:3:"岗";s:3:"冈";s:3:"岡";s:3:"冈";s:3:"岥";s:3:"坡";s:3:"岩";s:3:"喦";s:3:"岺";s:3:"岭";s:3:"峩";s:3:"峨";s:3:"峰";s:3:"峯";s:3:"峴";s:3:"岘";s:3:"島";s:3:"岛";s:3:"峽";s:3:"峡";s:3:"崈";s:3:"崇";s:3:"崋";s:3:"华";s:3:"崍";s:3:"崃";s:3:"崎";s:3:"埼";s:3:"崏";s:3:"岷";s:3:"崑";s:3:"崐";s:3:"崖";s:3:"崕";s:3:"崗";s:3:"冈";s:3:"崘";s:3:"仑";s:3:"崙";s:3:"仑";s:3:"崢";s:3:"峥";s:3:"崬";s:3:"岽";s:3:"嵇";s:3:"嵆";s:3:"嵐";s:3:"岚";s:3:"嵒";s:3:"喦";s:3:"嵕";s:3:"嵏";s:3:"嵳";s:3:"嵯";s:3:"嶁";s:3:"嵝";s:3:"嶄";s:3:"崭";s:3:"嶇";s:3:"岖";s:3:"嶋";s:3:"岛";s:3:"嶌";s:3:"岛";s:3:"嶔";s:3:"嵚";s:3:"嶗";s:3:"崂";s:3:"嶠";s:3:"峤";s:3:"嶢";s:3:"峣";s:3:"嶧";s:3:"峄";s:3:"嶨";s:3:"峃";s:3:"嶩";s:3:"峱";s:3:"嶮";s:3:"崄";s:3:"嶸";s:3:"嵘";s:3:"嶺";s:3:"岭";s:3:"嶼";s:3:"屿";s:3:"嶽";s:3:"岳";s:3:"巋";s:3:"岿";s:3:"巌";s:3:"喦";s:3:"巒";s:3:"峦";s:3:"巓";s:3:"巅";s:3:"巔";s:3:"巅";s:3:"巖";s:3:"喦";s:3:"巣";s:3:"巢";s:3:"巰";s:3:"巯";s:3:"巵";s:3:"卮";s:3:"巻";s:3:"卷";s:3:"巽";s:3:"巺";s:3:"布";s:3:"佈";s:3:"帥";s:3:"帅";s:3:"師";s:3:"师";s:3:"帯";s:3:"带";s:3:"帲";s:3:"帡";s:3:"帳";s:3:"帐";s:3:"帶";s:3:"带";s:3:"幀";s:3:"帧";s:3:"幂";s:3:"冪";s:3:"幃";s:3:"帏";s:3:"幇";s:3:"帮";s:3:"幗";s:3:"帼";s:3:"幘";s:3:"帻";s:3:"幙";s:3:"幕";s:3:"幚";s:3:"帮";s:3:"幟";s:3:"帜";s:3:"幣";s:3:"币";s:3:"幤";s:3:"币";s:3:"幫";s:3:"帮";s:3:"幬";s:3:"帱";s:3:"干";s:3:"乾";s:3:"并";s:3:"並";s:3:"幷";s:3:"並";s:3:"幸";s:3:"倖";s:3:"幹";s:3:"乾";s:3:"幺";s:3:"么";s:3:"幾";s:3:"几";s:3:"庁";s:3:"厅";s:3:"庂";s:3:"仄";s:3:"広";s:3:"广";s:3:"庅";s:3:"么";s:3:"底";s:3:"厎";s:3:"店";s:3:"坫";s:3:"庞";s:3:"厐";s:3:"座";s:3:"坐";s:3:"庫";s:3:"库";s:3:"庰";s:3:"屏";s:3:"庻";s:3:"庶";s:3:"庽";s:3:"寓";s:3:"庿";s:3:"庙";s:3:"廁";s:3:"厕";s:3:"廂";s:3:"厢";s:3:"廃";s:3:"废";s:3:"廄";s:3:"厩";s:3:"廈";s:3:"厦";s:3:"廉";s:3:"亷";s:3:"廎";s:3:"庼";s:3:"廏";s:3:"厩";s:3:"廐";s:3:"厩";s:3:"廗";s:3:"席";s:3:"廚";s:3:"厨";s:3:"廝";s:3:"厮";s:3:"廟";s:3:"庙";s:3:"廠";s:3:"厂";s:3:"廡";s:3:"庑";s:3:"廢";s:3:"废";s:3:"廣";s:3:"广";s:3:"廪";s:3:"廩";s:3:"廬";s:3:"庐";s:3:"廰";s:3:"厅";s:3:"廳";s:3:"厅";s:3:"廵";s:3:"巡";s:3:"廻";s:3:"囘";s:3:"廼";s:3:"乃";s:3:"廽";s:3:"囘";s:3:"廿";s:3:"卄";s:3:"弌";s:3:"一";s:3:"弍";s:3:"二";s:3:"弒";s:3:"弑";s:3:"弔";s:3:"吊";s:3:"弥";s:3:"冞";s:3:"弳";s:3:"弪";s:3:"張";s:3:"张";s:3:"强";s:3:"強";s:3:"弾";s:3:"弹";s:3:"彂";s:3:"发";s:3:"彆";s:3:"別";s:3:"彈";s:3:"弹";s:3:"彊";s:3:"強";s:3:"彌";s:3:"冞";s:3:"彍";s:3:"彉";s:3:"彎";s:3:"弯";s:3:"彑";s:3:"彐";s:3:"归";s:3:"帰";s:3:"当";s:3:"噹";s:3:"录";s:3:"彔";s:3:"彙";s:3:"匯";s:3:"彚";s:3:"匯";s:3:"彜";s:3:"彛";s:3:"彝";s:3:"彛";s:3:"彞";s:3:"彛";s:3:"彠";s:3:"彟";s:3:"彦";s:3:"彥";s:3:"彬";s:3:"份";s:3:"彲";s:3:"彨";s:3:"彷";s:3:"仿";s:3:"彿";s:3:"仏";s:3:"徃";s:3:"往";s:3:"很";s:3:"佷";s:3:"徊";s:3:"佪";s:3:"後";s:3:"后";s:3:"徑";s:3:"径";s:3:"従";s:3:"从";s:3:"從";s:3:"从";s:3:"徠";s:3:"徕";s:3:"復";s:3:"复";s:3:"徬";s:3:"傍";s:3:"徭";s:3:"傜";s:3:"徴";s:3:"征";s:3:"徵";s:3:"征";s:3:"德";s:3:"徳";s:3:"徹";s:3:"彻";s:3:"徺";s:3:"侥";s:3:"忈";s:3:"仁";s:3:"忖";s:3:"刌";s:3:"応";s:3:"应";s:3:"念";s:3:"唸";s:3:"怐";s:3:"佝";s:3:"急";s:3:"忣";s:3:"怱";s:3:"匆";s:3:"怹";s:3:"他";s:3:"恊";s:3:"劦";s:3:"恍";s:3:"怳";s:3:"恒";s:3:"恆";s:3:"恤";s:3:"卹";s:3:"恶";s:3:"噁";s:3:"悋";s:3:"吝";s:3:"悛";s:3:"恂";s:3:"悤";s:3:"匆";s:3:"悦";s:3:"悅";s:3:"悪";s:3:"噁";s:3:"悮";s:3:"悞";s:3:"悳";s:3:"徳";s:3:"悴";s:3:"忰";s:3:"悵";s:3:"怅";s:3:"悺";s:3:"悹";s:3:"悽";s:3:"凄";s:3:"惕";s:3:"悐";s:3:"惠";s:3:"恵";s:3:"惡";s:3:"噁";s:3:"惪";s:3:"徳";s:3:"惱";s:3:"恼";s:3:"惲";s:3:"恽";s:3:"惻";s:3:"恻";s:3:"愘";s:3:"恪";s:3:"愜";s:3:"惬";s:3:"愧";s:3:"媿";s:3:"愨";s:3:"悫";s:3:"愴";s:3:"怆";s:3:"愷";s:3:"恺";s:3:"愽";s:3:"博";s:3:"愾";s:3:"忾";s:3:"慂";s:3:"恿";s:3:"態";s:3:"态";s:3:"慍";s:3:"愠";s:3:"慎";s:3:"愼";s:3:"慓";s:3:"剽";s:3:"慘";s:3:"惨";s:3:"慙";s:3:"惭";s:3:"慚";s:3:"惭";s:3:"慟";s:3:"恸";s:3:"慣";s:3:"惯";s:3:"慤";s:3:"悫";s:3:"慪";s:3:"怄";s:3:"慫";s:3:"怂";s:3:"慳";s:3:"悭";s:3:"慴";s:3:"慑";s:3:"慵";s:3:"嫞";s:3:"慶";s:3:"庆";s:3:"憂";s:3:"忧";s:3:"憅";s:3:"恸";s:3:"憊";s:3:"惫";s:3:"憋";s:3:"別";s:3:"憐";s:3:"怜";s:3:"憑";s:3:"凭";s:3:"憒";s:3:"愦";s:3:"憓";s:3:"恵";s:3:"憖";s:3:"慭";s:3:"憙";s:3:"喜";s:3:"憚";s:3:"惮";s:3:"憤";s:3:"愤";s:3:"憩";s:3:"憇";s:3:"憫";s:3:"悯";s:3:"憮";s:3:"怃";s:3:"憲";s:3:"宪";s:3:"憶";s:3:"忆";s:3:"憼";s:3:"儆";s:3:"懃";s:3:"勤";s:3:"懇";s:3:"恳";s:3:"應";s:3:"应";s:3:"懌";s:3:"怿";s:3:"懐";s:3:"怀";s:3:"懒";s:3:"嬾";s:3:"懔";s:3:"懍";s:3:"懟";s:3:"怼";s:3:"懣";s:3:"懑";s:3:"懧";s:3:"懦";s:3:"懨";s:3:"恹";s:3:"懲";s:3:"惩";s:3:"懶";s:3:"嬾";s:3:"懷";s:3:"怀";s:3:"懸";s:3:"悬";s:3:"懺";s:3:"忏";s:3:"懼";s:3:"惧";s:3:"懾";s:3:"慑";s:3:"戀";s:3:"恋";s:3:"戇";s:3:"戆";s:3:"戔";s:3:"戋";s:3:"戞";s:3:"戛";s:3:"戦";s:3:"战";s:3:"戧";s:3:"戗";s:3:"戬";s:3:"戩";s:3:"戯";s:3:"戏";s:3:"戰";s:3:"战";s:3:"戱";s:3:"戏";s:3:"戲";s:3:"戏";s:3:"户";s:3:"戶";s:3:"戸";s:3:"戶";s:3:"戼";s:3:"卯";s:3:"戾";s:3:"戻";s:3:"扎";s:3:"剳";s:3:"执";s:3:"執";s:3:"扵";s:3:"于";s:3:"抉";s:3:"刔";s:3:"抌";s:3:"伔";s:3:"报";s:3:"報";s:3:"抵";s:3:"扺";s:3:"抻";s:3:"伸";s:3:"拂";s:3:"払";s:3:"拊";s:3:"抚";s:3:"拋";s:3:"抛";s:3:"拔";s:3:"抜";s:3:"拖";s:3:"拕";s:3:"拚";s:3:"抃";s:3:"拝";s:3:"拜";s:3:"拟";s:3:"儗";s:3:"拡";s:3:"扩";s:3:"择";s:3:"択";s:3:"拿";s:3:"拏";s:3:"挆";s:3:"挅";s:3:"挙";s:3:"举";s:3:"挾";s:3:"挟";s:3:"捌";s:3:"八";s:3:"捍";s:3:"扞";s:3:"捙";s:3:"拽";s:3:"捝";s:3:"挩";s:3:"捫";s:3:"扪";s:3:"据";s:3:"拠";s:3:"捲";s:3:"卷";s:3:"捴";s:3:"总";s:3:"掃";s:3:"扫";s:3:"掄";s:3:"抡";s:3:"掆";s:3:"㧏";s:3:"掗";s:3:"挜";s:3:"掙";s:3:"挣";s:3:"掛";s:3:"挂";s:3:"掬";s:3:"匊";s:3:"揀";s:3:"拣";s:3:"揚";s:3:"扬";s:3:"換";s:3:"换";s:3:"揫";s:3:"揪";s:3:"揭";s:3:"掲";s:3:"揮";s:3:"挥";s:3:"援";s:3:"愋";s:3:"揷";s:3:"插";s:3:"揹";s:3:"偝";s:3:"搃";s:3:"总";s:3:"搄";s:3:"揯";s:3:"搅";s:3:"捁";s:3:"搆";s:3:"冓";s:3:"搉";s:3:"㩁";s:3:"搋";s:3:"扠";s:3:"損";s:3:"损";s:3:"搖";s:3:"揺";s:3:"搗";s:3:"捣";s:3:"搜";s:3:"捜";s:3:"搤";s:3:"扼";s:3:"搥";s:3:"捶";s:3:"搧";s:3:"扇";s:3:"搭";s:3:"搨";s:3:"搯";s:3:"掏";s:3:"搵";s:3:"揾";s:3:"搶";s:3:"抢";s:3:"搹";s:3:"扼";s:3:"摀";s:3:"捂";s:3:"摃";s:3:"扛";s:3:"摄";s:3:"挕";s:3:"摅";s:3:"捈";s:3:"摇";s:3:"揺";s:3:"摑";s:3:"掴";s:3:"摜";s:3:"掼";s:3:"摟";s:3:"搂";s:3:"摠";s:3:"总";s:3:"摭";s:3:"拓";s:3:"摯";s:3:"挚";s:3:"摳";s:3:"抠";s:3:"摶";s:3:"抟";s:3:"摺";s:3:"折";s:3:"摻";s:3:"掺";s:3:"摼";s:3:"挳";s:3:"撃";s:3:"击";s:3:"撅";s:3:"掘";s:3:"撈";s:3:"捞";s:3:"撏";s:3:"挦";s:3:"撑";s:3:"撐";s:3:"撓";s:3:"挠";s:3:"撘";s:3:"搨";s:3:"撚";s:3:"捻";s:3:"撟";s:3:"挢";s:3:"撣";s:3:"掸";s:3:"撥";s:3:"拨";s:3:"撦";s:3:"扯";s:3:"撫";s:3:"抚";s:3:"撲";s:3:"扑";s:3:"撳";s:3:"揿";s:3:"撹";s:3:"捁";s:3:"撻";s:3:"挞";s:3:"撾";s:3:"挝";s:3:"撿";s:3:"捡";s:3:"擀";s:3:"扞";s:3:"擁";s:3:"拥";s:3:"擄";s:3:"掳";s:3:"擇";s:3:"択";s:3:"擊";s:3:"击";s:3:"擋";s:3:"挡";s:3:"擓";s:3:"㧟";s:3:"擔";s:3:"担";s:3:"據";s:3:"拠";s:3:"擠";s:3:"挤";s:3:"擣";s:3:"捣";s:3:"擧";s:3:"举";s:3:"擫";s:3:"擪";s:3:"擬";s:3:"儗";s:3:"擯";s:3:"摈";s:3:"擰";s:3:"拧";s:3:"擱";s:3:"搁";s:3:"擲";s:3:"掷";s:3:"擴";s:3:"扩";s:3:"擷";s:3:"撷";s:3:"擺";s:3:"摆";s:3:"擻";s:3:"擞";s:3:"擼";s:3:"撸";s:3:"擾";s:3:"扰";s:3:"攄";s:3:"捈";s:3:"攆";s:3:"撵";s:3:"攏";s:3:"拢";s:3:"攒";s:3:"攅";s:3:"攔";s:3:"拦";s:3:"攖";s:3:"撄";s:3:"攙";s:3:"搀";s:3:"攛";s:3:"撺";s:3:"攜";s:3:"携";s:3:"攝";s:3:"挕";s:3:"攢";s:3:"攅";s:3:"攣";s:3:"挛";s:3:"攤";s:3:"摊";s:3:"攪";s:3:"捁";s:3:"攬";s:3:"揽";s:3:"支";s:3:"搘";s:3:"攴";s:3:"扑";s:3:"收";s:3:"収";s:3:"敆";s:3:"合";s:3:"效";s:3:"俲";s:3:"敍";s:3:"叙";s:3:"敓";s:3:"夺";s:3:"敘";s:3:"叙";s:3:"教";s:3:"敎";s:3:"敪";s:3:"敠";s:3:"敯";s:3:"愍";s:3:"敵";s:3:"敌";s:3:"敷";s:3:"尃";s:3:"數";s:3:"数";s:3:"敻";s:3:"夐";s:3:"斂";s:3:"敛";s:3:"斅";s:3:"敩";s:3:"斆";s:3:"敩";s:3:"斈";s:3:"学";s:3:"斉";s:3:"亝";s:3:"斎";s:3:"斋";s:3:"斔";s:3:"庾";s:3:"斕";s:3:"斓";s:3:"斖";s:3:"亹";s:3:"斞";s:3:"庾";s:3:"斬";s:3:"斩";s:3:"斷";s:3:"断";s:3:"於";s:3:"于";s:3:"旍";s:3:"旌";s:3:"旗";s:3:"旂";s:3:"旣";s:3:"既";s:3:"旨";s:3:"恉";s:3:"旮";s:3:"旭";s:3:"昄";s:3:"反";s:3:"昆";s:3:"崐";s:3:"昇";s:3:"升";s:3:"昚";s:3:"愼";s:3:"昦";s:3:"昊";s:3:"昰";s:3:"是";s:3:"時";s:3:"时";s:3:"晄";s:3:"晃";s:3:"晋";s:3:"晉";s:3:"晜";s:3:"崐";s:3:"晝";s:3:"昼";s:3:"晣";s:3:"䀿";s:3:"晩";s:3:"晚";s:3:"暁";s:3:"晓";s:3:"暈";s:3:"晕";s:3:"暉";s:3:"晖";s:3:"暎";s:3:"映";s:3:"暗";s:3:"晻";s:3:"暘";s:3:"旸";s:3:"暦";s:3:"历";s:3:"暫";s:3:"暂";s:3:"暱";s:3:"昵";s:3:"暸";s:3:"了";s:3:"曁";s:3:"暨";s:3:"曄";s:3:"晔";s:3:"曅";s:3:"晔";s:3:"曆";s:3:"历";s:3:"曇";s:3:"昙";s:3:"曉";s:3:"晓";s:3:"曊";s:3:"昲";s:3:"曏";s:3:"向";s:3:"曖";s:3:"暧";s:3:"曠";s:3:"旷";s:3:"曡";s:3:"叠";s:3:"曨";s:3:"昽";s:3:"曬";s:3:"晒";s:3:"曵";s:3:"曳";s:3:"曶";s:3:"㫚";s:3:"書";s:3:"书";s:3:"曺";s:3:"曹";s:3:"會";s:3:"会";s:3:"朗";s:3:"朖";s:3:"期";s:3:"朞";s:3:"朢";s:3:"望";s:3:"本";s:3:"夲";s:3:"札";s:3:"剳";s:3:"术";s:3:"朮";s:3:"朶";s:3:"朵";s:3:"朿";s:3:"刺";s:3:"杇";s:3:"圬";s:3:"来";s:3:"來";s:3:"杰";s:3:"傑";s:3:"東";s:3:"东";s:3:"枀";s:3:"松";s:3:"构";s:3:"冓";s:3:"枇";s:3:"朼";s:3:"枴";s:3:"拐";s:3:"枾";s:3:"杮";s:3:"柰";s:3:"奈";s:3:"査";s:3:"查";s:3:"柾";s:3:"柩";s:3:"柿";s:3:"杮";s:3:"栅";s:3:"柵";s:3:"栆";s:3:"枣";s:3:"标";s:3:"墂";s:3:"树";s:3:"尌";s:3:"栔";s:3:"契";s:3:"栗";s:3:"慄";s:3:"校";s:3:"挍";s:3:"栢";s:3:"柏";s:3:"桒";s:3:"桑";s:3:"桮";s:3:"杯";s:3:"桼";s:3:"柒";s:3:"桿";s:3:"杆";s:3:"梓";s:3:"杍";s:3:"梔";s:3:"栀";s:3:"梘";s:3:"枧";s:3:"條";s:3:"条";s:3:"梟";s:3:"枭";s:3:"梦";s:3:"夢";s:3:"棁";s:3:"梲";s:3:"棄";s:3:"弃";s:3:"棋";s:3:"棊";s:3:"棖";s:3:"枨";s:3:"棗";s:3:"枣";s:3:"棟";s:3:"栋";s:3:"棡";s:3:"㭎";s:3:"棧";s:3:"栈";s:3:"棲";s:3:"栖";s:3:"棶";s:3:"梾";s:3:"棹";s:3:"桌";s:3:"椏";s:3:"桠";s:3:"検";s:3:"检";s:3:"椭";s:3:"撱";s:3:"椶";s:3:"棕";s:3:"椹";s:3:"枮";s:3:"楂";s:3:"查";s:3:"楊";s:3:"杨";s:3:"楑";s:3:"揆";s:3:"楓";s:3:"枫";s:3:"楕";s:3:"撱";s:3:"楚";s:3:"椘";s:3:"楠";s:3:"枏";s:3:"楨";s:3:"桢";s:3:"業";s:3:"业";s:3:"楳";s:3:"梅";s:3:"極";s:3:"极";s:3:"楽";s:3:"乐";s:3:"榆";s:3:"楡";s:3:"榔";s:3:"桹";s:3:"榤";s:3:"桀";s:3:"榦";s:3:"乾";s:3:"榨";s:3:"搾";s:3:"榪";s:3:"杩";s:3:"榮";s:3:"栄";s:3:"榲";s:3:"榅";s:3:"榷";s:3:"㩁";s:3:"榿";s:3:"桤";s:3:"槅";s:3:"核";s:3:"構";s:3:"冓";s:3:"槍";s:3:"枪";s:3:"槓";s:3:"杠";s:3:"様";s:3:"样";s:3:"槙";s:3:"槇";s:3:"槚";s:3:"榎";s:3:"槟";s:3:"梹";s:3:"槤";s:3:"梿";s:3:"槧";s:3:"椠";s:3:"槨";s:3:"椁";s:3:"槪";s:3:"概";s:3:"槳";s:3:"桨";s:3:"槼";s:3:"椝";s:3:"樁";s:3:"桩";s:3:"樂";s:3:"乐";s:3:"樅";s:3:"枞";s:3:"樑";s:3:"梁";s:3:"樓";s:3:"楼";s:3:"標";s:3:"墂";s:3:"樛";s:3:"朻";s:3:"樞";s:3:"枢";s:3:"樣";s:3:"样";s:3:"樧";s:3:"榝";s:3:"権";s:3:"权";s:3:"樳";s:3:"桪";s:3:"樸";s:3:"朴";s:3:"樹";s:3:"尌";s:3:"樺";s:3:"桦";s:3:"樼";s:3:"榛";s:3:"樽";s:3:"墫";s:3:"樿";s:3:"椫";s:3:"橇";s:3:"桥";s:3:"橈";s:3:"桡";s:3:"橋";s:3:"桥";s:3:"橕";s:3:"樘";s:3:"機";s:3:"机";s:3:"橢";s:3:"撱";s:3:"橫";s:3:"横";s:3:"橹";s:3:"樐";s:3:"檅";s:3:"槥";s:3:"檇";s:3:"槜";s:3:"檉";s:3:"柽";s:3:"檔";s:3:"档";s:3:"檘";s:3:"枰";s:3:"檚";s:3:"椘";s:3:"檜";s:3:"桧";s:3:"檟";s:3:"榎";s:3:"檢";s:3:"检";s:3:"檣";s:3:"樯";s:3:"檩";s:3:"檁";s:3:"檮";s:3:"梼";s:3:"檯";s:3:"台";s:3:"檳";s:3:"梹";s:3:"檸";s:3:"柠";s:3:"檻";s:3:"槛";s:3:"檼";s:3:"檃";s:3:"櫂";s:3:"桌";s:3:"櫃";s:3:"柜";s:3:"櫓";s:3:"樐";s:3:"櫚";s:3:"榈";s:3:"櫛";s:3:"栉";s:3:"櫝";s:3:"椟";s:3:"櫞";s:3:"橼";s:3:"櫟";s:3:"栎";s:3:"櫥";s:3:"橱";s:3:"櫧";s:3:"槠";s:3:"櫨";s:3:"栌";s:3:"櫪";s:3:"枥";s:3:"櫫";s:3:"橥";s:3:"櫬";s:3:"榇";s:3:"櫳";s:3:"栊";s:3:"櫸";s:3:"榉";s:3:"櫻";s:3:"樱";s:3:"櫽";s:3:"檃";s:3:"欄";s:3:"栏";s:3:"欉";s:3:"丛";s:3:"權";s:3:"权";s:3:"欏";s:3:"椤";s:3:"欒";s:3:"栾";s:3:"欖";s:3:"榄";s:3:"欗";s:3:"栏";s:3:"欞";s:3:"棂";s:3:"欢";s:3:"懽";s:3:"欲";s:3:"慾";s:3:"欳";s:3:"喟";s:3:"欶";s:3:"嗽";s:3:"歎";s:3:"叹";s:3:"歐";s:3:"欧";s:3:"歓";s:3:"懽";s:3:"歕";s:3:"喷";s:3:"歛";s:3:"敛";s:3:"歟";s:3:"欤";s:3:"歡";s:3:"懽";s:3:"歧";s:3:"岐";s:3:"歩";s:3:"步";s:3:"歲";s:3:"亗";s:3:"歳";s:3:"亗";s:3:"歴";s:3:"历";s:3:"歷";s:3:"历";s:3:"歸";s:3:"帰";s:3:"歺";s:3:"歹";s:3:"殀";s:3:"夭";s:3:"殁";s:3:"歿";s:3:"殘";s:3:"残";s:3:"殞";s:3:"殒";s:3:"殤";s:3:"殇";s:3:"殨";s:3:"㱮";s:3:"殫";s:3:"殚";s:3:"殭";s:3:"僵";s:3:"殮";s:3:"殓";s:3:"殯";s:3:"殡";s:3:"殲";s:3:"歼";s:3:"殳";s:3:"杸";s:3:"殷";s:3:"慇";s:3:"殺";s:3:"杀";s:3:"殻";s:3:"壳";s:3:"殼";s:3:"壳";s:3:"毁";s:3:"毀";s:3:"毃";s:3:"敲";s:3:"毆";s:3:"殴";s:3:"毉";s:3:"医";s:3:"每";s:3:"毎";s:3:"毘";s:3:"毗";s:3:"毙";s:3:"斃";s:3:"毻";s:3:"毤";s:3:"毿";s:3:"毵";s:3:"氈";s:3:"毡";s:3:"氌";s:3:"氇";s:3:"氣";s:3:"气";s:3:"氫";s:3:"氢";s:3:"氬";s:3:"氩";s:3:"氳";s:3:"氲";s:3:"氷";s:3:"冰";s:3:"汇";s:3:"匯";s:3:"汎";s:3:"氾";s:3:"汚";s:3:"汙";s:3:"污";s:3:"汙";s:3:"汰";s:3:"汏";s:3:"決";s:3:"决";s:3:"沉";s:3:"沈";s:3:"沍";s:3:"冱";s:3:"沖";s:3:"冲";s:3:"沛";s:3:"伂";s:3:"没";s:3:"沒";s:3:"沲";s:3:"沱";s:3:"況";s:3:"况";s:3:"泛";s:3:"氾";s:3:"泭";s:3:"桴";s:3:"泺";s:3:"泊";s:3:"泽";s:3:"沢";s:3:"洌";s:3:"冽";s:3:"洍";s:3:"汜";s:3:"洢";s:3:"伊";s:3:"洩";s:3:"泄";s:3:"洯";s:3:"洁";s:3:"洶";s:3:"汹";s:3:"洽";s:3:"冾";s:3:"派";s:3:"泒";s:3:"浄";s:3:"净";s:3:"浏";s:3:"嚠";s:3:"浒";s:3:"汻";s:3:"浹";s:3:"浃";s:3:"涂";s:3:"凃";s:3:"涇";s:3:"泾";s:3:"涙";s:3:"泪";s:3:"涚";s:3:"涗";s:3:"涼";s:3:"凉";s:3:"淒";s:3:"凄";s:3:"淓";s:3:"汸";s:3:"淗";s:3:"泦";s:3:"淚";s:3:"泪";s:3:"淛";s:3:"浙";s:3:"淣";s:3:"倪";s:3:"淨";s:3:"净";s:3:"淩";s:3:"凌";s:3:"淪";s:3:"沦";s:3:"淫";s:3:"婬";s:3:"淶";s:3:"涞";s:3:"淸";s:3:"凊";s:3:"淺";s:3:"浅";s:3:"清";s:3:"凊";s:3:"済";s:3:"济";s:3:"渉";s:3:"涉";s:3:"渊";s:3:"淵";s:3:"渋";s:3:"涩";s:3:"渌";s:3:"淥";s:3:"渐";s:3:"巉";s:3:"渕";s:3:"淵";s:3:"渖";s:3:"沈";s:3:"渙";s:3:"涣";s:3:"減";s:3:"减";s:3:"渢";s:3:"沨";s:3:"渦";s:3:"涡";s:3:"渫";s:3:"泄";s:3:"測";s:3:"测";s:3:"渴";s:3:"渇";s:3:"渾";s:3:"浑";s:3:"湇";s:3:"湆";s:3:"湊";s:3:"凑";s:3:"湞";s:3:"浈";s:3:"湧";s:3:"涌";s:3:"湯";s:3:"汤";s:3:"溈";s:3:"沩";s:3:"源";s:3:"厵";s:3:"準";s:3:"准";s:3:"溙";s:3:"汏";s:3:"溝";s:3:"沟";s:3:"溫";s:3:"温";s:3:"溮";s:3:"浉";s:3:"溯";s:3:"泝";s:3:"溳";s:3:"涢";s:3:"溺";s:3:"尿";s:3:"溼";s:3:"湿";s:3:"滄";s:3:"沧";s:3:"滊";s:3:"汽";s:3:"滌";s:3:"涤";s:3:"滙";s:3:"匯";s:3:"满";s:3:"満";s:3:"滨";s:3:"浜";s:3:"滬";s:3:"沪";s:3:"滯";s:3:"滞";s:3:"滲";s:3:"渗";s:3:"滷";s:3:"卤";s:3:"滸";s:3:"汻";s:3:"滻";s:3:"浐";s:3:"滾";s:3:"滚";s:3:"滿";s:3:"満";s:3:"漁";s:3:"渔";s:3:"漅";s:3:"巢";s:3:"漆";s:3:"柒";s:3:"漊";s:3:"溇";s:3:"漑";s:3:"溉";s:3:"漚";s:3:"沤";s:3:"漢";s:3:"汉";s:3:"漣";s:3:"涟";s:3:"漥";s:3:"洼";s:3:"漧";s:3:"乾";s:3:"漬";s:3:"渍";s:3:"漲";s:3:"涨";s:3:"漵";s:3:"溆";s:3:"漸";s:3:"巉";s:3:"漿";s:3:"浆";s:3:"潀";s:3:"漎";s:3:"潃";s:3:"滫";s:3:"潄";s:3:"漱";s:3:"潑";s:3:"泼";s:3:"潔";s:3:"洁";s:3:"潙";s:3:"沩";s:3:"潜";s:3:"潛";s:3:"潤";s:3:"润";s:3:"潧";s:3:"溱";s:3:"潨";s:3:"漎";s:3:"潯";s:3:"浔";s:3:"潰";s:3:"溃";s:3:"潷";s:3:"滗";s:3:"潿";s:3:"涠";s:3:"澀";s:3:"涩";s:3:"澁";s:3:"涩";s:3:"澄";s:3:"澂";s:3:"澆";s:3:"浇";s:3:"澇";s:3:"涝";s:3:"澑";s:3:"溜";s:3:"澔";s:3:"浩";s:3:"澗";s:3:"涧";s:3:"澙";s:3:"潟";s:3:"澠";s:3:"渑";s:3:"澣";s:3:"浣";s:3:"澤";s:3:"沢";s:3:"澦";s:3:"滪";s:3:"澩";s:3:"泶";s:3:"澪";s:3:"泠";s:3:"澫";s:3:"漫";s:3:"澮";s:3:"浍";s:3:"澱";s:3:"淀";s:3:"澹";s:3:"淡";s:3:"澾";s:3:"㳠";s:3:"濁";s:3:"浊";s:3:"濃";s:3:"浓";s:3:"濄";s:3:"涡";s:3:"濇";s:3:"涩";s:3:"濔";s:3:"沵";s:3:"濕";s:3:"湿";s:3:"濘";s:3:"泞";s:3:"濚";s:3:"溁";s:3:"濛";s:3:"懞";s:3:"濜";s:3:"浕";s:3:"濟";s:3:"济";s:3:"濤";s:3:"涛";s:3:"濫";s:3:"滥";s:3:"濬";s:3:"浚";s:3:"濰";s:3:"潍";s:3:"濱";s:3:"浜";s:3:"濳";s:3:"潛";s:3:"濺";s:3:"溅";s:3:"濼";s:3:"泊";s:3:"濾";s:3:"滤";s:3:"瀁";s:3:"漾";s:3:"瀂";s:3:"澛";s:3:"瀅";s:3:"滢";s:3:"瀆";s:3:"渎";s:3:"瀇";s:3:"汪";s:3:"瀉";s:3:"泻";s:3:"瀋";s:3:"沈";s:3:"瀏";s:3:"嚠";s:3:"瀒";s:3:"涩";s:3:"瀕";s:3:"濒";s:3:"瀘";s:3:"泸";s:3:"瀝";s:3:"沥";s:3:"瀟";s:3:"潇";s:3:"瀠";s:3:"潆";s:3:"瀢";s:3:"濻";s:3:"瀦";s:3:"潴";s:3:"瀧";s:3:"泷";s:3:"瀨";s:3:"濑";s:3:"瀬";s:3:"濑";s:3:"瀰";s:3:"冞";s:3:"瀲";s:3:"潋";s:3:"瀾";s:3:"澜";s:3:"灁";s:3:"淵";s:3:"灃";s:3:"沣";s:3:"灄";s:3:"滠";s:3:"灌";s:3:"潅";s:3:"灑";s:3:"洒";s:3:"灔";s:3:"滟";s:3:"灕";s:3:"漓";s:3:"灘";s:3:"滩";s:3:"灝";s:3:"灏";s:3:"灣";s:3:"湾";s:3:"灤";s:3:"滦";s:3:"灧";s:3:"滟";s:3:"灩";s:3:"滟";s:3:"灭";s:3:"滅";s:3:"灮";s:3:"光";s:3:"灾";s:3:"災";s:3:"炔";s:3:"炅";s:3:"炕";s:3:"匟";s:3:"炚";s:3:"光";s:3:"炤";s:3:"曌";s:3:"炰";s:3:"炮";s:3:"炳";s:3:"昺";s:3:"点";s:3:"奌";s:3:"為";s:3:"为";s:3:"烏";s:3:"乌";s:3:"烖";s:3:"災";s:3:"烘";s:3:"灴";s:3:"烡";s:3:"光";s:3:"烱";s:3:"炯";s:3:"烴";s:3:"烃";s:3:"烺";s:3:"朖";s:3:"焕";s:3:"烉";s:3:"焚";s:3:"炃";s:3:"無";s:3:"无";s:3:"焭";s:3:"惸";s:3:"煉";s:3:"炼";s:3:"煒";s:3:"炜";s:3:"煖";s:3:"暖";s:3:"煙";s:3:"烟";s:3:"煡";s:3:"烬";s:3:"煢";s:3:"惸";s:3:"煥";s:3:"烉";s:3:"照";s:3:"曌";s:3:"煩";s:3:"烦";s:3:"煬";s:3:"炀";s:3:"煮";s:3:"煑";s:3:"熅";s:3:"煴";s:3:"熗";s:3:"炝";s:3:"熙";s:3:"熈";s:3:"熱";s:3:"热";s:3:"熺";s:3:"熹";s:3:"熾";s:3:"炽";s:3:"燁";s:3:"烨";s:3:"燄";s:3:"焰";s:3:"燇";s:3:"焌";s:3:"燈";s:3:"灯";s:3:"燉";s:3:"炖";s:3:"燒";s:3:"烧";s:3:"燗";s:3:"烂";s:3:"燙";s:3:"烫";s:3:"燛";s:3:"煚";s:3:"燜";s:3:"焖";s:3:"營";s:3:"営";s:3:"燥";s:3:"煰";s:3:"燦";s:3:"灿";s:3:"燭";s:3:"烛";s:3:"燰";s:3:"煨";s:3:"燴";s:3:"烩";s:3:"燷";s:3:"燣";s:3:"燻";s:3:"熏";s:3:"燼";s:3:"烬";s:3:"燾";s:3:"焘";s:3:"燿";s:3:"曜";s:3:"爍";s:3:"烁";s:3:"爐";s:3:"炉";s:3:"爔";s:3:"燨";s:3:"爛";s:3:"烂";s:3:"爦";s:3:"爁";s:3:"爧";s:3:"燯";s:3:"爭";s:3:"争";s:3:"爱";s:3:"愛";s:3:"爲";s:3:"为";s:3:"爺";s:3:"爷";s:3:"爼";s:3:"俎";s:3:"爽";s:3:"慡";s:3:"爾";s:3:"尒";s:3:"爿";s:3:"丬";s:3:"牀";s:3:"床";s:3:"牆";s:3:"墙";s:3:"牓";s:3:"榜";s:3:"牘";s:3:"牍";s:3:"牚";s:3:"撐";s:3:"牠";s:3:"它";s:3:"牦";s:3:"氂";s:3:"牴";s:3:"扺";s:3:"牽";s:3:"牵";s:3:"犂";s:3:"犁";s:3:"犇";s:3:"奔";s:3:"犛";s:3:"氂";s:3:"犢";s:3:"犊";s:3:"犧";s:3:"牺";s:3:"狀";s:3:"状";s:3:"狅";s:3:"狂";s:3:"狆";s:3:"仲";s:3:"狫";s:3:"佬";s:3:"狹";s:3:"狭";s:3:"狽";s:3:"狈";s:3:"猒";s:3:"厌";s:3:"猙";s:3:"狰";s:3:"猶";s:3:"犹";s:3:"猻";s:3:"狲";s:3:"猾";s:3:"狯";s:3:"獁";s:3:"犸";s:3:"獃";s:3:"呆";s:3:"獄";s:3:"狱";s:3:"獅";s:3:"狮";s:3:"獉";s:3:"榛";s:3:"獎";s:3:"奖";s:3:"獞";s:3:"僮";s:3:"獧";s:3:"狷";s:3:"獨";s:3:"独";s:3:"獪";s:3:"狯";s:3:"獫";s:3:"猃";s:3:"獮";s:3:"狝";s:3:"獰";s:3:"狞";s:3:"獵";s:3:"猎";s:3:"獷";s:3:"犷";s:3:"獸";s:3:"兽";s:3:"獺";s:3:"獭";s:3:"獻";s:3:"献";s:3:"獼";s:3:"猕";s:3:"玀";s:3:"猡";s:3:"玁";s:3:"猃";s:3:"玅";s:3:"妙";s:3:"玆";s:3:"兹";s:3:"珉";s:3:"玟";s:3:"珎";s:3:"珍";s:3:"珪";s:3:"圭";s:3:"珮";s:3:"佩";s:3:"現";s:3:"现";s:3:"球";s:3:"毬";s:3:"琝";s:3:"玟";s:3:"琱";s:3:"彫";s:3:"琿";s:3:"珲";s:3:"瑅";s:3:"珶";s:3:"瑋";s:3:"玮";s:3:"瑒";s:3:"玚";s:3:"瑣";s:3:"琐";s:3:"瑪";s:3:"玛";s:3:"瑯";s:3:"琅";s:3:"瑲";s:3:"玱";s:3:"瑶";s:3:"瑤";s:3:"璃";s:3:"琍";s:3:"璇";s:3:"琁";s:3:"璉";s:3:"琏";s:3:"璗";s:3:"玚";s:3:"璚";s:3:"琼";s:3:"璡";s:3:"琎";s:3:"璣";s:3:"玑";s:3:"璦";s:3:"瑷";s:3:"璫";s:3:"珰";s:3:"環";s:3:"环";s:3:"璵";s:3:"玙";s:3:"璸";s:3:"瑸";s:3:"璽";s:3:"玺";s:3:"璿";s:3:"琁";s:3:"瓊";s:3:"琼";s:3:"瓏";s:3:"珑";s:3:"瓔";s:3:"璎";s:3:"瓚";s:3:"瓒";s:3:"瓡";s:3:"執";s:3:"甁";s:3:"瓶";s:3:"甆";s:3:"瓷";s:3:"甌";s:3:"瓯";s:3:"甕";s:3:"瓮";s:3:"甖";s:3:"甇";s:3:"甜";s:3:"甛";s:3:"甞";s:3:"嘗";s:3:"產";s:3:"产";s:3:"産";s:3:"产";s:3:"甦";s:3:"囌";s:3:"町";s:3:"圢";s:3:"甿";s:3:"氓";s:3:"畅";s:3:"暢";s:3:"畆";s:3:"亩";s:3:"界";s:3:"堺";s:3:"畍";s:3:"堺";s:3:"畎";s:3:"甽";s:3:"畏";s:3:"愄";s:3:"留";s:3:"畄";s:3:"畝";s:3:"亩";s:3:"畢";s:3:"毕";s:3:"畧";s:3:"略";s:3:"畫";s:3:"画";s:3:"畭";s:3:"畬";s:3:"畮";s:3:"亩";s:3:"異";s:3:"异";s:3:"畲";s:3:"畬";s:3:"畵";s:3:"画";s:3:"當";s:3:"噹";s:3:"畽";s:3:"墥";s:3:"疃";s:3:"墥";s:3:"疇";s:3:"畴";s:3:"疉";s:3:"叠";s:3:"疊";s:3:"叠";s:3:"疋";s:3:"匹";s:3:"痌";s:3:"恫";s:3:"痖";s:3:"哑";s:3:"痙";s:3:"痉";s:3:"痱";s:3:"疿";s:3:"痲";s:3:"淋";s:3:"痳";s:3:"淋";s:3:"痵";s:3:"悸";s:3:"痹";s:3:"疪";s:3:"痺";s:3:"疪";s:3:"瘂";s:3:"哑";s:3:"瘉";s:3:"愈";s:3:"瘋";s:3:"疯";s:3:"瘍";s:3:"疡";s:3:"瘓";s:3:"痪";s:3:"瘖";s:3:"喑";s:3:"瘞";s:3:"瘗";s:3:"瘡";s:3:"疮";s:3:"瘣";s:3:"坏";s:3:"瘧";s:3:"疟";s:3:"瘮";s:3:"瘆";s:3:"瘲";s:3:"疭";s:3:"瘺";s:3:"瘘";s:3:"瘻";s:3:"瘘";s:3:"瘽";s:3:"勤";s:3:"療";s:3:"疗";s:3:"癆";s:3:"痨";s:3:"癇";s:3:"痫";s:3:"癈";s:3:"废";s:3:"癉";s:3:"瘅";s:3:"癒";s:3:"愈";s:3:"癘";s:3:"疠";s:3:"癝";s:3:"癛";s:3:"癟";s:3:"瘪";s:3:"癡";s:3:"痴";s:3:"癢";s:3:"痒";s:3:"癤";s:3:"疖";s:3:"癥";s:3:"症";s:3:"癧";s:3:"疬";s:3:"癩";s:3:"癞";s:3:"癫";s:3:"瘨";s:3:"癬";s:3:"癣";s:3:"癭";s:3:"瘿";s:3:"癮";s:3:"瘾";s:3:"癰";s:3:"痈";s:3:"癱";s:3:"瘫";s:3:"癲";s:3:"瘨";s:3:"發";s:3:"发";s:3:"皂";s:3:"皁";s:3:"皈";s:3:"帰";s:3:"皐";s:3:"皋";s:3:"皓";s:3:"暠";s:3:"皖";s:3:"晥";s:3:"皚";s:3:"皑";s:3:"皜";s:3:"暠";s:3:"皦";s:3:"皎";s:3:"皰";s:3:"疱";s:3:"皸";s:3:"皲";s:3:"皺";s:3:"皱";s:3:"皼";s:3:"皷";s:3:"盃";s:3:"杯";s:3:"盅";s:3:"冲";s:3:"盍";s:3:"盇";s:3:"盏";s:3:"琖";s:3:"盐";s:3:"塩";s:3:"盘";s:3:"洀";s:3:"盜";s:3:"盗";s:3:"盞";s:3:"琖";s:3:"盡";s:3:"儘";s:3:"監";s:3:"监";s:3:"盤";s:3:"洀";s:3:"盧";s:3:"卢";s:3:"盪";s:3:"潒";s:3:"盭";s:3:"戻";s:3:"盳";s:3:"盲";s:3:"眘";s:3:"愼";s:3:"真";s:3:"眞";s:3:"眾";s:3:"众";s:3:"睏";s:3:"困";s:3:"睜";s:3:"睁";s:3:"睞";s:3:"睐";s:3:"睠";s:3:"眷";s:3:"睾";s:3:"睪";s:3:"睿";s:3:"叡";s:3:"瞅";s:3:"偢";s:3:"瞇";s:3:"眯";s:3:"瞘";s:3:"眍";s:3:"瞜";s:3:"䁖";s:3:"瞞";s:3:"瞒";s:3:"瞬";s:3:"瞚";s:3:"瞭";s:3:"了";s:3:"瞶";s:3:"瞆";s:3:"瞼";s:3:"睑";s:3:"矇";s:3:"懞";s:3:"矏";s:3:"矈";s:3:"矓";s:3:"眬";s:3:"矙";s:3:"瞰";s:3:"矚";s:3:"瞩";s:3:"矩";s:3:"榘";s:3:"矯";s:3:"矫";s:3:"研";s:3:"揅";s:3:"砫";s:3:"柱";s:3:"砲";s:3:"炮";s:3:"硃";s:3:"朱";s:3:"硏";s:3:"揅";s:3:"硜";s:3:"硁";s:3:"硤";s:3:"硖";s:3:"硨";s:3:"砗";s:3:"硬";s:3:"峺";s:3:"确";s:3:"塙";s:3:"硯";s:3:"砚";s:3:"碁";s:3:"棊";s:3:"碇";s:3:"椗";s:3:"碎";s:3:"砕";s:3:"碕";s:3:"埼";s:3:"碞";s:3:"喦";s:3:"碢";s:3:"砣";s:3:"碨";s:3:"硙";s:3:"碩";s:3:"硕";s:3:"碪";s:3:"砧";s:3:"碭";s:3:"砀";s:3:"碯";s:3:"瑙";s:3:"碰";s:3:"掽";s:3:"碱";s:3:"硷";s:3:"碸";s:3:"砜";s:3:"確";s:3:"塙";s:3:"碻";s:3:"塙";s:3:"碼";s:3:"码";s:3:"磆";s:3:"滑";s:3:"磑";s:3:"硙";s:3:"磚";s:3:"砖";s:3:"磟";s:3:"碌";s:3:"磠";s:3:"硵";s:3:"磣";s:3:"碜";s:3:"磥";s:3:"磊";s:3:"磧";s:3:"碛";s:3:"磯";s:3:"矶";s:3:"磷";s:3:"燐";s:3:"磽";s:3:"硗";s:3:"礄";s:3:"硚";s:3:"礆";s:3:"硷";s:3:"礎";s:3:"础";s:3:"礙";s:3:"碍";s:3:"礝";s:3:"碝";s:3:"礦";s:3:"矿";s:3:"礪";s:3:"砺";s:3:"礫";s:3:"砾";s:3:"礬";s:3:"矾";s:3:"礭";s:3:"塙";s:3:"礮";s:3:"炮";s:3:"礱";s:3:"砻";s:3:"礸";s:3:"礤";s:3:"礹";s:3:"喦";s:3:"祅";s:3:"䚶";s:3:"祌";s:3:"冲";s:3:"祡";s:3:"柴";s:3:"祣";s:3:"旅";s:3:"祩";s:3:"祝";s:3:"禀";s:3:"廩";s:3:"禄";s:3:"祿";s:3:"禍";s:3:"祸";s:3:"禎";s:3:"祯";s:3:"禕";s:3:"祎";s:3:"禡";s:3:"祃";s:3:"禥";s:3:"祺";s:3:"禦";s:3:"御";s:3:"禪";s:3:"禅";s:3:"禮";s:3:"礼";s:3:"禰";s:3:"祢";s:3:"禱";s:3:"祷";s:3:"禴";s:3:"礿";s:3:"私";s:3:"厶";s:3:"秃";s:3:"禿";s:3:"秊";s:3:"年";s:3:"秖";s:3:"祇";s:3:"秘";s:3:"祕";s:3:"称";s:3:"偁";s:3:"稀";s:3:"希";s:3:"稈";s:3:"秆";s:3:"税";s:3:"稅";s:3:"稜";s:3:"棱";s:3:"稟";s:3:"廩";s:3:"稭";s:3:"秸";s:3:"種";s:3:"种";s:3:"稱";s:3:"偁";s:3:"稻";s:3:"稲";s:3:"稽";s:3:"乩";s:3:"稿";s:3:"稾";s:3:"穇";s:3:"䅟";s:3:"穉";s:3:"稚";s:3:"穋";s:3:"稑";s:3:"穌";s:3:"稣";s:3:"積";s:3:"积";s:3:"穐";s:3:"秋";s:3:"穗";s:3:"穂";s:3:"穟";s:3:"穂";s:3:"穠";s:3:"秾";s:3:"穡";s:3:"穑";s:3:"穢";s:3:"秽";s:3:"穩";s:3:"稳";s:3:"穫";s:3:"獲";s:3:"穭";s:3:"穞";s:3:"穴";s:3:"岤";s:3:"穵";s:3:"挖";s:3:"穻";s:3:"宇";s:3:"窗";s:3:"窓";s:3:"窨";s:3:"堷";s:3:"窩";s:3:"窝";s:3:"窪";s:3:"洼";s:3:"窭";s:3:"寠";s:3:"窮";s:3:"穷";s:3:"窯";s:3:"窑";s:3:"窰";s:3:"窑";s:3:"窵";s:3:"窎";s:3:"窶";s:3:"寠";s:3:"窺";s:3:"窥";s:3:"竄";s:3:"窜";s:3:"竅";s:3:"窍";s:3:"竇";s:3:"窦";s:3:"竈";s:3:"灶";s:3:"竊";s:3:"窃";s:3:"竒";s:3:"奇";s:3:"竝";s:3:"並";s:3:"竢";s:3:"俟";s:3:"竤";s:3:"竑";s:3:"竪";s:3:"竖";s:3:"競";s:3:"竞";s:3:"竸";s:3:"竞";s:3:"笁";s:3:"竺";s:3:"笆";s:3:"巴";s:3:"笑";s:3:"咲";s:3:"笶";s:3:"矢";s:3:"笺";s:3:"牋";s:3:"筆";s:3:"笔";s:3:"筇";s:3:"笻";s:3:"筊";s:3:"笅";s:3:"筋";s:3:"斤";s:3:"筍";s:3:"笋";s:3:"答";s:3:"畣";s:3:"筞";s:3:"策";s:3:"筧";s:3:"笕";s:3:"筩";s:3:"筒";s:3:"筭";s:3:"祘";s:3:"筰";s:3:"笮";s:3:"筴";s:3:"策";s:3:"筿";s:3:"筱";s:3:"箇";s:3:"个";s:3:"箋";s:3:"牋";s:3:"箎";s:3:"竾";s:3:"箏";s:3:"筝";s:3:"算";s:3:"祘";s:3:"箚";s:3:"剳";s:3:"箝";s:3:"拑";s:3:"箠";s:3:"棰";s:3:"管";s:3:"筦";s:3:"築";s:3:"筑";s:3:"篋";s:3:"箧";s:3:"篔";s:3:"筼";s:3:"篛";s:3:"箬";s:3:"篠";s:3:"筱";s:3:"篤";s:3:"笃";s:3:"篩";s:3:"筛";s:3:"篪";s:3:"竾";s:3:"篭";s:3:"笼";s:3:"篱";s:3:"筣";s:3:"篲";s:3:"彗";s:3:"篳";s:3:"筚";s:3:"篴";s:3:"笛";s:3:"簀";s:3:"箦";s:3:"簆";s:3:"筘";s:3:"簈";s:3:"箳";s:3:"簍";s:3:"篓";s:3:"簒";s:3:"篡";s:3:"簘";s:3:"箫";s:3:"簞";s:3:"箪";s:3:"簡";s:3:"简";s:3:"簣";s:3:"篑";s:3:"簫";s:3:"箫";s:3:"簷";s:3:"檐";s:3:"簹";s:3:"筜";s:3:"簼";s:3:"篝";s:3:"簽";s:3:"签";s:3:"簾";s:3:"帘";s:3:"籃";s:3:"篮";s:3:"籉";s:3:"台";s:3:"籌";s:3:"筹";s:3:"籖";s:3:"签";s:3:"籘";s:3:"籐";s:3:"籙";s:3:"箓";s:3:"籛";s:3:"篯";s:3:"籜";s:3:"箨";s:3:"籞";s:3:"篽";s:3:"籟";s:3:"籁";s:3:"籠";s:3:"笼";s:3:"籤";s:3:"签";s:3:"籩";s:3:"笾";s:3:"籪";s:3:"簖";s:3:"籬";s:3:"筣";s:3:"籮";s:3:"箩";s:3:"籲";s:3:"吁";s:3:"籵";s:3:"番";s:3:"籼";s:3:"秈";s:3:"粢";s:3:"秶";s:3:"粵";s:3:"粤";s:3:"粹";s:3:"粋";s:3:"粺";s:3:"稗";s:3:"糅";s:3:"粈";s:3:"糈";s:3:"稰";s:3:"糉";s:3:"粽";s:3:"糜";s:3:"爢";s:3:"糝";s:3:"糁";s:3:"糞";s:3:"粪";s:3:"糠";s:3:"穅";s:3:"糧";s:3:"粮";s:3:"糭";s:3:"粽";s:3:"糰";s:3:"团";s:3:"糲";s:3:"粝";s:3:"糴";s:3:"籴";s:3:"糵";s:3:"糱";s:3:"糶";s:3:"粜";s:3:"糸";s:3:"丝";s:3:"糹";s:3:"丝";s:3:"系";s:3:"係";s:3:"糾";s:3:"糺";s:3:"紙";s:3:"帋";s:3:"素";s:3:"榡";s:3:"紥";s:3:"剳";s:3:"紬";s:3:"䌷";s:3:"紮";s:3:"剳";s:3:"絃";s:3:"弦";s:3:"絏";s:3:"紲";s:3:"絖";s:3:"絋";s:3:"絨";s:3:"毧";s:3:"絫";s:3:"累";s:3:"絲";s:3:"丝";s:3:"絶";s:3:"絕";s:3:"絼";s:3:"紖";s:3:"綍";s:3:"紼";s:3:"綑";s:3:"捆";s:3:"經";s:3:"経";s:3:"綢";s:3:"䌷";s:3:"綮";s:3:"棨";s:3:"綵";s:3:"彩";s:3:"緊";s:3:"紧";s:3:"緌";s:3:"綏";s:3:"総";s:3:"总";s:3:"緑";s:3:"綠";s:3:"緖";s:3:"緒";s:3:"線";s:3:"綫";s:3:"縁";s:3:"緣";s:3:"縂";s:3:"总";s:3:"縆";s:3:"緪";s:3:"縍";s:3:"帮";s:3:"縕";s:3:"緼";s:3:"縚";s:3:"絛";s:3:"縣";s:3:"县";s:3:"縧";s:3:"絛";s:3:"縮";s:3:"摍";s:3:"縱";s:3:"縦";s:3:"縴";s:3:"孅";s:3:"縶";s:3:"絷";s:3:"總";s:3:"总";s:3:"績";s:3:"勣";s:3:"繁";s:3:"緐";s:3:"繃";s:3:"綳";s:3:"繍";s:3:"綉";s:3:"繖";s:3:"伞";s:3:"繡";s:3:"綉";s:3:"繢";s:3:"絵";s:3:"繦";s:3:"繈";s:3:"繩";s:3:"縄";s:3:"繪";s:3:"絵";s:3:"繫";s:3:"係";s:3:"繼";s:3:"継";s:3:"纊";s:3:"絋";s:3:"纍";s:3:"累";s:3:"纎";s:3:"孅";s:3:"纒";s:3:"纏";s:3:"纔";s:3:"才";s:3:"纖";s:3:"孅";s:3:"纘";s:3:"纉";s:3:"纟";s:3:"丝";s:3:"纠";s:3:"糺";s:3:"纡";s:3:"紆";s:3:"红";s:3:"紅";s:3:"纣";s:3:"紂";s:3:"纤";s:3:"孅";s:3:"纥";s:3:"紇";s:3:"约";s:3:"約";s:3:"级";s:3:"級";s:3:"纨";s:3:"紈";s:3:"纩";s:3:"絋";s:3:"纪";s:3:"紀";s:3:"纫";s:3:"紉";s:3:"纬";s:3:"緯";s:3:"纭";s:3:"紜";s:3:"纮";s:3:"紘";s:3:"纯";s:3:"純";s:3:"纰";s:3:"紕";s:3:"纱";s:3:"紗";s:3:"纲";s:3:"綱";s:3:"纳";s:3:"納";s:3:"纴";s:3:"紝";s:3:"纵";s:3:"縦";s:3:"纶";s:3:"綸";s:3:"纷";s:3:"紛";s:3:"纸";s:3:"帋";s:3:"纹";s:3:"紋";s:3:"纺";s:3:"紡";s:3:"纻";s:3:"紵";s:3:"纼";s:3:"紖";s:3:"纽";s:3:"紐";s:3:"纾";s:3:"紓";s:3:"线";s:3:"綫";s:3:"绀";s:3:"紺";s:3:"绁";s:3:"紲";s:3:"绂";s:3:"紱";s:3:"练";s:3:"練";s:3:"组";s:3:"組";s:3:"绅";s:3:"紳";s:3:"细";s:3:"細";s:3:"织";s:3:"織";s:3:"终";s:3:"終";s:3:"绉";s:3:"縐";s:3:"绊";s:3:"絆";s:3:"绋";s:3:"紼";s:3:"绌";s:3:"絀";s:3:"绍";s:3:"紹";s:3:"绎";s:3:"繹";s:3:"经";s:3:"経";s:3:"绐";s:3:"紿";s:3:"绑";s:3:"綁";s:3:"绒";s:3:"毧";s:3:"结";s:3:"結";s:3:"绔";s:3:"絝";s:3:"绕";s:3:"繞";s:3:"绖";s:3:"絰";s:3:"绗";s:3:"絎";s:3:"绘";s:3:"絵";s:3:"给";s:3:"給";s:3:"绚";s:3:"絢";s:3:"绛";s:3:"絳";s:3:"络";s:3:"絡";s:3:"绝";s:3:"絕";s:3:"绞";s:3:"絞";s:3:"统";s:3:"統";s:3:"绠";s:3:"綆";s:3:"绡";s:3:"綃";s:3:"绢";s:3:"絹";s:3:"绣";s:3:"綉";s:3:"绤";s:3:"綌";s:3:"绥";s:3:"綏";s:3:"绦";s:3:"絛";s:3:"继";s:3:"継";s:3:"绨";s:3:"綈";s:3:"绩";s:3:"勣";s:3:"绪";s:3:"緒";s:3:"绫";s:3:"綾";s:3:"续";s:3:"續";s:3:"绮";s:3:"綺";s:3:"绯";s:3:"緋";s:3:"绰";s:3:"綽";s:3:"绱";s:3:"緔";s:3:"绲";s:3:"緄";s:3:"绳";s:3:"縄";s:3:"维";s:3:"維";s:3:"绵";s:3:"綿";s:3:"绶";s:3:"綬";s:3:"绷";s:3:"綳";s:3:"绸";s:3:"䌷";s:3:"绹";s:3:"綯";s:3:"绺";s:3:"綹";s:3:"绻";s:3:"綣";s:3:"综";s:3:"綜";s:3:"绽";s:3:"綻";s:3:"绾";s:3:"綰";s:3:"绿";s:3:"綠";s:3:"缀";s:3:"綴";s:3:"缁";s:3:"緇";s:3:"缂";s:3:"緙";s:3:"缃";s:3:"緗";s:3:"缄";s:3:"緘";s:3:"缅";s:3:"緬";s:3:"缆";s:3:"纜";s:3:"缇";s:3:"緹";s:3:"缈";s:3:"緲";s:3:"缉";s:3:"緝";s:3:"缊";s:3:"緼";s:3:"缋";s:3:"絵";s:3:"缌";s:3:"緦";s:3:"缍";s:3:"綞";s:3:"缎";s:3:"緞";s:3:"缏";s:3:"緶";s:3:"缐";s:3:"綫";s:3:"缑";s:3:"緱";s:3:"缒";s:3:"縋";s:3:"缓";s:3:"緩";s:3:"缔";s:3:"締";s:3:"缕";s:3:"縷";s:3:"编";s:3:"編";s:3:"缗";s:3:"緡";s:3:"缘";s:3:"緣";s:3:"缙";s:3:"縉";s:3:"缚";s:3:"縛";s:3:"缛";s:3:"縟";s:3:"缜";s:3:"縝";s:3:"缝";s:3:"縫";s:3:"缞";s:3:"縗";s:3:"缟";s:3:"縞";s:3:"缠";s:3:"纏";s:3:"缡";s:3:"縭";s:3:"缢";s:3:"縊";s:3:"缣";s:3:"縑";s:3:"缤";s:3:"繽";s:3:"缥";s:3:"縹";s:3:"缦";s:3:"縵";s:3:"缧";s:3:"縲";s:3:"缨";s:3:"纓";s:3:"缩";s:3:"摍";s:3:"缪";s:3:"繆";s:3:"缫";s:3:"繅";s:3:"缬";s:3:"纈";s:3:"缭";s:3:"繚";s:3:"缮";s:3:"繕";s:3:"缯";s:3:"繒";s:3:"缰";s:3:"繮";s:3:"缱";s:3:"繾";s:3:"缲";s:3:"繰";s:3:"缳";s:3:"繯";s:3:"缴";s:3:"繳";s:3:"缵";s:3:"纉";s:3:"缷";s:3:"卸";s:3:"缸";s:3:"堈";s:3:"缾";s:3:"瓶";s:3:"罂";s:3:"甇";s:3:"罃";s:3:"甇";s:3:"罇";s:3:"墫";s:3:"罈";s:3:"坛";s:3:"罋";s:3:"瓮";s:3:"罌";s:3:"甇";s:3:"罎";s:3:"坛";s:3:"罏";s:3:"垆";s:3:"网";s:3:"網";s:3:"罣";s:3:"挂";s:3:"罦";s:3:"罘";s:3:"置";s:3:"寘";s:3:"罰";s:3:"罚";s:3:"罵";s:3:"傌";s:3:"罷";s:3:"罢";s:3:"罸";s:3:"罚";s:3:"罼";s:3:"毕";s:3:"羀";s:3:"罶";s:3:"羂";s:3:"罥";s:3:"羃";s:3:"冪";s:3:"羅";s:3:"罗";s:3:"羆";s:3:"罴";s:3:"羇";s:3:"羁";s:3:"羈";s:3:"羁";s:3:"美";s:3:"媺";s:3:"羛";s:3:"义";s:3:"羝";s:3:"扺";s:3:"羢";s:3:"毧";s:3:"群";s:3:"羣";s:3:"羥";s:3:"羟";s:3:"羨";s:3:"羡";s:3:"義";s:3:"义";s:3:"羹";s:3:"羮";s:3:"翅";s:3:"翄";s:3:"習";s:3:"习";s:3:"翠";s:3:"翆";s:3:"翢";s:3:"纛";s:3:"翨";s:3:"翄";s:3:"翬";s:3:"翚";s:3:"翵";s:3:"翭";s:3:"翶";s:3:"翱";s:3:"翹";s:3:"翘";s:3:"翺";s:3:"翱";s:3:"翻";s:3:"繙";s:3:"翽";s:3:"翙";s:3:"耀";s:3:"曜";s:3:"耂";s:3:"老";s:3:"考";s:3:"攷";s:3:"耈";s:3:"耇";s:3:"耉";s:3:"耇";s:3:"耑";s:3:"端";s:3:"耗";s:3:"秏";s:3:"耘";s:3:"秐";s:3:"耝";s:3:"刞";s:3:"耞";s:3:"枷";s:3:"耤";s:3:"借";s:3:"耬";s:3:"耧";s:3:"耮";s:3:"耢";s:3:"耰";s:3:"櫌";s:3:"耻";s:3:"恥";s:3:"聖";s:3:"圣";s:3:"聟";s:3:"婿";s:3:"聨";s:3:"联";s:3:"聪";s:3:"聡";s:3:"聫";s:3:"联";s:3:"聮";s:3:"联";s:3:"聯";s:3:"联";s:3:"聰";s:3:"聡";s:3:"聲";s:3:"声";s:3:"聳";s:3:"耸";s:3:"聴";s:3:"听";s:3:"聵";s:3:"聩";s:3:"聶";s:3:"聂";s:3:"職";s:3:"职";s:3:"聹";s:3:"聍";s:3:"聼";s:3:"听";s:3:"聽";s:3:"听";s:3:"聾";s:3:"聋";s:3:"肀";s:3:"聿";s:3:"肃";s:3:"粛";s:3:"肅";s:3:"粛";s:3:"肆";s:3:"四";s:3:"肉";s:3:"宍";s:3:"肛";s:3:"疘";s:3:"肣";s:3:"函";s:3:"肦";s:3:"朌";s:3:"肻";s:3:"肯";s:3:"胄";s:3:"冑";s:3:"胇";s:3:"肺";s:3:"胊";s:3:"朐";s:3:"背";s:3:"偝";s:3:"胐";s:3:"朏";s:3:"胑";s:3:"肢";s:3:"胜";s:3:"勝";s:3:"胥";s:3:"縃";s:3:"胧";s:3:"朧";s:3:"胳";s:3:"肐";s:3:"胶";s:3:"㬵";s:3:"胸";s:3:"胷";s:3:"脁";s:3:"朓";s:3:"脅";s:3:"胁";s:3:"脇";s:3:"胁";s:3:"脉";s:3:"脈";s:3:"脛";s:3:"胫";s:3:"脣";s:3:"唇";s:3:"脧";s:3:"朘";s:3:"脩";s:3:"修";s:3:"脱";s:3:"脫";s:3:"脹";s:3:"胀";s:3:"腁";s:3:"胼";s:3:"腆";s:3:"倎";s:3:"腎";s:3:"肾";s:3:"腖";s:3:"胨";s:3:"腠";s:3:"傶";s:3:"腡";s:3:"脶";s:3:"腦";s:3:"脑";s:3:"腫";s:3:"肿";s:3:"腳";s:3:"脚";s:3:"腸";s:3:"肠";s:3:"膃";s:3:"腽";s:3:"膆";s:3:"嗉";s:3:"膌";s:3:"瘠";s:3:"膓";s:3:"肠";s:3:"膕";s:3:"腘";s:3:"膚";s:3:"肤";s:3:"膞";s:3:"䏝";s:3:"膠";s:3:"㬵";s:3:"膧";s:3:"朣";s:3:"膩";s:3:"腻";s:3:"膬";s:3:"脆";s:3:"膻";s:3:"羶";s:3:"膽";s:3:"胆";s:3:"膾";s:3:"脍";s:3:"膿";s:3:"脓";s:3:"臆";s:3:"肊";s:3:"臈";s:3:"腊";s:3:"臉";s:3:"脸";s:3:"臍";s:3:"脐";s:3:"臏";s:3:"膑";s:3:"臕";s:3:"膘";s:3:"臘";s:3:"腊";s:3:"臙";s:3:"胭";s:3:"臚";s:3:"胪";s:3:"臟";s:3:"脏";s:3:"臠";s:3:"脔";s:3:"臢";s:3:"臜";s:3:"臥";s:3:"卧";s:3:"臨";s:3:"临";s:3:"臭";s:3:"殠";s:3:"臮";s:3:"暨";s:3:"致";s:3:"緻";s:3:"臺";s:3:"台";s:3:"舀";s:3:"抭";s:3:"舄";s:3:"舃";s:3:"與";s:3:"与";s:3:"興";s:3:"兴";s:3:"舉";s:3:"举";s:3:"舊";s:3:"旧";s:3:"舍";s:3:"捨";s:3:"舎";s:3:"捨";s:3:"舣";s:3:"檥";s:3:"舩";s:3:"舡";s:3:"航";s:3:"桁";s:3:"舵";s:3:"柁";s:3:"船";s:3:"舡";s:3:"艊";s:3:"舶";s:3:"艐";s:3:"屆";s:3:"艙";s:3:"舱";s:3:"艣";s:3:"樐";s:3:"艤";s:3:"檥";s:3:"艦";s:3:"舰";s:3:"艪";s:3:"樐";s:3:"艫";s:3:"舻";s:3:"艱";s:3:"艰";s:3:"艶";s:3:"艳";s:3:"艷";s:3:"艳";s:3:"艺";s:3:"兿";s:3:"节";s:3:"節";s:3:"芈";s:3:"羋";s:3:"芒";s:3:"笀";s:3:"芻";s:3:"刍";s:3:"苅";s:3:"刈";s:3:"苏";s:3:"囌";s:3:"苕";s:3:"芀";s:3:"苟";s:3:"芶";s:3:"苦";s:3:"瘔";s:3:"苧";s:3:"苎";s:3:"英";s:3:"偀";s:3:"范";s:3:"範";s:3:"茆";s:3:"茅";s:3:"茔";s:3:"塋";s:3:"茕";s:3:"惸";s:3:"茧";s:3:"繭";s:3:"茫";s:3:"汒";s:3:"茲";s:3:"兹";s:3:"荅";s:3:"畣";s:3:"草";s:3:"艸";s:3:"荊";s:3:"荆";s:3:"荔";s:3:"茘";s:3:"荘";s:3:"庄";s:3:"荡";s:3:"潒";s:3:"荣";s:3:"栄";s:3:"荥";s:3:"滎";s:3:"荦";s:3:"犖";s:3:"荧";s:3:"熒";s:3:"荫";s:3:"廕";s:3:"荳";s:3:"梪";s:3:"莊";s:3:"庄";s:3:"莕";s:3:"荇";s:3:"莖";s:3:"茎";s:3:"莢";s:3:"荚";s:3:"莧";s:3:"苋";s:3:"获";s:3:"獲";s:3:"莹";s:3:"瑩";s:3:"莽";s:3:"茻";s:3:"菇";s:3:"苽";s:3:"菋";s:3:"苿";s:3:"菏";s:3:"渮";s:3:"菓";s:3:"果";s:3:"菔";s:3:"卜";s:3:"菫";s:3:"堇";s:3:"華";s:3:"华";s:3:"菰";s:3:"苽";s:3:"菴";s:3:"庵";s:3:"菷";s:3:"帚";s:3:"菸";s:3:"烟";s:3:"萅";s:3:"春";s:3:"萇";s:3:"苌";s:3:"萊";s:3:"莱";s:3:"萎";s:3:"荽";s:3:"萕";s:3:"荠";s:3:"营";s:3:"営";s:3:"萦";s:3:"縈";s:3:"萬";s:3:"万";s:3:"萲";s:3:"萱";s:3:"萴";s:3:"荝";s:3:"萵";s:3:"莴";s:3:"葅";s:3:"菹";s:3:"葉";s:3:"叶";s:3:"葌";s:3:"菅";s:3:"葒";s:3:"荭";s:3:"著";s:3:"着";s:3:"葠";s:3:"叁";s:3:"葢";s:3:"盖";s:3:"葤";s:3:"荮";s:3:"葦";s:3:"苇";s:3:"葧";s:3:"荸";s:3:"葬";s:3:"塟";s:3:"葮";s:3:"椴";s:3:"葯";s:3:"药";s:3:"葷";s:3:"荤";s:3:"蒓";s:3:"莼";s:3:"蒔";s:3:"莳";s:3:"蒙";s:3:"懞";s:3:"蒞";s:3:"莅";s:3:"蒼";s:3:"苍";s:3:"蓀";s:3:"荪";s:3:"蓆";s:3:"席";s:3:"蓋";s:3:"盖";s:3:"蓑";s:3:"簑";s:3:"蓡";s:3:"叁";s:3:"蓮";s:3:"莲";s:3:"蓯";s:3:"苁";s:3:"蓳";s:3:"堇";s:3:"蓴";s:3:"莼";s:3:"蓺";s:3:"兿";s:3:"蓽";s:3:"荜";s:3:"蔆";s:3:"菱";s:3:"蔇";s:3:"暨";s:3:"蔉";s:3:"蓘";s:3:"蔍";s:3:"粗";s:3:"蔒";s:3:"荤";s:3:"蔔";s:3:"卜";s:3:"蔞";s:3:"蒌";s:3:"蔣";s:3:"蒋";s:3:"蔥";s:3:"葱";s:3:"蔦";s:3:"茑";s:3:"蔭";s:3:"廕";s:3:"蔮";s:3:"帼";s:3:"蔱";s:3:"榝";s:3:"蔴";s:3:"淋";s:3:"蔿";s:3:"蒍";s:3:"蕁";s:3:"荨";s:3:"蕄";s:3:"萌";s:3:"蕆";s:3:"蒇";s:3:"蕊";s:3:"橤";s:3:"蕋";s:3:"橤";s:3:"蕎";s:3:"荞";s:3:"蕒";s:3:"荬";s:3:"蕓";s:3:"芸";s:3:"蕕";s:3:"莸";s:3:"蕘";s:3:"荛";s:3:"蕚";s:3:"萼";s:3:"蕢";s:3:"蒉";s:3:"蕩";s:3:"潒";s:3:"蕪";s:3:"芜";s:3:"蕫";s:3:"董";s:3:"蕭";s:3:"萧";s:3:"蕱";s:3:"稍";s:3:"蕷";s:3:"蓣";s:3:"薀";s:3:"蕰";s:3:"薈";s:3:"荟";s:3:"薉";s:3:"秽";s:3:"薊";s:3:"蓟";s:3:"薌";s:3:"芗";s:3:"薎";s:3:"蔑";s:3:"薑";s:3:"姜";s:3:"薔";s:3:"蔷";s:3:"薘";s:3:"荙";s:3:"薙";s:3:"剃";s:3:"薞";s:3:"蕵";s:3:"薟";s:3:"莶";s:3:"薦";s:3:"荐";s:3:"薩";s:3:"萨";s:3:"薬";s:3:"药";s:3:"薮";s:3:"籔";s:3:"薰";s:3:"薫";s:3:"薺";s:3:"荠";s:3:"藂";s:3:"丛";s:3:"藉";s:3:"借";s:3:"藍";s:3:"蓝";s:3:"藎";s:3:"荩";s:3:"藏";s:3:"蔵";s:3:"藕";s:3:"蕅";s:3:"藜";s:3:"蔾";s:3:"藝";s:3:"兿";s:3:"藡";s:3:"荻";s:3:"藤";s:3:"籐";s:3:"藥";s:3:"药";s:3:"藩";s:3:"籓";s:3:"藪";s:3:"籔";s:3:"藭";s:3:"䓖";s:3:"藴";s:3:"蕴";s:3:"藶";s:3:"苈";s:3:"藷";s:3:"薯";s:3:"藸";s:3:"蕏";s:3:"藹";s:3:"蔼";s:3:"藺";s:3:"蔺";s:3:"藽";s:3:"榇";s:3:"蘀";s:3:"萚";s:3:"蘂";s:3:"橤";s:3:"蘄";s:3:"蕲";s:3:"蘆";s:3:"芦";s:3:"蘇";s:3:"囌";s:3:"蘊";s:3:"蕴";s:3:"蘋";s:3:"苹";s:3:"蘓";s:3:"囌";s:3:"蘔";s:3:"蘏";s:3:"蘖";s:3:"櫱";s:3:"蘗";s:3:"檗";s:3:"蘚";s:3:"藓";s:3:"蘜";s:3:"菊";s:3:"蘞";s:3:"蔹";s:3:"蘢";s:3:"茏";s:3:"蘤";s:3:"花";s:3:"蘭";s:3:"兰";s:3:"蘯";s:3:"潒";s:3:"蘺";s:3:"蓠";s:3:"蘽";s:3:"櫐";s:3:"蘿";s:3:"萝";s:3:"虁";s:3:"蘷";s:3:"虑";s:3:"慮";s:3:"處";s:3:"处";s:3:"虖";s:3:"呼";s:3:"虛";s:3:"虚";s:3:"虜";s:3:"虏";s:3:"號";s:3:"号";s:3:"虣";s:3:"暴";s:3:"虧";s:3:"亏";s:3:"虯";s:3:"虬";s:3:"虺";s:3:"蘬";s:3:"蚌";s:3:"硥";s:3:"蚘";s:3:"痐";s:3:"蚳";s:3:"蚔";s:3:"蛌";s:3:"蛄";s:3:"蛔";s:3:"痐";s:3:"蛬";s:3:"蛩";s:3:"蛺";s:3:"蛱";s:3:"蜄";s:3:"蜃";s:3:"蜆";s:3:"蚬";s:3:"蜒";s:3:"蜑";s:3:"蜕";s:3:"蛻";s:3:"蜖";s:3:"痐";s:3:"蜗";s:3:"瘑";s:3:"蜙";s:3:"蚣";s:3:"蜹";s:3:"蚋";s:3:"蜺";s:3:"蛪";s:3:"蝕";s:3:"蚀";s:3:"蝟";s:3:"猬";s:3:"蝦";s:3:"虾";s:3:"蝨";s:3:"虱";s:3:"蝯";s:3:"猿";s:3:"蝳";s:3:"玳";s:3:"蝶";s:3:"蜨";s:3:"蝸";s:3:"瘑";s:3:"螂";s:3:"蜋";s:3:"螄";s:3:"蛳";s:3:"螘";s:3:"蚁";s:3:"螞";s:3:"蚂";s:3:"螡";s:3:"蚊";s:3:"螢";s:3:"萤";s:3:"螳";s:3:"螗";s:3:"螻";s:3:"蝼";s:3:"螿";s:3:"螀";s:3:"蟁";s:3:"蚊";s:3:"蟄";s:3:"蛰";s:3:"蟇";s:3:"蟆";s:3:"蟈";s:3:"蝈";s:3:"蟎";s:3:"螨";s:3:"蟣";s:3:"虮";s:3:"蟬";s:3:"蝉";s:3:"蟯";s:3:"蛲";s:3:"蟲";s:3:"虫";s:3:"蟶";s:3:"蛏";s:3:"蟻";s:3:"蚁";s:3:"蠁";s:3:"蚃";s:3:"蠅";s:3:"蝇";s:3:"蠆";s:3:"虿";s:3:"蠍";s:3:"蝎";s:3:"蠎";s:3:"蟒";s:3:"蠏";s:3:"蟹";s:3:"蠐";s:3:"蛴";s:3:"蠑";s:3:"蝾";s:3:"蠔";s:3:"蚝";s:3:"蠕";s:3:"蝡";s:3:"蠟";s:3:"蜡";s:3:"蠢";s:3:"惷";s:3:"蠣";s:3:"蛎";s:3:"蠨";s:3:"蟏";s:3:"蠩";s:3:"蝫";s:3:"蠫";s:3:"劙";s:3:"蠱";s:3:"蛊";s:3:"蠶";s:3:"蚕";s:3:"蠹";s:3:"蠧";s:3:"蠻";s:3:"蛮";s:3:"蠼";s:3:"蠷";s:3:"衄";s:3:"衂";s:3:"衆";s:3:"众";s:3:"衊";s:3:"蔑";s:3:"術";s:3:"朮";s:3:"衔";s:3:"啣";s:3:"衕";s:3:"仝";s:3:"衖";s:3:"弄";s:3:"衚";s:3:"胡";s:3:"衛";s:3:"卫";s:3:"衝";s:3:"冲";s:3:"衞";s:3:"卫";s:3:"衩";s:3:"紁";s:3:"衮";s:3:"緷";s:3:"衶";s:3:"冲";s:3:"衹";s:3:"只";s:3:"袅";s:3:"嫋";s:3:"袈";s:3:"毠";s:3:"袍";s:3:"袌";s:3:"袘";s:3:"衪";s:3:"袞";s:3:"緷";s:3:"袟";s:3:"帙";s:3:"裊";s:3:"嫋";s:3:"裌";s:3:"夹";s:3:"裕";s:3:"袬";s:3:"裙";s:3:"帬";s:3:"補";s:3:"补";s:3:"裝";s:3:"装";s:3:"裠";s:3:"帬";s:3:"裡";s:3:"裏";s:3:"裤";s:3:"袴";s:3:"裵";s:3:"裴";s:3:"裸";s:3:"臝";s:3:"製";s:3:"制";s:3:"褀";s:3:"帺";s:3:"褁";s:3:"裹";s:3:"複";s:3:"复";s:3:"褊";s:3:"惼";s:3:"褌";s:3:"裈";s:3:"褎";s:3:"袖";s:3:"褔";s:3:"副";s:3:"褘";s:3:"袆";s:3:"褞";s:3:"緼";s:3:"褢";s:3:"怀";s:3:"褭";s:3:"嫋";s:3:"褱";s:3:"怀";s:3:"褲";s:3:"袴";s:3:"褳";s:3:"裢";s:3:"褴";s:3:"繿";s:3:"褵";s:3:"縭";s:3:"褸";s:3:"褛";s:3:"褻";s:3:"亵";s:3:"襃";s:3:"褒";s:3:"襇";s:3:"裥";s:3:"襉";s:3:"裥";s:3:"襏";s:3:"袯";s:3:"襕";s:3:"幱";s:3:"襖";s:3:"袄";s:3:"襝";s:3:"裣";s:3:"襠";s:3:"裆";s:3:"襢";s:3:"袒";s:3:"襤";s:3:"繿";s:3:"襪";s:3:"袜";s:3:"襬";s:3:"摆";s:3:"襯";s:3:"衬";s:3:"襲";s:3:"袭";s:3:"襴";s:3:"幱";s:3:"覀";s:3:"襾";s:3:"覆";s:3:"复";s:3:"覈";s:3:"核";s:3:"覉";s:3:"羁";s:3:"覊";s:3:"羁";s:3:"規";s:3:"椝";s:3:"覕";s:3:"瞥";s:3:"覚";s:3:"斍";s:3:"覜";s:3:"眺";s:3:"覝";s:3:"亷";s:3:"親";s:3:"亲";s:3:"観";s:3:"覌";s:3:"覸";s:3:"覵";s:3:"覺";s:3:"斍";s:3:"覽";s:3:"覧";s:3:"觀";s:3:"覌";s:3:"见";s:3:"見";s:3:"观";s:3:"覌";s:3:"觃";s:3:"覎";s:3:"规";s:3:"椝";s:3:"觅";s:3:"覓";s:3:"视";s:3:"視";s:3:"觇";s:3:"覘";s:3:"览";s:3:"覧";s:3:"觉";s:3:"斍";s:3:"觊";s:3:"覬";s:3:"觋";s:3:"覡";s:3:"觌";s:3:"覿";s:3:"觍";s:3:"覥";s:3:"觎";s:3:"覦";s:3:"觏";s:3:"覯";s:3:"觐";s:3:"覲";s:3:"觑";s:3:"覷";s:3:"觔";s:3:"斤";s:3:"觕";s:3:"粗";s:3:"觙";s:3:"伋";s:3:"觝";s:3:"扺";s:3:"觧";s:3:"解";s:3:"觲";s:3:"觪";s:3:"觴";s:3:"觞";s:3:"觶";s:3:"觯";s:3:"觸";s:3:"触";s:3:"觾";s:3:"燕";s:3:"訁";s:3:"言";s:3:"託";s:3:"托";s:3:"訞";s:3:"䚶";s:3:"訢";s:3:"䜣";s:3:"訧";s:3:"尤";s:3:"訩";s:3:"哅";s:3:"訴";s:3:"愬";s:3:"訶";s:3:"呵";s:3:"註";s:3:"注";s:3:"訿";s:3:"訾";s:3:"詆";s:3:"呧";s:3:"詠";s:3:"咏";s:3:"詧";s:3:"察";s:3:"詫";s:3:"侘";s:3:"詻";s:3:"咯";s:3:"詽";s:3:"訮";s:3:"誇";s:3:"夸";s:3:"誋";s:3:"忌";s:3:"誌";s:3:"志";s:3:"誒";s:3:"欸";s:3:"誖";s:3:"悖";s:3:"誤";s:3:"悞";s:3:"説";s:3:"說";s:3:"誾";s:3:"訚";s:3:"諄";s:3:"訰";s:3:"諅";s:3:"忌";s:3:"諙";s:3:"話";s:3:"諠";s:3:"吅";s:3:"諫";s:3:"諌";s:3:"諮";s:3:"咨";s:3:"諵";s:3:"喃";s:3:"謄";s:3:"誊";s:3:"謕";s:3:"啼";s:3:"謚";s:3:"諡";s:3:"謡";s:3:"謠";s:3:"謪";s:3:"商";s:3:"謯";s:3:"詛";s:3:"謶";s:3:"庶";s:3:"謼";s:3:"呼";s:3:"譁";s:3:"哗";s:3:"譆";s:3:"嘻";s:3:"譈";s:3:"憝";s:3:"證";s:3:"証";s:3:"譌";s:3:"訛";s:3:"譍";s:3:"应";s:3:"譎";s:3:"噊";s:3:"譐";s:3:"噂";s:3:"譑";s:3:"挢";s:3:"譔";s:3:"撰";s:3:"譕";s:3:"謨";s:3:"譜";s:3:"諩";s:3:"譟";s:3:"噪";s:3:"譪";s:3:"蔼";s:3:"譭";s:3:"毀";s:3:"譱";s:3:"善";s:3:"護";s:3:"护";s:3:"譹";s:3:"号";s:3:"譻";s:3:"嘤";s:3:"譽";s:3:"誉";s:3:"譾";s:3:"謭";s:3:"譿";s:3:"慧";s:3:"變";s:3:"变";s:3:"讋";s:3:"詟";s:3:"讌";s:3:"䜩";s:3:"讎";s:3:"仇";s:3:"讏";s:3:"讆";s:3:"讐";s:3:"仇";s:3:"讕";s:3:"譋";s:3:"讙";s:3:"懽";s:3:"讚";s:3:"讃";s:3:"讠";s:3:"言";s:3:"计";s:3:"計";s:3:"订";s:3:"訂";s:3:"讣";s:3:"訃";s:3:"认";s:3:"認";s:3:"讥";s:3:"譏";s:3:"讦";s:3:"訐";s:3:"讧";s:3:"訌";s:3:"讨";s:3:"討";s:3:"让";s:3:"讓";s:3:"讪";s:3:"訕";s:3:"讫";s:3:"訖";s:3:"讬";s:3:"托";s:3:"训";s:3:"訓";s:3:"议";s:3:"議";s:3:"讯";s:3:"訊";s:3:"记";s:3:"記";s:3:"讱";s:3:"訒";s:3:"讲";s:3:"講";s:3:"讳";s:3:"諱";s:3:"讴";s:3:"謳";s:3:"讵";s:3:"詎";s:3:"讶";s:3:"訝";s:3:"讷";s:3:"訥";s:3:"许";s:3:"許";s:3:"讹";s:3:"訛";s:3:"论";s:3:"論";s:3:"讻";s:3:"哅";s:3:"讼";s:3:"訟";s:3:"讽";s:3:"諷";s:3:"设";s:3:"設";s:3:"访";s:3:"訪";s:3:"诀";s:3:"訣";s:3:"证";s:3:"証";s:3:"诂";s:3:"詁";s:3:"诃";s:3:"呵";s:3:"评";s:3:"評";s:3:"诅";s:3:"詛";s:3:"识";s:3:"識";s:3:"诇";s:3:"詗";s:3:"诈";s:3:"詐";s:3:"诉";s:3:"愬";s:3:"诊";s:3:"診";s:3:"诋";s:3:"呧";s:3:"诌";s:3:"謅";s:3:"词";s:3:"詞";s:3:"诎";s:3:"詘";s:3:"诏";s:3:"詔";s:3:"诐";s:3:"詖";s:3:"译";s:3:"譯";s:3:"诒";s:3:"詒";s:3:"诓";s:3:"誆";s:3:"诔";s:3:"誄";s:3:"试";s:3:"試";s:3:"诖";s:3:"詿";s:3:"诗";s:3:"詩";s:3:"诘";s:3:"詰";s:3:"诙";s:3:"詼";s:3:"诚";s:3:"誠";s:3:"诛";s:3:"誅";s:3:"诜";s:3:"詵";s:3:"话";s:3:"話";s:3:"诞";s:3:"誕";s:3:"诟";s:3:"詬";s:3:"诠";s:3:"詮";s:3:"诡";s:3:"詭";s:3:"询";s:3:"詢";s:3:"诣";s:3:"詣";s:3:"诤";s:3:"諍";s:3:"该";s:3:"該";s:3:"详";s:3:"詳";s:3:"诧";s:3:"侘";s:3:"诨";s:3:"諢";s:3:"诩";s:3:"詡";s:3:"诪";s:3:"譸";s:3:"诫";s:3:"誡";s:3:"诬";s:3:"誣";s:3:"语";s:3:"語";s:3:"诮";s:3:"誚";s:3:"误";s:3:"悞";s:3:"诰";s:3:"誥";s:3:"诱";s:3:"誘";s:3:"诲";s:3:"誨";s:3:"诳";s:3:"誑";s:3:"说";s:3:"說";s:3:"诵";s:3:"誦";s:3:"诶";s:3:"欸";s:3:"请";s:3:"請";s:3:"诸";s:3:"諸";s:3:"诹";s:3:"諏";s:3:"诺";s:3:"諾";s:3:"读";s:3:"讀";s:3:"诼";s:3:"諑";s:3:"诽";s:3:"誹";s:3:"课";s:3:"課";s:3:"诿";s:3:"諉";s:3:"谀";s:3:"諛";s:3:"谁";s:3:"誰";s:3:"谂";s:3:"諗";s:3:"调";s:3:"調";s:3:"谄";s:3:"諂";s:3:"谅";s:3:"諒";s:3:"谆";s:3:"訰";s:3:"谇";s:3:"誶";s:3:"谈";s:3:"談";s:3:"谉";s:3:"讅";s:3:"谊";s:3:"誼";s:3:"谋";s:3:"謀";s:3:"谌";s:3:"諶";s:3:"谍";s:3:"諜";s:3:"谎";s:3:"謊";s:3:"谏";s:3:"諌";s:3:"谐";s:3:"諧";s:3:"谑";s:3:"謔";s:3:"谒";s:3:"謁";s:3:"谓";s:3:"謂";s:3:"谔";s:3:"諤";s:3:"谕";s:3:"諭";s:3:"谖";s:3:"諼";s:3:"谗";s:3:"讒";s:3:"谘";s:3:"咨";s:3:"谙";s:3:"諳";s:3:"谚";s:3:"諺";s:3:"谛";s:3:"諦";s:3:"谜";s:3:"謎";s:3:"谝";s:3:"諞";s:3:"谞";s:3:"諝";s:3:"谟";s:3:"謨";s:3:"谠";s:3:"讜";s:3:"谡";s:3:"謖";s:3:"谢";s:3:"謝";s:3:"谣";s:3:"謠";s:3:"谤";s:3:"謗";s:3:"谥";s:3:"諡";s:3:"谦";s:3:"謙";s:3:"谧";s:3:"謐";s:3:"谨";s:3:"謹";s:3:"谩";s:3:"謾";s:3:"谪";s:3:"謫";s:3:"谫";s:3:"謭";s:3:"谬";s:3:"謬";s:3:"谭";s:3:"譚";s:3:"谮";s:3:"譖";s:3:"谯";s:3:"譙";s:3:"谰";s:3:"譋";s:3:"谱";s:3:"諩";s:3:"谲";s:3:"噊";s:3:"谳";s:3:"讞";s:3:"谴";s:3:"譴";s:3:"谵";s:3:"譫";s:3:"谶";s:3:"讖";s:3:"谷";s:3:"穀";s:3:"谿";s:3:"溪";s:3:"豆";s:3:"梪";s:3:"豈";s:3:"岂";s:3:"豊";s:3:"丰";s:3:"豋";s:3:"登";s:3:"豎";s:3:"竖";s:3:"豐";s:3:"丰";s:3:"豔";s:3:"艳";s:3:"豗";s:3:"拻";s:3:"象";s:3:"像";s:3:"豣";s:3:"豜";s:3:"豬";s:3:"猪";s:3:"豶";s:3:"豮";s:3:"豺";s:3:"犲";s:3:"貉";s:3:"狢";s:3:"貌";s:3:"皃";s:3:"貍";s:3:"狸";s:3:"貓";s:3:"猫";s:3:"貜";s:3:"玃";s:3:"貮";s:3:"二";s:3:"貳";s:3:"二";s:3:"買";s:3:"买";s:3:"賉";s:3:"卹";s:3:"賊";s:3:"戝";s:3:"賌";s:3:"賅";s:3:"賓";s:3:"宾";s:3:"賔";s:3:"宾";s:3:"賗";s:3:"串";s:3:"賛";s:3:"讃";s:3:"賝";s:3:"琛";s:3:"賣";s:3:"卖";s:3:"質";s:3:"貭";s:3:"賬";s:3:"帐";s:3:"賸";s:3:"剩";s:3:"贊";s:3:"讃";s:3:"贐";s:3:"賮";s:3:"贗";s:3:"贋";s:3:"贛";s:3:"灨";s:3:"贜";s:3:"贓";s:3:"贝";s:3:"貝";s:3:"贞";s:3:"貞";s:3:"负";s:3:"負";s:3:"贠";s:3:"貟";s:3:"贡";s:3:"貢";s:3:"财";s:3:"財";s:3:"责";s:3:"責";s:3:"贤";s:3:"賢";s:3:"败";s:3:"敗";s:3:"账";s:3:"帐";s:3:"货";s:3:"貨";s:3:"质";s:3:"貭";s:3:"贩";s:3:"販";s:3:"贪";s:3:"貪";s:3:"贫";s:3:"貧";s:3:"贬";s:3:"貶";s:3:"购";s:3:"購";s:3:"贮";s:3:"貯";s:3:"贯";s:3:"貫";s:3:"贰";s:3:"二";s:3:"贱";s:3:"賤";s:3:"贲";s:3:"賁";s:3:"贳";s:3:"貰";s:3:"贴";s:3:"貼";s:3:"贵";s:3:"貴";s:3:"贶";s:3:"貺";s:3:"贷";s:3:"貸";s:3:"贸";s:3:"貿";s:3:"费";s:3:"費";s:3:"贺";s:3:"賀";s:3:"贻";s:3:"貽";s:3:"贼";s:3:"戝";s:3:"贽";s:3:"贄";s:3:"贾";s:3:"賈";s:3:"贿";s:3:"賄";s:3:"赀";s:3:"貲";s:3:"赁";s:3:"賃";s:3:"赂";s:3:"賂";s:3:"赃";s:3:"贓";s:3:"资";s:3:"資";s:3:"赅";s:3:"賅";s:3:"赆";s:3:"賮";s:3:"赇";s:3:"賕";s:3:"赈";s:3:"賑";s:3:"赉";s:3:"賚";s:3:"赊";s:3:"賒";s:3:"赋";s:3:"賦";s:3:"赌";s:3:"賭";s:3:"赍";s:3:"賫";s:3:"赎";s:3:"贖";s:3:"赏";s:3:"賞";s:3:"赐";s:3:"賜";s:3:"赑";s:3:"贔";s:3:"赒";s:3:"賙";s:3:"赓";s:3:"賡";s:3:"赔";s:3:"賠";s:3:"赕";s:3:"賧";s:3:"赖";s:3:"賴";s:3:"赗";s:3:"賵";s:3:"赘";s:3:"贅";s:3:"赙";s:3:"賻";s:3:"赚";s:3:"賺";s:3:"赛";s:3:"賽";s:3:"赜";s:3:"賾";s:3:"赝";s:3:"贋";s:3:"赞";s:3:"讃";s:3:"赟";s:3:"贇";s:3:"赠";s:3:"贈";s:3:"赡";s:3:"贍";s:3:"赢";s:3:"贏";s:3:"赣";s:3:"灨";s:3:"赪";s:3:"竀";s:3:"赬";s:3:"竀";s:3:"赱";s:3:"走";s:3:"趂";s:3:"趁";s:3:"趆";s:3:"赿";s:3:"趍";s:3:"趋";s:3:"趕";s:3:"赶";s:3:"趙";s:3:"赵";s:3:"趨";s:3:"趋";s:3:"趲";s:3:"趱";s:3:"跳";s:3:"趒";s:3:"跺";s:3:"跥";s:3:"跼";s:3:"侷";s:3:"踈";s:3:"疏";s:3:"踐";s:3:"践";s:3:"踙";s:3:"踂";s:3:"踡";s:3:"蜷";s:3:"踣";s:3:"殕";s:3:"踩";s:3:"跴";s:3:"踪";s:3:"踨";s:3:"踫";s:3:"掽";s:3:"踴";s:3:"踊";s:3:"蹂";s:3:"禸";s:3:"蹌";s:3:"跄";s:3:"蹔";s:3:"暂";s:3:"蹕";s:3:"跸";s:3:"蹖";s:3:"桩";s:3:"蹚";s:3:"趟";s:3:"蹞";s:3:"跬";s:3:"蹟";s:3:"跡";s:3:"蹠";s:3:"跖";s:3:"蹣";s:3:"蹒";s:3:"蹤";s:3:"踨";s:3:"蹧";s:3:"糟";s:3:"蹯";s:3:"番";s:3:"蹲";s:3:"墫";s:3:"蹺";s:3:"跷";s:3:"蹻";s:3:"跷";s:3:"躁";s:3:"趮";s:3:"躂";s:3:"跶";s:3:"躉";s:3:"趸";s:3:"躊";s:3:"踌";s:3:"躋";s:3:"跻";s:3:"躍";s:3:"跃";s:3:"躑";s:3:"踯";s:3:"躒";s:3:"跞";s:3:"躓";s:3:"踬";s:3:"躕";s:3:"蹰";s:3:"躚";s:3:"跹";s:3:"躛";s:3:"躗";s:3:"躡";s:3:"蹑";s:3:"躥";s:3:"蹿";s:3:"躦";s:3:"躜";s:3:"躪";s:3:"躏";s:3:"躭";s:3:"耽";s:3:"躰";s:3:"体";s:3:"躲";s:3:"躱";s:3:"軀";s:3:"躯";s:3:"軆";s:3:"体";s:3:"軍";s:3:"军";s:3:"軛";s:3:"枙";s:3:"軠";s:3:"軖";s:3:"軲";s:3:"毂";s:3:"軶";s:3:"枙";s:3:"輓";s:3:"挽";s:3:"輕";s:3:"軽";s:3:"輧";s:3:"軿";s:3:"輿";s:3:"舆";s:3:"轀";s:3:"輼";s:3:"轂";s:3:"毂";s:3:"轏";s:3:"栈";s:3:"轝";s:3:"舆";s:3:"轞";s:3:"槛";s:3:"车";s:3:"車";s:3:"轧";s:3:"軋";s:3:"轨";s:3:"軌";s:3:"轩";s:3:"軒";s:3:"轪";s:3:"軑";s:3:"轫";s:3:"軔";s:3:"转";s:3:"轉";s:3:"轭";s:3:"枙";s:3:"轮";s:3:"輪";s:3:"软";s:3:"軟";s:3:"轰";s:3:"轟";s:3:"轱";s:3:"毂";s:3:"轲";s:3:"軻";s:3:"轳";s:3:"轤";s:3:"轴";s:3:"軸";s:3:"轵";s:3:"軹";s:3:"轶";s:3:"軼";s:3:"轷";s:3:"軤";s:3:"轸";s:3:"軫";s:3:"轹";s:3:"轢";s:3:"轺";s:3:"軺";s:3:"轻";s:3:"軽";s:3:"轼";s:3:"軾";s:3:"载";s:3:"載";s:3:"轾";s:3:"輊";s:3:"轿";s:3:"轎";s:3:"辀";s:3:"輈";s:3:"辁";s:3:"輇";s:3:"辂";s:3:"輅";s:3:"较";s:3:"較";s:3:"辄";s:3:"輒";s:3:"辅";s:3:"輔";s:3:"辆";s:3:"輛";s:3:"辇";s:3:"輦";s:3:"辈";s:3:"輩";s:3:"辉";s:3:"輝";s:3:"辊";s:3:"輥";s:3:"辋";s:3:"輞";s:3:"辌";s:3:"輬";s:3:"辍";s:3:"輟";s:3:"辎";s:3:"輜";s:3:"辏";s:3:"輳";s:3:"辐";s:3:"輻";s:3:"辑";s:3:"輯";s:3:"辒";s:3:"輼";s:3:"输";s:3:"輸";s:3:"辔";s:3:"轡";s:3:"辕";s:3:"轅";s:3:"辖";s:3:"轄";s:3:"辗";s:3:"輾";s:3:"辘";s:3:"轆";s:3:"辙";s:3:"轍";s:3:"辚";s:3:"轔";s:3:"辠";s:3:"罪";s:3:"辣";s:3:"辢";s:3:"辦";s:3:"办";s:3:"辧";s:3:"办";s:3:"辨";s:3:"办";s:3:"辭";s:3:"辞";s:3:"辮";s:3:"辫";s:3:"辯";s:3:"辩";s:3:"農";s:3:"农";s:3:"迖";s:3:"达";s:3:"迡";s:3:"迟";s:3:"迤";s:3:"迆";s:3:"迪";s:3:"廸";s:3:"迬";s:3:"往";s:3:"迭";s:3:"叠";s:3:"迳";s:3:"径";s:3:"迴";s:3:"囘";s:3:"迹";s:3:"跡";s:3:"迺";s:3:"乃";s:3:"迻";s:3:"移";s:3:"逃";s:3:"迯";s:3:"逈";s:3:"迥";s:3:"逊";s:3:"愻";s:3:"逌";s:3:"攸";s:3:"逓";s:3:"递";s:3:"逕";s:3:"径";s:3:"這";s:3:"这";s:3:"連";s:3:"连";s:3:"逥";s:3:"囘";s:3:"逩";s:3:"奔";s:3:"逮";s:3:"迨";s:3:"逰";s:3:"游";s:3:"週";s:3:"周";s:3:"進";s:3:"进";s:3:"逸";s:3:"劮";s:3:"逺";s:3:"远";s:3:"逾";s:3:"踰";s:3:"遅";s:3:"迟";s:3:"遉";s:3:"侦";s:3:"遊";s:3:"游";s:3:"運";s:3:"运";s:3:"遍";s:3:"徧";s:3:"過";s:3:"过";s:3:"遑";s:3:"徨";s:3:"達";s:3:"达";s:3:"違";s:3:"违";s:3:"遜";s:3:"愻";s:3:"遞";s:3:"递";s:3:"遟";s:3:"迟";s:3:"遠";s:3:"远";s:3:"遡";s:3:"泝";s:3:"遥";s:3:"遙";s:3:"遧";s:3:"章";s:3:"適";s:3:"适";s:3:"遯";s:3:"遁";s:3:"遲";s:3:"迟";s:3:"遳";s:3:"矬";s:3:"遶";s:3:"繞";s:3:"遷";s:3:"迁";s:3:"選";s:3:"选";s:3:"遺";s:3:"遗";s:3:"遼";s:3:"辽";s:3:"避";s:3:"辟";s:3:"邁";s:3:"迈";s:3:"還";s:3:"还";s:3:"邇";s:3:"迩";s:3:"邉";s:3:"边";s:3:"邊";s:3:"边";s:3:"邍";s:3:"原";s:3:"邏";s:3:"逻";s:3:"邐";s:3:"逦";s:3:"邨";s:3:"村";s:3:"郁";s:3:"欝";s:3:"郉";s:3:"邢";s:3:"郘";s:3:"吕";s:3:"郞";s:3:"郎";s:3:"郟";s:3:"郏";s:3:"郣";s:3:"渤";s:3:"郭";s:3:"墎";s:3:"郲";s:3:"莱";s:3:"郵";s:3:"邮";s:3:"郷";s:3:"乡";s:3:"鄁";s:3:"邶";s:3:"鄃";s:3:"俞";s:3:"鄆";s:3:"郓";s:3:"鄉";s:3:"乡";s:3:"鄒";s:3:"邹";s:3:"鄔";s:3:"邬";s:3:"鄕";s:3:"乡";s:3:"鄖";s:3:"郧";s:3:"鄦";s:3:"許";s:3:"鄧";s:3:"邓";s:3:"鄭";s:3:"郑";s:3:"鄰";s:3:"邻";s:3:"鄲";s:3:"郸";s:3:"鄴";s:3:"邺";s:3:"鄶";s:3:"郐";s:3:"鄹";s:3:"郰";s:3:"鄺";s:3:"邝";s:3:"酆";s:3:"鄷";s:3:"酇";s:3:"酂";s:3:"酈";s:3:"郦";s:3:"酉";s:3:"丣";s:3:"酧";s:3:"詶";s:3:"酬";s:3:"詶";s:3:"醃";s:3:"腌";s:3:"醆";s:3:"琖";s:3:"醉";s:3:"酔";s:3:"醋";s:3:"酢";s:3:"醖";s:3:"酝";s:3:"醜";s:3:"丑";s:3:"醞";s:3:"酝";s:3:"醡";s:3:"搾";s:3:"醫";s:3:"医";s:3:"醬";s:3:"酱";s:3:"醱";s:3:"酦";s:3:"醻";s:3:"詶";s:3:"醼";s:3:"宴";s:3:"釀";s:3:"酿";s:3:"釁";s:3:"衅";s:3:"釃";s:3:"酾";s:3:"釅";s:3:"酽";s:3:"釆";s:3:"办";s:3:"采";s:3:"採";s:3:"釋";s:3:"释";s:3:"里";s:3:"裏";s:3:"重";s:3:"緟";s:3:"野";s:3:"埜";s:3:"釐";s:3:"厘";s:3:"釒";s:3:"金";s:3:"釦";s:3:"扣";s:3:"釬";s:3:"焊";s:3:"釾";s:3:"䥺";s:3:"鈡";s:3:"螤";s:3:"鉅";s:3:"巨";s:3:"鉌";s:3:"和";s:3:"鉗";s:3:"拑";s:3:"鉛";s:3:"鈆";s:3:"鉢";s:3:"缽";s:3:"鉤";s:3:"鈎";s:3:"銜";s:3:"啣";s:3:"銲";s:3:"焊";s:3:"鋤";s:3:"耡";s:3:"鋪";s:3:"舖";s:3:"鋭";s:3:"銳";s:3:"鋺";s:3:"碗";s:3:"錄";s:3:"彔";s:3:"錢";s:3:"銭";s:3:"録";s:3:"彔";s:3:"錶";s:3:"表";s:3:"錼";s:3:"捺";s:3:"錽";s:3:"鋄";s:3:"鍊";s:3:"炼";s:3:"鍛";s:3:"煅";s:3:"鍤";s:3:"臿";s:3:"鍾";s:3:"螤";s:3:"鎌";s:3:"劆";s:3:"鎔";s:3:"熔";s:3:"鎙";s:3:"矟";s:3:"鎚";s:3:"錘";s:3:"鎣";s:3:"蓥";s:3:"鎮";s:3:"鎭";s:3:"鎰";s:3:"賹";s:3:"鏁";s:3:"鎖";s:3:"鏄";s:3:"鎛";s:3:"鏇";s:3:"旋";s:3:"鏎";s:3:"毕";s:3:"鏗";s:3:"鍞";s:3:"鏟";s:3:"刬";s:3:"鏨";s:3:"錾";s:3:"鏬";s:3:"罅";s:3:"鏰";s:3:"錋";s:3:"鏺";s:3:"䥽";s:3:"鏽";s:3:"銹";s:3:"鐀";s:3:"匮";s:3:"鐉";s:3:"鉆";s:3:"鐊";s:3:"鍚";s:3:"鐑";s:3:"鍥";s:3:"鐘";s:3:"螤";s:3:"鐥";s:3:"䦅";s:3:"鐪";s:3:"鏀";s:3:"鐫";s:3:"鎸";s:3:"鐮";s:3:"劆";s:3:"鐯";s:3:"䦃";s:3:"鐱";s:3:"剑";s:3:"鐵";s:3:"銕";s:3:"鐷";s:3:"鍱";s:3:"鑄";s:3:"鋳";s:3:"鑑";s:3:"鉴";s:3:"鑒";s:3:"鉴";s:3:"鑛";s:3:"矿";s:3:"鑤";s:3:"刨";s:3:"鑨";s:3:"砻";s:3:"鑪";s:3:"炉";s:3:"鑮";s:3:"鎛";s:3:"鑯";s:3:"尖";s:3:"鑰";s:3:"鈅";s:3:"鑳";s:3:"鍵";s:3:"鑵";s:3:"罐";s:3:"鑽";s:3:"鉆";s:3:"鑾";s:3:"銮";s:3:"鑿";s:3:"凿";s:3:"钁";s:3:"䦆";s:3:"钂";s:3:"鎲";s:3:"钅";s:3:"金";s:3:"钆";s:3:"釓";s:3:"钇";s:3:"釔";s:3:"针";s:3:"針";s:3:"钉";s:3:"釘";s:3:"钊";s:3:"釗";s:3:"钋";s:3:"釙";s:3:"钌";s:3:"釕";s:3:"钍";s:3:"釷";s:3:"钎";s:3:"釺";s:3:"钏";s:3:"釧";s:3:"钐";s:3:"釤";s:3:"钑";s:3:"鈒";s:3:"钒";s:3:"釩";s:3:"钓";s:3:"釣";s:3:"钔";s:3:"鍆";s:3:"钕";s:3:"釹";s:3:"钖";s:3:"鍚";s:3:"钗";s:3:"釵";s:3:"钘";s:3:"鈃";s:3:"钙";s:3:"鈣";s:3:"钚";s:3:"鈈";s:3:"钛";s:3:"鈦";s:3:"钜";s:3:"巨";s:3:"钝";s:3:"鈍";s:3:"钞";s:3:"鈔";s:3:"钟";s:3:"螤";s:3:"钠";s:3:"鈉";s:3:"钡";s:3:"鋇";s:3:"钢";s:3:"鋼";s:3:"钣";s:3:"鈑";s:3:"钤";s:3:"鈐";s:3:"钥";s:3:"鈅";s:3:"钦";s:3:"欽";s:3:"钧";s:3:"鈞";s:3:"钨";s:3:"鎢";s:3:"钩";s:3:"鈎";s:3:"钪";s:3:"鈧";s:3:"钫";s:3:"鈁";s:3:"钬";s:3:"鈥";s:3:"钭";s:3:"鈄";s:3:"钮";s:3:"鈕";s:3:"钯";s:3:"鈀";s:3:"钰";s:3:"鈺";s:3:"钱";s:3:"銭";s:3:"钲";s:3:"鉦";s:3:"钳";s:3:"拑";s:3:"钴";s:3:"鈷";s:3:"钵";s:3:"缽";s:3:"钶";s:3:"鈳";s:3:"钷";s:3:"鉕";s:3:"钸";s:3:"鈽";s:3:"钹";s:3:"鈸";s:3:"钺";s:3:"鉞";s:3:"钻";s:3:"鉆";s:3:"钼";s:3:"鉬";s:3:"钽";s:3:"鉭";s:3:"钾";s:3:"鉀";s:3:"钿";s:3:"鈿";s:3:"铀";s:3:"鈾";s:3:"铁";s:3:"銕";s:3:"铂";s:3:"鉑";s:3:"铃";s:3:"鈴";s:3:"铄";s:3:"鑠";s:3:"铅";s:3:"鈆";s:3:"铆";s:3:"鉚";s:3:"铇";s:3:"鉋";s:3:"铈";s:3:"鈰";s:3:"铉";s:3:"鉉";s:3:"铊";s:3:"鉈";s:3:"铋";s:3:"鉍";s:3:"铌";s:3:"鈮";s:3:"铍";s:3:"鈹";s:3:"铎";s:3:"鐸";s:3:"铏";s:3:"鉶";s:3:"铐";s:3:"銬";s:3:"铑";s:3:"銠";s:3:"铒";s:3:"鉺";s:3:"铓";s:3:"鋩";s:3:"铔";s:3:"錏";s:3:"铕";s:3:"銪";s:3:"铖";s:3:"鋮";s:3:"铗";s:3:"鋏";s:3:"铘";s:3:"鋣";s:3:"铙";s:3:"鐃";s:3:"铚";s:3:"銍";s:3:"铛";s:3:"鐺";s:3:"铜";s:3:"銅";s:3:"铝";s:3:"鋁";s:3:"铞";s:3:"銱";s:3:"铟";s:3:"銦";s:3:"铠";s:3:"鎧";s:3:"铡";s:3:"鍘";s:3:"铢";s:3:"銖";s:3:"铣";s:3:"銑";s:3:"铤";s:3:"鋌";s:3:"铥";s:3:"銩";s:3:"铦";s:3:"銛";s:3:"铧";s:3:"鏵";s:3:"铨";s:3:"銓";s:3:"铩";s:3:"鎩";s:3:"铪";s:3:"鉿";s:3:"铫";s:3:"銚";s:3:"铬";s:3:"鉻";s:3:"铭";s:3:"銘";s:3:"铮";s:3:"錚";s:3:"铯";s:3:"銫";s:3:"铰";s:3:"鉸";s:3:"铱";s:3:"銥";s:3:"铲";s:3:"刬";s:3:"铳";s:3:"銃";s:3:"铴";s:3:"鐋";s:3:"铵";s:3:"銨";s:3:"银";s:3:"銀";s:3:"铷";s:3:"銣";s:3:"铸";s:3:"鋳";s:3:"铹";s:3:"鐒";s:3:"铺";s:3:"舖";s:3:"铻";s:3:"鋙";s:3:"铼";s:3:"錸";s:3:"铽";s:3:"鋱";s:3:"链";s:3:"鏈";s:3:"铿";s:3:"鍞";s:3:"销";s:3:"銷";s:3:"锁";s:3:"鎖";s:3:"锂";s:3:"鋰";s:3:"锃";s:3:"鋥";s:3:"锄";s:3:"耡";s:3:"锅";s:3:"鍋";s:3:"锆";s:3:"鋯";s:3:"锇";s:3:"鋨";s:3:"锈";s:3:"銹";s:3:"锉";s:3:"銼";s:3:"锊";s:3:"鋝";s:3:"锋";s:3:"鋒";s:3:"锌";s:3:"鋅";s:3:"锍";s:3:"鋶";s:3:"锎";s:3:"鐦";s:3:"锏";s:3:"鐧";s:3:"锐";s:3:"銳";s:3:"锑";s:3:"銻";s:3:"锒";s:3:"鋃";s:3:"锓";s:3:"鋟";s:3:"锔";s:3:"鋦";s:3:"锕";s:3:"錒";s:3:"锖";s:3:"錆";s:3:"锗";s:3:"鍺";s:3:"锘";s:3:"鍩";s:3:"错";s:3:"錯";s:3:"锚";s:3:"錨";s:3:"锛";s:3:"錛";s:3:"锜";s:3:"錡";s:3:"锝";s:3:"鍀";s:3:"锞";s:3:"錁";s:3:"锟";s:3:"錕";s:3:"锠";s:3:"錩";s:3:"锡";s:3:"錫";s:3:"锢";s:3:"錮";s:3:"锣";s:3:"鑼";s:3:"锤";s:3:"錘";s:3:"锥";s:3:"錐";s:3:"锦";s:3:"錦";s:3:"锧";s:3:"鑕";s:3:"锨";s:3:"鍁";s:3:"锩";s:3:"錈";s:3:"锪";s:3:"鍃";s:3:"锫";s:3:"錇";s:3:"锬";s:3:"錟";s:3:"锭";s:3:"錠";s:3:"键";s:3:"鍵";s:3:"锯";s:3:"鋸";s:3:"锰";s:3:"錳";s:3:"锱";s:3:"錙";s:3:"锲";s:3:"鍥";s:3:"锳";s:3:"鍈";s:3:"锴";s:3:"鍇";s:3:"锵";s:3:"鏘";s:3:"锶";s:3:"鍶";s:3:"锷";s:3:"鍔";s:3:"锸";s:3:"臿";s:3:"锹";s:3:"鍬";s:3:"锺";s:3:"螤";s:3:"锻";s:3:"煅";s:3:"锼";s:3:"鎪";s:3:"锽";s:3:"鍠";s:3:"锾";s:3:"鍰";s:3:"锿";s:3:"鎄";s:3:"镀";s:3:"鍍";s:3:"镁";s:3:"鎂";s:3:"镂";s:3:"鏤";s:3:"镃";s:3:"鎡";s:3:"镄";s:3:"鐨";s:3:"镅";s:3:"鎇";s:3:"镆";s:3:"鏌";s:3:"镇";s:3:"鎭";s:3:"镈";s:3:"鎛";s:3:"镉";s:3:"鎘";s:3:"镊";s:3:"鑷";s:3:"镋";s:3:"鎲";s:3:"镌";s:3:"鎸";s:3:"镍";s:3:"鎳";s:3:"镎";s:3:"鎿";s:3:"镏";s:3:"鎦";s:3:"镐";s:3:"鎬";s:3:"镑";s:3:"鎊";s:3:"镒";s:3:"賹";s:3:"镓";s:3:"鎵";s:3:"镔";s:3:"鑌";s:3:"镕";s:3:"熔";s:3:"镖";s:3:"鏢";s:3:"镗";s:3:"鏜";s:3:"镘";s:3:"鏝";s:3:"镙";s:3:"鏍";s:3:"镚";s:3:"錋";s:3:"镛";s:3:"鏞";s:3:"镜";s:3:"鏡";s:3:"镝";s:3:"鏑";s:3:"镞";s:3:"鏃";s:3:"镟";s:3:"旋";s:3:"镠";s:3:"鏐";s:3:"镡";s:3:"鐔";s:3:"镢";s:3:"鐝";s:3:"镣";s:3:"鐐";s:3:"镤";s:3:"鏷";s:3:"镥";s:3:"鑥";s:3:"镦";s:3:"鐓";s:3:"镧";s:3:"鑭";s:3:"镨";s:3:"鐠";s:3:"镩";s:3:"鑹";s:3:"镪";s:3:"鏹";s:3:"镫";s:3:"鐙";s:3:"镬";s:3:"鑊";s:3:"镭";s:3:"鐳";s:3:"镮";s:3:"鐶";s:3:"镯";s:3:"鐲";s:3:"镰";s:3:"劆";s:3:"镱";s:3:"鐿";s:3:"镲";s:3:"鑔";s:3:"镳";s:3:"鑣";s:3:"镴";s:3:"鑞";s:3:"镵";s:3:"鑱";s:3:"镶";s:3:"鑲";s:3:"长";s:3:"長";s:3:"閉";s:3:"閇";s:3:"開";s:3:"开";s:3:"閞";s:3:"关";s:3:"関";s:3:"关";s:3:"閤";s:3:"合";s:3:"閧";s:3:"哄";s:3:"閲";s:3:"閱";s:3:"閷";s:3:"杀";s:3:"閻";s:3:"閆";s:3:"闆";s:3:"板";s:3:"闇";s:3:"晻";s:3:"闊";s:3:"濶";s:3:"闗";s:3:"关";s:3:"闘";s:3:"斗";s:3:"闚";s:3:"窥";s:3:"關";s:3:"关";s:3:"闡";s:3:"灛";s:3:"闢";s:3:"辟";s:3:"门";s:3:"門";s:3:"闩";s:3:"閂";s:3:"闪";s:3:"閃";s:3:"闫";s:3:"閆";s:3:"闬";s:3:"閈";s:3:"闭";s:3:"閇";s:3:"问";s:3:"問";s:3:"闯";s:3:"闖";s:3:"闰";s:3:"閏";s:3:"闱";s:3:"闈";s:3:"闲";s:3:"閑";s:3:"闳";s:3:"閎";s:3:"间";s:3:"間";s:3:"闵";s:3:"閔";s:3:"闶";s:3:"閌";s:3:"闷";s:3:"悶";s:3:"闸";s:3:"閘";s:3:"闹";s:3:"閙";s:3:"闺";s:3:"閨";s:3:"闻";s:3:"聞";s:3:"闼";s:3:"闥";s:3:"闽";s:3:"閩";s:3:"闾";s:3:"閭";s:3:"闿";s:3:"闓";s:3:"阀";s:3:"閥";s:3:"阁";s:3:"閣";s:3:"阂";s:3:"閡";s:3:"阃";s:3:"閫";s:3:"阅";s:3:"閱";s:3:"阆";s:3:"閬";s:3:"阇";s:3:"闍";s:3:"阈";s:3:"閾";s:3:"阉";s:3:"閹";s:3:"阊";s:3:"閶";s:3:"阌";s:3:"閿";s:3:"阍";s:3:"閽";s:3:"阎";s:3:"閆";s:3:"阏";s:3:"閼";s:3:"阐";s:3:"灛";s:3:"阑";s:3:"闌";s:3:"阒";s:3:"闃";s:3:"阓";s:3:"闠";s:3:"阔";s:3:"濶";s:3:"阕";s:3:"闋";s:3:"阖";s:3:"闔";s:3:"阗";s:3:"闐";s:3:"阘";s:3:"闒";s:3:"阙";s:3:"闕";s:3:"阚";s:3:"闞";s:3:"阛";s:3:"闤";s:3:"阜";s:3:"峊";s:3:"阝";s:3:"峊";s:3:"阣";s:3:"屹";s:3:"阨";s:3:"厄";s:3:"阪";s:3:"坂";s:3:"阬";s:3:"坑";s:3:"阯";s:3:"址";s:3:"阱";s:3:"穽";s:3:"阳";s:3:"昜";s:3:"阶";s:3:"堦";s:3:"附";s:3:"坿";s:3:"陆";s:3:"坴";s:3:"陈";s:3:"敶";s:3:"陔";s:3:"垓";s:3:"陘";s:3:"陉";s:3:"陜";s:3:"陕";s:3:"陝";s:3:"陕";s:3:"陞";s:3:"升";s:3:"陣";s:3:"阵";s:3:"险";s:3:"硷";s:3:"陰";s:3:"阴";s:3:"陳";s:3:"敶";s:3:"陵";s:3:"琌";s:3:"陶";s:3:"匋";s:3:"陸";s:3:"坴";s:3:"陽";s:3:"昜";s:3:"隄";s:3:"堤";s:3:"隉";s:3:"陧";s:3:"隊";s:3:"队";s:3:"階";s:3:"堦";s:3:"隕";s:3:"陨";s:3:"隙";s:3:"郄";s:3:"際";s:3:"际";s:3:"障";s:3:"墇";s:3:"隞";s:3:"敖";s:3:"隠";s:3:"隐";s:3:"隣";s:3:"邻";s:3:"隨";s:3:"随";s:3:"險";s:3:"硷";s:3:"隱";s:3:"隐";s:3:"隳";s:3:"隓";s:3:"隴";s:3:"陇";s:3:"隷";s:3:"隶";s:3:"隸";s:3:"隶";s:3:"隻";s:3:"只";s:3:"隿";s:3:"弋";s:3:"雇";s:3:"僱";s:3:"雋";s:3:"隽";s:3:"雑";s:3:"杂";s:3:"雕";s:3:"彫";s:3:"雖";s:3:"虽";s:3:"雙";s:3:"双";s:3:"雛";s:3:"雏";s:3:"雜";s:3:"杂";s:3:"雝";s:3:"雍";s:3:"雠";s:3:"仇";s:3:"離";s:3:"离";s:3:"難";s:3:"难";s:3:"雥";s:3:"杂";s:3:"雰";s:3:"氛";s:3:"雲";s:3:"云";s:3:"電";s:3:"电";s:3:"震";s:3:"誫";s:3:"霊";s:3:"灵";s:3:"霍";s:3:"癨";s:3:"霑";s:3:"沾";s:3:"霒";s:3:"阴";s:3:"霓";s:3:"蛪";s:3:"霞";s:3:"赮";s:3:"霠";s:3:"阴";s:3:"霧";s:3:"雾";s:3:"霩";s:3:"廓";s:3:"霸";s:3:"覇";s:3:"霺";s:3:"溦";s:3:"霽";s:3:"霁";s:3:"靂";s:3:"雳";s:3:"靄";s:3:"霭";s:3:"靆";s:3:"叇";s:3:"靈";s:3:"灵";s:3:"靉";s:3:"叆";s:3:"青";s:3:"靑";s:3:"靚";s:3:"靓";s:3:"靜";s:3:"静";s:3:"靝";s:3:"靔";s:3:"靨";s:3:"靥";s:3:"靭";s:3:"肕";s:3:"靼";s:3:"靻";s:3:"鞂";s:3:"秸";s:3:"鞍";s:3:"鞌";s:3:"鞏";s:3:"巩";s:3:"鞒";s:3:"桥";s:3:"鞠";s:3:"陱";s:3:"鞤";s:3:"帮";s:3:"鞦";s:3:"秋";s:3:"鞽";s:3:"桥";s:3:"韁";s:3:"繮";s:3:"韃";s:3:"鞑";s:3:"韆";s:3:"仟";s:3:"韈";s:3:"袜";s:3:"韉";s:3:"鞯";s:3:"韌";s:3:"肕";s:3:"韤";s:3:"袜";s:3:"韥";s:3:"韣";s:3:"韦";s:3:"韋";s:3:"韧";s:3:"肕";s:3:"韨";s:3:"韍";s:3:"韩";s:3:"韓";s:3:"韪";s:3:"韙";s:3:"韫";s:3:"韞";s:3:"韬";s:3:"韜";s:3:"韮";s:3:"韭";s:3:"韲";s:3:"虀";s:3:"韻";s:3:"韵";s:3:"響";s:3:"响";s:3:"頒";s:3:"朌";s:3:"頤";s:3:"頉";s:3:"頫";s:3:"俛";s:3:"頭";s:3:"头";s:3:"頴";s:3:"穎";s:3:"頸";s:3:"頚";s:3:"頹";s:3:"穨";s:3:"頼";s:3:"賴";s:3:"頽";s:3:"穨";s:3:"顊";s:3:"頉";s:3:"顐";s:3:"諢";s:3:"顔";s:3:"顏";s:3:"顕";s:3:"显";s:3:"願";s:3:"愿";s:3:"顚";s:3:"傎";s:3:"顛";s:3:"傎";s:3:"類";s:3:"类";s:3:"顣";s:3:"蹙";s:3:"顧";s:3:"頋";s:3:"顯";s:3:"显";s:3:"页";s:3:"頁";s:3:"顶";s:3:"頂";s:3:"顷";s:3:"頃";s:3:"顸";s:3:"頇";s:3:"项";s:3:"項";s:3:"顺";s:3:"順";s:3:"须";s:3:"須";s:3:"顼";s:3:"頊";s:3:"顽";s:3:"頑";s:3:"顾";s:3:"頋";s:3:"顿";s:3:"頓";s:3:"颀";s:3:"頎";s:3:"颁";s:3:"朌";s:3:"颂";s:3:"頌";s:3:"颃";s:3:"頏";s:3:"预";s:3:"預";s:3:"颅";s:3:"顱";s:3:"领";s:3:"領";s:3:"颇";s:3:"頗";s:3:"颈";s:3:"頚";s:3:"颉";s:3:"頡";s:3:"颊";s:3:"頰";s:3:"颋";s:3:"頲";s:3:"颌";s:3:"頜";s:3:"颍";s:3:"潁";s:3:"颎";s:3:"熲";s:3:"颏";s:3:"頦";s:3:"颐";s:3:"頉";s:3:"频";s:3:"頻";s:3:"颒";s:3:"頮";s:3:"颓";s:3:"穨";s:3:"颔";s:3:"頷";s:3:"颕";s:3:"穎";s:3:"颖";s:3:"穎";s:3:"颗";s:3:"顆";s:3:"题";s:3:"題";s:3:"颙";s:3:"顒";s:3:"颚";s:3:"顎";s:3:"颛";s:3:"顓";s:3:"颜";s:3:"顏";s:3:"额";s:3:"額";s:3:"颞";s:3:"顳";s:3:"颟";s:3:"顢";s:3:"颠";s:3:"傎";s:3:"颡";s:3:"顙";s:3:"颢";s:3:"顥";s:3:"颣";s:3:"纇";s:3:"颤";s:3:"顫";s:3:"颥";s:3:"顬";s:3:"颦";s:3:"顰";s:3:"颧";s:3:"顴";s:3:"風";s:3:"凨";s:3:"颱";s:3:"台";s:3:"颳";s:3:"刮";s:3:"颺";s:3:"扬";s:3:"飃";s:3:"旚";s:3:"飄";s:3:"旚";s:3:"飈";s:3:"飆";s:3:"飌";s:3:"凨";s:3:"风";s:3:"凨";s:3:"飏";s:3:"扬";s:3:"飐";s:3:"颭";s:3:"飑";s:3:"颮";s:3:"飒";s:3:"颯";s:3:"飓";s:3:"颶";s:3:"飔";s:3:"颸";s:3:"飕";s:3:"颼";s:3:"飖";s:3:"颻";s:3:"飗";s:3:"飀";s:3:"飘";s:3:"旚";s:3:"飙";s:3:"飆";s:3:"飚";s:3:"飆";s:3:"飜";s:3:"繙";s:3:"飞";s:3:"飛";s:3:"飠";s:3:"食";s:3:"飰";s:3:"飯";s:3:"飽";s:3:"飹";s:3:"餁";s:3:"飪";s:3:"餈";s:3:"糍";s:3:"養";s:3:"养";s:3:"餐";s:3:"喰";s:3:"餘";s:3:"余";s:3:"餚";s:3:"肴";s:3:"餝";s:3:"飾";s:3:"餠";s:3:"餅";s:3:"館";s:3:"舘";s:3:"餬";s:3:"糊";s:3:"餱";s:3:"糇";s:3:"餵";s:3:"喂";s:3:"餹";s:3:"糖";s:3:"饇";s:3:"飫";s:3:"饊";s:3:"糤";s:3:"饋";s:3:"餽";s:3:"饑";s:3:"飢";s:3:"饗";s:3:"飨";s:3:"饜";s:3:"餍";s:3:"饟";s:3:"餉";s:3:"饣";s:3:"食";s:3:"饤";s:3:"飣";s:3:"饥";s:3:"飢";s:3:"饦";s:3:"飥";s:3:"饧";s:3:"餳";s:3:"饨";s:3:"飩";s:3:"饩";s:3:"餼";s:3:"饪";s:3:"飪";s:3:"饫";s:3:"飫";s:3:"饬";s:3:"飭";s:3:"饭";s:3:"飯";s:3:"饮";s:3:"飲";s:3:"饯";s:3:"餞";s:3:"饰";s:3:"飾";s:3:"饱";s:3:"飹";s:3:"饲";s:3:"飼";s:3:"饳";s:3:"飿";s:3:"饴";s:3:"飴";s:3:"饵";s:3:"餌";s:3:"饶";s:3:"饒";s:3:"饷";s:3:"餉";s:3:"饸";s:3:"餄";s:3:"饹";s:3:"餎";s:3:"饺";s:3:"餃";s:3:"饻";s:3:"餏";s:3:"饼";s:3:"餅";s:3:"饽";s:3:"餑";s:3:"饾";s:3:"餖";s:3:"饿";s:3:"餓";s:3:"馀";s:3:"余";s:3:"馁";s:3:"餒";s:3:"馂";s:3:"餕";s:3:"馃";s:3:"餜";s:3:"馄";s:3:"餛";s:3:"馅";s:3:"餡";s:3:"馆";s:3:"舘";s:3:"馇";s:3:"餷";s:3:"馈";s:3:"餽";s:3:"馉";s:3:"餶";s:3:"馊";s:3:"餿";s:3:"馋";s:3:"饞";s:3:"馌";s:3:"饁";s:3:"馍";s:3:"饃";s:3:"馎";s:3:"餺";s:3:"馏";s:3:"餾";s:3:"馐";s:3:"饈";s:3:"馑";s:3:"饉";s:3:"馒";s:3:"饅";s:3:"馓";s:3:"糤";s:3:"馔";s:3:"饌";s:3:"馕";s:3:"饢";s:3:"馘";s:3:"聝";s:3:"馫";s:3:"馨";s:3:"馮";s:3:"冯";s:3:"馽";s:3:"絷";s:3:"駄";s:3:"馱";s:3:"駆";s:3:"敺";s:3:"駈";s:3:"敺";s:3:"駞";s:3:"駝";s:3:"駡";s:3:"傌";s:3:"駮";s:3:"駁";s:3:"駴";s:3:"駭";s:3:"騃";s:3:"呆";s:3:"騈";s:3:"駢";s:3:"騣";s:3:"騌";s:3:"騪";s:3:"捜";s:3:"騰";s:3:"腾";s:3:"騲";s:3:"艸";s:3:"騹";s:3:"騏";s:3:"驀";s:3:"蓦";s:3:"驅";s:3:"敺";s:3:"驆";s:3:"跸";s:3:"驇";s:3:"騺";s:3:"驕";s:3:"憍";s:3:"驚";s:3:"惊";s:3:"驩";s:3:"懽";s:3:"马";s:3:"馬";s:3:"驭";s:3:"馭";s:3:"驮";s:3:"馱";s:3:"驯";s:3:"馴";s:3:"驰";s:3:"馳";s:3:"驱";s:3:"敺";s:3:"驲";s:3:"馹";s:3:"驳";s:3:"駁";s:3:"驴";s:3:"驢";s:3:"驵";s:3:"駔";s:3:"驶";s:3:"駛";s:3:"驷";s:3:"駟";s:3:"驸";s:3:"駙";s:3:"驹";s:3:"駒";s:3:"驺";s:3:"騶";s:3:"驻";s:3:"駐";s:3:"驼";s:3:"駝";s:3:"驽";s:3:"駑";s:3:"驾";s:3:"駕";s:3:"驿";s:3:"驛";s:3:"骀";s:3:"駘";s:3:"骁";s:3:"驍";s:3:"骂";s:3:"傌";s:3:"骃";s:3:"駰";s:3:"骄";s:3:"憍";s:3:"骅";s:3:"驊";s:3:"骆";s:3:"駱";s:3:"骇";s:3:"駭";s:3:"骈";s:3:"駢";s:3:"骉";s:3:"驫";s:3:"骊";s:3:"驪";s:3:"骋";s:3:"騁";s:3:"验";s:3:"驗";s:3:"骍";s:3:"騂";s:3:"骎";s:3:"駸";s:3:"骏";s:3:"駿";s:3:"骐";s:3:"騏";s:3:"骑";s:3:"騎";s:3:"骒";s:3:"騍";s:3:"骓";s:3:"騅";s:3:"骔";s:3:"騌";s:3:"骕";s:3:"驌";s:3:"骖";s:3:"驂";s:3:"骗";s:3:"騙";s:3:"骘";s:3:"騭";s:3:"骙";s:3:"騤";s:3:"骚";s:3:"騷";s:3:"骛";s:3:"騖";s:3:"骜";s:3:"驁";s:3:"骝";s:3:"騮";s:3:"骞";s:3:"騫";s:3:"骟";s:3:"騸";s:3:"骠";s:3:"驃";s:3:"骡";s:3:"騾";s:3:"骢";s:3:"驄";s:3:"骣";s:3:"驏";s:3:"骤";s:3:"驟";s:3:"骥";s:3:"驥";s:3:"骦";s:3:"驦";s:3:"骧";s:3:"驤";s:3:"骫";s:3:"骪";s:3:"骯";s:3:"肮";s:3:"骵";s:3:"体";s:3:"骹";s:3:"踍";s:3:"骻";s:3:"胯";s:3:"髄";s:3:"膸";s:3:"髊";s:3:"骴";s:3:"髌";s:3:"膑";s:3:"髏";s:3:"髅";s:3:"髒";s:3:"脏";s:3:"髓";s:3:"膸";s:3:"體";s:3:"体";s:3:"髕";s:3:"膑";s:3:"髖";s:3:"髋";s:3:"髙";s:3:"高";s:3:"髣";s:3:"仿";s:3:"髦";s:3:"氂";s:3:"髪";s:3:"发";s:3:"髮";s:3:"发";s:3:"髯";s:3:"髥";s:3:"髴";s:3:"仏";s:3:"鬁";s:3:"痢";s:3:"鬃";s:3:"騌";s:3:"鬆";s:3:"松";s:3:"鬍";s:3:"胡";s:3:"鬎";s:3:"瘌";s:3:"鬚";s:3:"須";s:3:"鬠";s:3:"髺";s:3:"鬢";s:3:"鬓";s:3:"鬥";s:3:"斗";s:3:"鬦";s:3:"斗";s:3:"鬧";s:3:"閙";s:3:"鬨";s:3:"哄";s:3:"鬩";s:3:"阋";s:3:"鬪";s:3:"斗";s:3:"鬫";s:3:"闞";s:3:"鬬";s:3:"斗";s:3:"鬭";s:3:"斗";s:3:"鬮";s:3:"阄";s:3:"鬰";s:3:"欝";s:3:"鬱";s:3:"欝";s:3:"鬹";s:3:"鬶";s:3:"鬻";s:3:"粥";s:3:"魁";s:3:"櫆";s:3:"魊";s:3:"蜮";s:3:"魎";s:3:"魉";s:3:"魘";s:3:"魇";s:3:"魡";s:3:"釣";s:3:"魽";s:3:"蚶";s:3:"鮣";s:3:"䲟";s:3:"鮭";s:3:"觟";s:3:"鮮";s:3:"尟";s:3:"鯁";s:3:"骾";s:3:"鯊";s:3:"魦";s:3:"鯋";s:3:"魦";s:3:"鯗";s:3:"鮝";s:3:"鰆";s:3:"䲠";s:3:"鰌";s:3:"䲡";s:3:"鰍";s:3:"䲡";s:3:"鰧";s:3:"䲢";s:3:"鰿";s:3:"鯽";s:3:"鱅";s:3:"鰫";s:3:"鱋";s:3:"魼";s:3:"鱔";s:3:"鱓";s:3:"鱞";s:3:"鰥";s:3:"鱷";s:3:"鰐";s:3:"鱼";s:3:"魚";s:3:"鱽";s:3:"魛";s:3:"鱿";s:3:"魷";s:3:"鲀";s:3:"魨";s:3:"鲁";s:3:"魯";s:3:"鲂";s:3:"魴";s:3:"鲄";s:3:"魺";s:3:"鲅";s:3:"鮁";s:3:"鲆";s:3:"鮃";s:3:"鲇";s:3:"鮎";s:3:"鲈";s:3:"鱸";s:3:"鲉";s:3:"鮋";s:3:"鲊";s:3:"鮓";s:3:"鲋";s:3:"鮒";s:3:"鲌";s:3:"鮊";s:3:"鲍";s:3:"鮑";s:3:"鲎";s:3:"鱟";s:3:"鲏";s:3:"鮍";s:3:"鲐";s:3:"鮐";s:3:"鲑";s:3:"觟";s:3:"鲒";s:3:"鮚";s:3:"鲓";s:3:"鮳";s:3:"鲔";s:3:"鮪";s:3:"鲕";s:3:"鮞";s:3:"鲖";s:3:"鮦";s:3:"鲗";s:3:"鰂";s:3:"鲘";s:3:"鮜";s:3:"鲙";s:3:"鱠";s:3:"鲚";s:3:"鱭";s:3:"鲛";s:3:"鮫";s:3:"鲜";s:3:"尟";s:3:"鲝";s:3:"鮺";s:3:"鲞";s:3:"鮝";s:3:"鲟";s:3:"鱘";s:3:"鲠";s:3:"骾";s:3:"鲡";s:3:"鱺";s:3:"鲢";s:3:"鰱";s:3:"鲣";s:3:"鰹";s:3:"鲤";s:3:"鯉";s:3:"鲥";s:3:"鰣";s:3:"鲦";s:3:"鰷";s:3:"鲧";s:3:"鯀";s:3:"鲨";s:3:"魦";s:3:"鲩";s:3:"鯇";s:3:"鲪";s:3:"鮶";s:3:"鲫";s:3:"鯽";s:3:"鲬";s:3:"鯒";s:3:"鲭";s:3:"鯖";s:3:"鲮";s:3:"鯪";s:3:"鲯";s:3:"鯕";s:3:"鲰";s:3:"鯫";s:3:"鲱";s:3:"鯡";s:3:"鲲";s:3:"鯤";s:3:"鲳";s:3:"鯧";s:3:"鲴";s:3:"鯝";s:3:"鲵";s:3:"鯢";s:3:"鲶";s:3:"鯰";s:3:"鲷";s:3:"鯛";s:3:"鲸";s:3:"鯨";s:3:"鲹";s:3:"鰺";s:3:"鲺";s:3:"鯴";s:3:"鲻";s:3:"鯔";s:3:"鲼";s:3:"鱝";s:3:"鲽";s:3:"鰈";s:3:"鲾";s:3:"鰏";s:3:"鲿";s:3:"鱨";s:3:"鳀";s:3:"鯷";s:3:"鳁";s:3:"鰛";s:3:"鳃";s:3:"鰓";s:3:"鳄";s:3:"鰐";s:3:"鳅";s:3:"䲡";s:3:"鳆";s:3:"鰒";s:3:"鳇";s:3:"鰉";s:3:"鳊";s:3:"鯿";s:3:"鳋";s:3:"鰠";s:3:"鳌";s:3:"鰲";s:3:"鳍";s:3:"鰭";s:3:"鳎";s:3:"鰨";s:3:"鳏";s:3:"鰥";s:3:"鳐";s:3:"鰩";s:3:"鳑";s:3:"鰟";s:3:"鳒";s:3:"鰜";s:3:"鳓";s:3:"鰳";s:3:"鳔";s:3:"鰾";s:3:"鳕";s:3:"鱈";s:3:"鳖";s:3:"鱉";s:3:"鳗";s:3:"鰻";s:3:"鳘";s:3:"鰵";s:3:"鳙";s:3:"鰫";s:3:"鳛";s:3:"鰼";s:3:"鳜";s:3:"鱖";s:3:"鳝";s:3:"鱓";s:3:"鳞";s:3:"鱗";s:3:"鳟";s:3:"鱒";s:3:"鳠";s:3:"鱯";s:3:"鳢";s:3:"鱧";s:3:"鳣";s:3:"鱣";s:3:"鳧";s:3:"凫";s:3:"鳫";s:3:"雁";s:3:"鳬";s:3:"凫";s:3:"鳮";s:3:"雞";s:3:"鳯";s:3:"凤";s:3:"鳳";s:3:"凤";s:3:"鳾";s:3:"䴓";s:3:"鴃";s:3:"鴂";s:3:"鴇";s:3:"鳵";s:3:"鴈";s:3:"雁";s:3:"鴙";s:3:"雉";s:3:"鴷";s:3:"䴕";s:3:"鵁";s:3:"䴔";s:3:"鵛";s:3:"頚";s:3:"鵞";s:3:"鵝";s:3:"鵰";s:3:"彫";s:3:"鵶";s:3:"鴉";s:3:"鶄";s:3:"䴖";s:3:"鶤";s:3:"鵾";s:3:"鶪";s:3:"䴗";s:3:"鶯";s:3:"莺";s:3:"鶵";s:3:"雏";s:3:"鶾";s:3:"翰";s:3:"鷄";s:3:"雞";s:3:"鷈";s:3:"䴘";s:3:"鷉";s:3:"䴘";s:3:"鷍";s:3:"枭";s:3:"鷘";s:3:"鶒";s:3:"鷰";s:3:"燕";s:3:"鷴";s:3:"鷳";s:3:"鷿";s:3:"䴙";s:3:"鸊";s:3:"䴙";s:3:"鸝";s:3:"鵑";s:3:"鸞";s:3:"鵉";s:3:"鸟";s:3:"鳥";s:3:"鸠";s:3:"鳩";s:3:"鸡";s:3:"雞";s:3:"鸢";s:3:"鳶";s:3:"鸣";s:3:"鳴";s:3:"鸤";s:3:"鳲";s:3:"鸥";s:3:"鷗";s:3:"鸦";s:3:"鴉";s:3:"鸧";s:3:"鶬";s:3:"鸨";s:3:"鳵";s:3:"鸩";s:3:"鴆";s:3:"鸪";s:3:"鴣";s:3:"鸫";s:3:"鶇";s:3:"鸬";s:3:"鸕";s:3:"鸭";s:3:"鴨";s:3:"鸮";s:3:"鴞";s:3:"鸯";s:3:"鴦";s:3:"鸰";s:3:"鴒";s:3:"鸱";s:3:"鴟";s:3:"鸲";s:3:"鴝";s:3:"鸳";s:3:"鴛";s:3:"鸴";s:3:"鷽";s:3:"鸵";s:3:"鴕";s:3:"鸶";s:3:"鷥";s:3:"鸷";s:3:"鷙";s:3:"鸸";s:3:"鴯";s:3:"鸹";s:3:"鴰";s:3:"鸺";s:3:"鵂";s:3:"鸻";s:3:"鴴";s:3:"鸼";s:3:"鵃";s:3:"鸽";s:3:"鴿";s:3:"鸾";s:3:"鵉";s:3:"鸿";s:3:"鴻";s:3:"鹀";s:3:"鵐";s:3:"鹁";s:3:"鵓";s:3:"鹂";s:3:"鵑";s:3:"鹃";s:3:"鵑";s:3:"鹄";s:3:"鵠";s:3:"鹅";s:3:"鵝";s:3:"鹆";s:3:"鵒";s:3:"鹇";s:3:"鷳";s:3:"鹈";s:3:"鵜";s:3:"鹉";s:3:"鵡";s:3:"鹊";s:3:"鵲";s:3:"鹋";s:3:"鶓";s:3:"鹌";s:3:"鵪";s:3:"鹍";s:3:"鵾";s:3:"鹎";s:3:"鵯";s:3:"鹏";s:3:"鵬";s:3:"鹐";s:3:"鵮";s:3:"鹑";s:3:"鶉";s:3:"鹒";s:3:"鶊";s:3:"鹓";s:3:"鵷";s:3:"鹔";s:3:"鷫";s:3:"鹕";s:3:"鶘";s:3:"鹖";s:3:"鶡";s:3:"鹗";s:3:"鶚";s:3:"鹘";s:3:"鶻";s:3:"鹙";s:3:"鶖";s:3:"鹚";s:3:"鶿";s:3:"鹛";s:3:"鶥";s:3:"鹜";s:3:"鶩";s:3:"鹝";s:3:"鷊";s:3:"鹞";s:3:"鷂";s:3:"鹟";s:3:"鶲";s:3:"鹠";s:3:"鶹";s:3:"鹡";s:3:"鶺";s:3:"鹢";s:3:"鷁";s:3:"鹣";s:3:"鶼";s:3:"鹤";s:3:"鶴";s:3:"鹥";s:3:"鷖";s:3:"鹦";s:3:"鸚";s:3:"鹧";s:3:"鷓";s:3:"鹨";s:3:"鷚";s:3:"鹩";s:3:"鷯";s:3:"鹪";s:3:"鷦";s:3:"鹫";s:3:"鷲";s:3:"鹬";s:3:"鷸";s:3:"鹭";s:3:"鷺";s:3:"鹯";s:3:"鸇";s:3:"鹰";s:3:"鷹";s:3:"鹱";s:3:"鸌";s:3:"鹲";s:3:"鸏";s:3:"鹳";s:3:"鸛";s:3:"鹴";s:3:"鸘";s:3:"鹵";s:3:"卤";s:3:"鹹";s:3:"咸";s:3:"鹼";s:3:"硷";s:3:"鹽";s:3:"塩";s:3:"鹾";s:3:"鹺";s:3:"麁";s:3:"粗";s:3:"麄";s:3:"粗";s:3:"麆";s:3:"粗";s:3:"麋";s:3:"麊";s:3:"麗";s:3:"丽";s:3:"麠";s:3:"麖";s:3:"麤";s:3:"粗";s:3:"麦";s:3:"麥";s:3:"麪";s:3:"面";s:3:"麯";s:3:"曲";s:3:"麴";s:3:"曲";s:3:"麵";s:3:"面";s:3:"麸";s:3:"麩";s:3:"麻";s:3:"淋";s:3:"麼";s:3:"么";s:3:"麽";s:3:"么";s:3:"黄";s:3:"黃";s:3:"黌";s:3:"黉";s:3:"黎";s:3:"菞";s:3:"黒";s:3:"黑";s:3:"黔";s:3:"軡";s:3:"黙";s:3:"默";s:3:"點";s:3:"奌";s:3:"黨";s:3:"党";s:3:"黲";s:3:"黪";s:3:"黴";s:3:"霉";s:3:"黶";s:3:"黡";s:3:"黷";s:3:"黩";s:3:"黾";s:3:"黽";s:3:"鼄";s:3:"蛛";s:3:"鼅";s:3:"蜘";s:3:"鼇";s:3:"鰲";s:3:"鼈";s:3:"鱉";s:3:"鼋";s:3:"黿";s:3:"鼌";s:3:"鼂";s:3:"鼍";s:3:"鼉";s:3:"鼓";s:3:"皷";s:3:"鼕";s:3:"冬";s:3:"鼗";s:3:"鞀";s:3:"鼳";s:3:"鼰";s:3:"鼹";s:3:"鼴";s:3:"鼾";s:3:"哻";s:3:"齀";s:3:"鼿";s:3:"齃";s:3:"頞";s:3:"齊";s:3:"亝";s:3:"齋";s:3:"斋";s:3:"齎";s:3:"賫";s:3:"齏";s:3:"虀";s:3:"齐";s:3:"亝";s:3:"齑";s:3:"虀";s:3:"齒";s:3:"歯";s:3:"齣";s:3:"出";s:3:"齥";s:3:"齛";s:3:"齧";s:3:"啮";s:3:"齩";s:3:"咬";s:3:"齪";s:3:"踀";s:3:"齳";s:3:"齫";s:3:"齶";s:3:"腭";s:3:"齿";s:3:"歯";s:3:"龀";s:3:"齔";s:3:"龁";s:3:"齕";s:3:"龂";s:3:"齗";s:3:"龃";s:3:"齟";s:3:"龄";s:3:"齡";s:3:"龅";s:3:"齙";s:3:"龆";s:3:"齠";s:3:"龇";s:3:"齜";s:3:"龈";s:3:"齦";s:3:"龉";s:3:"齬";s:3:"龊";s:3:"踀";s:3:"龋";s:3:"齲";s:3:"龌";s:3:"齷";s:3:"龍";s:3:"竜";s:3:"龎";s:3:"厐";s:3:"龐";s:3:"厐";s:3:"龑";s:3:"䶮";s:3:"龒";s:3:"竜";s:3:"龘";s:3:"龖";s:3:"龙";s:3:"竜";s:3:"龚";s:3:"龔";s:3:"龛";s:3:"龕";s:3:"龜";s:3:"亀";s:3:"龝";s:3:"秋";s:3:"龞";s:3:"鱉";s:3:"龟";s:3:"亀";s:3:"龢";s:3:"和";s:3:"꒜";s:3:"ꃀ";s:3:"꒞";s:3:"ꁊ";s:3:"꒬";s:3:"ꁐ";s:3:"꒰";s:3:"ꏂ";s:3:"꒺";s:3:"ꎿ";s:3:"꒾";s:3:"ꊱ";s:3:"꒿";s:3:"ꉙ";s:3:"꓀";s:3:"ꎫ";s:3:"꓂";s:3:"ꎵ";s:3:"0";s:1:"O";s:3:"1";s:1:"I";s:3:"2";s:1:"2";s:3:"3";s:1:"E";s:3:"4";s:1:"A";s:3:"5";s:1:"S";s:3:"6";s:1:"G";s:3:"7";s:1:"7";s:3:"8";s:1:"8";s:3:"9";s:1:"9";s:3:":";s:1:":";s:3:";";s:1:";";s:3:"<";s:1:"<";s:3:"=";s:1:"=";s:3:">";s:1:">";s:3:"?";s:1:"?";s:3:"@";s:1:"A";s:3:"A";s:1:"A";s:3:"B";s:1:"B";s:3:"C";s:1:"C";s:3:"D";s:1:"D";s:3:"E";s:1:"E";s:3:"F";s:1:"F";s:3:"G";s:1:"G";s:3:"H";s:1:"H";s:3:"I";s:1:"I";s:3:"J";s:1:"J";s:3:"K";s:1:"K";s:3:"L";s:1:"L";s:3:"M";s:1:"M";s:3:"N";s:1:"N";s:3:"O";s:1:"O";s:3:"P";s:1:"P";s:3:"Q";s:1:"Q";s:3:"R";s:1:"R";s:3:"S";s:1:"S";s:3:"T";s:1:"T";s:3:"U";s:1:"U";s:3:"V";s:1:"V";s:3:"W";s:1:"W";s:3:"X";s:1:"X";s:3:"Y";s:1:"Y";s:3:"Z";s:1:"Z";s:3:"[";s:1:"[";s:3:"\";s:1:"\";s:3:"]";s:1:"]";s:3:"^";s:1:"^";s:3:"_";s:1:"_";s:3:"`";s:1:"`";s:3:"a";s:1:"A";s:3:"b";s:1:"B";s:3:"c";s:1:"C";s:3:"d";s:1:"D";s:3:"e";s:1:"E";s:3:"f";s:1:"F";s:3:"g";s:1:"G";s:3:"h";s:1:"H";s:3:"i";s:1:"I";s:3:"j";s:1:"J";s:3:"k";s:1:"K";s:3:"l";s:1:"L";s:3:"m";s:1:"M";s:3:"n";s:1:"N";s:3:"o";s:1:"O";s:3:"p";s:1:"P";s:3:"q";s:1:"Q";s:3:"r";s:1:"R";s:3:"s";s:1:"S";s:3:"t";s:1:"T";s:3:"u";s:1:"U";s:3:"v";s:1:"V";s:3:"w";s:1:"W";s:3:"x";s:1:"X";s:3:"y";s:1:"Y";s:3:"z";s:1:"Z";s:3:"。";s:3:"。";s:3:"「";s:3:"「";s:3:"」";s:3:"」";s:3:"、";s:3:"、";s:3:"・";s:3:"・";s:3:"ヲ";s:3:"ヲ";s:3:"ァ";s:3:"ァ";s:3:"ィ";s:3:"ィ";s:3:"ゥ";s:3:"ゥ";s:3:"ェ";s:3:"ェ";s:3:"ォ";s:3:"ォ";s:3:"ャ";s:3:"ャ";s:3:"ュ";s:3:"ュ";s:3:"ョ";s:3:"ョ";s:3:"ッ";s:3:"ッ";s:3:"ー";s:3:"ー";s:3:"ア";s:3:"ア";s:3:"イ";s:3:"イ";s:3:"ウ";s:3:"ウ";s:3:"エ";s:3:"エ";s:3:"オ";s:3:"オ";s:3:"カ";s:3:"カ";s:3:"キ";s:3:"キ";s:3:"ク";s:3:"ク";s:3:"ケ";s:3:"ケ";s:3:"コ";s:3:"コ";s:3:"サ";s:3:"サ";s:3:"シ";s:3:"シ";s:3:"ス";s:3:"ス";s:3:"セ";s:3:"セ";s:3:"ソ";s:3:"ソ";s:3:"タ";s:3:"タ";s:3:"チ";s:3:"チ";s:3:"ツ";s:3:"ツ";s:3:"テ";s:3:"テ";s:3:"ト";s:3:"ト";s:3:"ナ";s:3:"ナ";s:3:"ニ";s:3:"ニ";s:3:"ヌ";s:3:"ヌ";s:3:"ネ";s:3:"ネ";s:3:"ノ";s:3:"ノ";s:3:"ハ";s:3:"ハ";s:3:"ヒ";s:3:"ヒ";s:3:"フ";s:3:"フ";s:3:"ヘ";s:3:"へ";s:3:"ホ";s:3:"ホ";s:3:"マ";s:3:"マ";s:3:"ミ";s:3:"ミ";s:3:"ム";s:3:"ム";s:3:"メ";s:3:"メ";s:3:"モ";s:3:"モ";s:3:"ヤ";s:3:"ヤ";s:3:"ユ";s:3:"ユ";s:3:"ヨ";s:3:"ヨ";s:3:"ラ";s:3:"ラ";s:3:"リ";s:3:"リ";s:3:"ル";s:3:"ル";s:3:"レ";s:3:"レ";s:3:"ロ";s:3:"ロ";s:3:"ワ";s:3:"ワ";s:3:"ン";s:3:"ン";s:3:"゙";s:3:"゙";s:3:"゚";s:3:"゚";s:3:"ᅠ";s:3:"ㅤ";s:3:"ᄀ";s:3:"ㄱ";s:3:"ᄁ";s:3:"ㄲ";s:3:"ᆪ";s:3:"ㄳ";s:3:"ᄂ";s:3:"ㄴ";s:3:"ᆬ";s:3:"ㄵ";s:3:"ᆭ";s:3:"ㄶ";s:3:"ᄃ";s:3:"ㄷ";s:3:"ᄄ";s:3:"ㄸ";s:3:"ᄅ";s:3:"ㄹ";s:3:"ᆰ";s:3:"ㄺ";s:3:"ᆱ";s:3:"ㄻ";s:3:"ᆲ";s:3:"ㄼ";s:3:"ᆳ";s:3:"ㄽ";s:3:"ᆴ";s:3:"ㄾ";s:3:"ᆵ";s:3:"ㄿ";s:3:"ᄚ";s:3:"ㅀ";s:3:"ᄆ";s:3:"ㅁ";s:3:"ᄇ";s:3:"ㅂ";s:3:"ᄈ";s:3:"ㅃ";s:3:"ᄡ";s:3:"ㅄ";s:3:"ᄉ";s:3:"ㅅ";s:3:"ᄊ";s:3:"ㅆ";s:3:"ᄋ";s:3:"ㅇ";s:3:"ᄌ";s:3:"ㅈ";s:3:"ᄍ";s:3:"ㅉ";s:3:"ᄎ";s:3:"ㅊ";s:3:"ᄏ";s:3:"ㅋ";s:3:"ᄐ";s:3:"ㅌ";s:3:"ᄑ";s:3:"ㅍ";s:3:"ᄒ";s:3:"ㅎ";s:3:"ᅡ";s:3:"ㅏ";s:3:"ᅢ";s:3:"ㅐ";s:3:"ᅣ";s:3:"ㅑ";s:3:"ᅤ";s:3:"ㅒ";s:3:"ᅥ";s:3:"ㅓ";s:3:"ᅦ";s:3:"ㅔ";s:3:"ᅧ";s:3:"ㅕ";s:3:"ᅨ";s:3:"ㅖ";s:3:"ᅩ";s:3:"ㅗ";s:3:"ᅪ";s:3:"ㅘ";s:3:"ᅫ";s:3:"ㅙ";s:3:"ᅬ";s:3:"ㅚ";s:3:"ᅭ";s:3:"ㅛ";s:3:"ᅮ";s:3:"ㅜ";s:3:"ᅯ";s:3:"ㅝ";s:3:"ᅰ";s:3:"ㅞ";s:3:"ᅱ";s:3:"ㅟ";s:3:"ᅲ";s:3:"ㅠ";s:3:"ᅳ";s:3:"ㅡ";s:3:"ᅴ";s:3:"ㅢ";s:3:"ᅵ";s:3:"ㅣ";} \ No newline at end of file
diff --git a/AntiSpoof/extension.json b/AntiSpoof/extension.json
new file mode 100644
index 00000000..6b2649ba
--- /dev/null
+++ b/AntiSpoof/extension.json
@@ -0,0 +1,59 @@
+{
+ "name": "AntiSpoof",
+ "author": "Brion Vibber",
+ "url": "https://www.mediawiki.org/wiki/Extension:AntiSpoof",
+ "descriptionmsg": "antispoof-desc",
+ "license-name": "GPL-2.0+",
+ "type": "antispam",
+ "requires": {
+ "MediaWiki": ">= 1.25.0"
+ },
+ "GroupPermissions": {
+ "sysop": {
+ "override-antispoof": true
+ },
+ "bureaucrat": {
+ "override-antispoof": true
+ }
+ },
+ "AvailableRights": [
+ "override-antispoof"
+ ],
+ "APIModules": {
+ "antispoof": "ApiAntiSpoof"
+ },
+ "MessagesDirs": {
+ "AntiSpoof": "i18n"
+ },
+ "AutoloadClasses": {
+ "AntiSpoof": "AntiSpoof_body.php",
+ "AntiSpoofHooks": "AntiSpoofHooks.php",
+ "SpoofUser": "SpoofUser.php",
+ "AntiSpoofAuthenticationRequest": "AntiSpoofAuthenticationRequest.php",
+ "AntiSpoofPreAuthenticationProvider": "AntiSpoofPreAuthenticationProvider.php",
+ "ApiAntiSpoof": "api/ApiAntiSpoof.php"
+ },
+ "callback": "AntiSpoofHooks::onRegistration",
+ "Hooks": {
+ "LoadExtensionSchemaUpdates": "AntiSpoofHooks::asUpdateSchema",
+ "RenameUserComplete": "AntiSpoofHooks::asAddRenameUserHook",
+ "DeleteAccount": "AntiSpoofHooks::asDeleteAccount"
+ },
+ "config": {
+ "@doc": "see AntiSpoof.php",
+ "AntiSpoofAccounts": true,
+ "AntiSpoofBlacklist": [
+ "\u0337",
+ "\u0338",
+ "\u2044",
+ "\u2215",
+ "\u23AE",
+ "\u29F6",
+ "\u29F8",
+ "\u2AFB",
+ "\u2AFD",
+ "\uFF0F"
+ ]
+ },
+ "manifest_version": 1
+}
diff --git a/AntiSpoof/gitinfo.json b/AntiSpoof/gitinfo.json
new file mode 100644
index 00000000..5850b454
--- /dev/null
+++ b/AntiSpoof/gitinfo.json
@@ -0,0 +1 @@
+{"headSHA1": "28d91c774dd78a991a4b0e5bcbaaaa1e82e4b582\n", "head": "28d91c774dd78a991a4b0e5bcbaaaa1e82e4b582\n", "remoteURL": "https://gerrit.wikimedia.org/r/mediawiki/extensions/AntiSpoof", "branch": "28d91c774dd78a991a4b0e5bcbaaaa1e82e4b582\n", "headCommitDate": "1508359857"} \ No newline at end of file
diff --git a/AntiSpoof/i18n/aeb-arab.json b/AntiSpoof/i18n/aeb-arab.json
new file mode 100644
index 00000000..aaf18c3d
--- /dev/null
+++ b/AntiSpoof/i18n/aeb-arab.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ ]
+ },
+ "antispoof-desc": "يمنع إنشاء الحسابات بسكريبت مختلط، وبأسماء مشابهة ومربكة",
+ "antispoof-conflict-top": "الاسم \"$1\" شديد الشبه ب{{PLURAL:$2|الحساب الموجود|ال$2 حساب التالية}}:",
+ "antispoof-conflict-bottom": "من فضلك اختر اسما آخر.",
+ "antispoof-name-illegal": "الاسم \"$1\" غير مسموح به لمنع الخلط وانتحال أسماء المستخدمين: $2.\nمن فضلك اختر اسم آخر.",
+ "antispoof-badtype": "نوع بيانات خاطئ",
+ "antispoof-empty": "سلسلة فارغة",
+ "antispoof-blacklisted": "!!FUZZY!!يحتوي على حرف في القائمة السوداء",
+ "antispoof-combining": "!!FUZZY!!يبدأ بعلامة مختلطة",
+ "antispoof-unassigned": "يحتوي على حرف غير مخصص أو غير مقبول",
+ "antispoof-noletters": "لا يحتوي على أية حروف",
+ "antispoof-mixedscripts": "يحتوي على سكريبتات غير متوافقة مختلطة",
+ "antispoof-tooshort": "الاسم المستخدم قصير جدًا",
+ "antispoof-ignore": "تجاهل التحقق من التشابه",
+ "right-override-antispoof": "تجاوز التحقق من سبوفينج"
+}
diff --git a/AntiSpoof/i18n/aeb.json b/AntiSpoof/i18n/aeb.json
new file mode 100644
index 00000000..6a0e74c7
--- /dev/null
+++ b/AntiSpoof/i18n/aeb.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Csisc"
+ ]
+ },
+ "antispoof-desc": "يمنع إنشاء الحسابات بسكريبت مختلط، وبأسماء مشابهة ومربكة",
+ "antispoof-conflict-top": "الاسم \"$1\" شديد الشبه ب{{PLURAL:$2|الحساب الموجود|ال$2 حساب التالية}}:",
+ "antispoof-conflict-bottom": "من فضلك اختر اسما آخر.",
+ "antispoof-name-illegal": "الاسم \"$1\" غير مسموح به لمنع الخلط وانتحال أسماء المستخدمين: $2.\nمن فضلك اختر اسم آخر.",
+ "antispoof-badtype": "نوع بيانات خاطئ",
+ "antispoof-empty": "سلسلة فارغة",
+ "antispoof-blacklisted": "يحتوي على حرف في القائمة السوداء",
+ "antispoof-combining": "يبدأ بعلامة مختلطة",
+ "antispoof-unassigned": "يحتوي على حرف غير مخصص أو غير مقبول",
+ "antispoof-noletters": "لا يحتوي على أية حروف",
+ "antispoof-mixedscripts": "يحتوي على سكريبتات غير متوافقة مختلطة",
+ "antispoof-tooshort": "الاسم المستخدم قصير جدًا",
+ "antispoof-ignore": "تجاهل التحقق من التشابه",
+ "right-override-antispoof": "تجاوز التحقق من سبوفينج"
+}
diff --git a/AntiSpoof/i18n/af.json b/AntiSpoof/i18n/af.json
new file mode 100644
index 00000000..f39f4b71
--- /dev/null
+++ b/AntiSpoof/i18n/af.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Naudefj",
+ "පසිඳු කාවින්ද",
+ "Biggs ZA"
+ ]
+ },
+ "antispoof-desc": "Blokke van die skepping van rekeninge met gemengde-script, verwarrend en soortgelyke gebruikersname",
+ "antispoof-conflict-top": "Die gebruikernaam \"$1\" en {{PLURAL:$2|username|usernames}} lyk te eenders:",
+ "antispoof-conflict-bottom": "Kies 'n ander gebruikersnaam.",
+ "antispoof-name-illegal": "Die gebruikersnaam \"$1\" is ontoelaatbaar ten einde verwarrende of spottende gebruikersname te voorkom: $2. Kies 'n ander gebruikersnaam.",
+ "antispoof-badtype": "Verkeerde datatipe",
+ "antispoof-empty": "Leë string",
+ "antispoof-blacklisted": "Bevat verbode karakter $1",
+ "antispoof-combining": "Begin met 'n gekombineerde merker $1",
+ "antispoof-unassigned": "Bevat nie toegekende of verouderde karakter $1",
+ "antispoof-deprecated": "Bevat verouderde karakter $1",
+ "antispoof-noletters": "Bevat geen letters nie",
+ "antispoof-mixedscripts": "Bevat onverenigbaar gemengde skrifte",
+ "antispoof-tooshort": "Genormaliseerde naam te kort",
+ "antispoof-ignore": "Ignoreer spoofing tjeks",
+ "right-override-antispoof": "Ignoreer die spoofing tjeks"
+}
diff --git a/AntiSpoof/i18n/ais.json b/AntiSpoof/i18n/ais.json
new file mode 100644
index 00000000..3dee931a
--- /dev/null
+++ b/AntiSpoof/i18n/ais.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tokoabibi",
+ "Benel",
+ "Bunukwiki"
+ ]
+ },
+ "antispoof-badtype": "mungangaway a kalunasulitan nikalahizaan",
+ "antispoof-empty": "inayi’ay a sulisulitan",
+ "antispoof-ignore": "sekipo pahengad kinsa",
+ "right-override-antispoof": "mitahap pahengad tu kinsa"
+}
diff --git a/AntiSpoof/i18n/aln.json b/AntiSpoof/i18n/aln.json
new file mode 100644
index 00000000..8cd56e02
--- /dev/null
+++ b/AntiSpoof/i18n/aln.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mdupont"
+ ]
+ },
+ "antispoof-desc": "Bllokon krijimin e llogarive me script-të përziera, konfuze dhe të ngjashme përdoruesve",
+ "antispoof-conflict-top": "Emrin \"$1\" është shumë e ngjashme me {{PLURAL:$2|llogari ekzistuese|mëposhtme $2 llogaritë}}:",
+ "antispoof-conflict-bottom": "Ju lutem zgjidhni një tjetër.",
+ "antispoof-name-illegal": "Emrin \"$1\" nuk është e lejuar për të parandaluar ose spoofed përdoruesve konfuze: $2. Ju lutem zgjidhni një tjetër.",
+ "antispoof-badtype": "Bad dhënat lloj",
+ "antispoof-empty": "string bosh",
+ "antispoof-blacklisted": "Përmban në listën e zezë karakter",
+ "antispoof-combining": "Fillon me shenjën e kombinuar",
+ "antispoof-unassigned": "Përmban unassigned ose deprecated karakter",
+ "antispoof-noletters": "Nuk përmban asnjë shkronja",
+ "antispoof-mixedscripts": "Përmban Scripts papajtueshëm të përziera",
+ "antispoof-tooshort": "Emri Canonicalized shumë i shkurtër",
+ "antispoof-ignore": "Ignore spoofing kontrolle",
+ "right-override-antispoof": "Refuzim spoofing kontrolle"
+}
diff --git a/AntiSpoof/i18n/an.json b/AntiSpoof/i18n/an.json
new file mode 100644
index 00000000..cd025c19
--- /dev/null
+++ b/AntiSpoof/i18n/an.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl"
+ ]
+ },
+ "antispoof-desc": "Bloqueya a creyación de cuentas confusas, con tipografía mezclata y nombres d'usuario parellanos.",
+ "antispoof-conflict-top": "O nombre «$1» ye masiau semellant a {{PLURAL:$2|iste nombre d'usuario|istes $2 nombres d'usuario}}:",
+ "antispoof-conflict-bottom": "Esleiga belatro nombre, por favor.",
+ "antispoof-name-illegal": "No se premite rechistrar-se con o nombre \"$1\" ta privar confusions y suplantacions con os nombres d'usuario: $2. Por favor, esliya una atro nombre.",
+ "antispoof-badtype": "Tipo de datos no conforme",
+ "antispoof-empty": "Cadena vueda",
+ "antispoof-blacklisted": "Contién o caracter no premitito: $1",
+ "antispoof-combining": "Empecipia con a marca combinatoria $1",
+ "antispoof-unassigned": "Contién o caracter no asignau $1",
+ "antispoof-deprecated": "Contién o caracter obsoleto $1",
+ "antispoof-noletters": "No contiene garra letra",
+ "antispoof-mixedscripts": "Contiene un mezclallo incompatible de scripts",
+ "antispoof-tooshort": "Nombre canonico masiau curto",
+ "antispoof-ignore": "Ignorar as comprebacions de spoofing",
+ "right-override-antispoof": "Ignorar as prebas d'identidat"
+}
diff --git a/AntiSpoof/i18n/ang.json b/AntiSpoof/i18n/ang.json
new file mode 100644
index 00000000..1f530f70
--- /dev/null
+++ b/AntiSpoof/i18n/ang.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gott wisst",
+ "Wōdenhelm"
+ ]
+ },
+ "antispoof-noletters": "Næfþ nǣnge stafas"
+}
diff --git a/AntiSpoof/i18n/ar.json b/AntiSpoof/i18n/ar.json
new file mode 100644
index 00000000..8357c942
--- /dev/null
+++ b/AntiSpoof/i18n/ar.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abanima",
+ "Avocato",
+ "DRIHEM",
+ "Meno25",
+ "Mido",
+ "Mimouni",
+ "محمد الجداوي",
+ "Moud hosny"
+ ]
+ },
+ "antispoof-desc": "يمنع إنشاء الحسابات بسكريبت مختلط، وبأسماء مشابهة ومربكة",
+ "antispoof-conflict-top": "اسم المستخدم \"$1\" شديد الشبه ب{{PLURAL:$2|حساب موجود هو|حسابين موجودين هما|$2 حسابات موجودة هي|$2 حساباً موجوداً هي|$2 حساب موجود هي}}:",
+ "antispoof-conflict-bottom": "من فضلك اختر اسم مستخدم آخر.",
+ "antispoof-name-illegal": "اسم المستخدم \"$1\" غير مسموح به لمنع الخلط وانتحال أسماء المستخدمين: $2.\nمن فضلك اختر اسم مستخدم آخر.",
+ "antispoof-badtype": "نوع بيانات خاطئ",
+ "antispoof-empty": "سطر محارف فارغ",
+ "antispoof-blacklisted": "يحتوي على المحرف $1 من القائمة السوداء",
+ "antispoof-combining": "يبدأ بالعلامة المختلطة $1",
+ "antispoof-unassigned": "يحتوي على محرف غير معين $1",
+ "antispoof-deprecated": "يحتوي على المحرف المستنكر $1",
+ "antispoof-noletters": "لا يحتوي على أية حروف",
+ "antispoof-mixedscripts": "يحتوي على سكريبتات غير متوافقة مختلطة",
+ "antispoof-tooshort": "الاسم المستخدم قصير جدًا",
+ "antispoof-ignore": "تجاهل التحقق من التشابه",
+ "antispoof-ignore-help": "يسمح للمستخدمين بحقوق كافية لإنشاء حساب مستخدم، حتى إذا كان الاسم مشابه لاسم حساب مستخدم موجود.",
+ "right-override-antispoof": "تجاوز التحقق من سبوفينج",
+ "apihelp-antispoof-description": "تحقق من اسم المستخدم باستخدام أداة التحقق من عدم تشابه الأسماء.",
+ "apihelp-antispoof-summary": "تحقق من اسم مستخم ضد عمليات التحقق الخاصة بAntiSpoof.",
+ "apihelp-antispoof-param-username": "اسم المستخدم المطلوب التحقق منه باستخدام أداة التحقق من عدم تشابه الأسماء",
+ "apihelp-antispoof-example-1": "تحقق من اسم المستخدم \"Foo\" بأداة التحقق من عدم تشابه الأسماء.",
+ "apihelp-createaccount-param-ignoreantispoof": "تجاهل التحقق من عمليات السبوفنج (يتطلب صلاحية <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/arc.json b/AntiSpoof/i18n/arc.json
new file mode 100644
index 00000000..bd107ceb
--- /dev/null
+++ b/AntiSpoof/i18n/arc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh",
+ "Man2fly2002"
+ ]
+ },
+ "antispoof-conflict-bottom": "ܦܝܣܐ ܡܢܟ ܓܒܝ ܚܕ ܫܡܐ ܐܚܪܝܢܐ.",
+ "antispoof-noletters": "ܠܐ ܬܚܒܘܫ ܐܬܘܬܐ ܡܕܡ"
+}
diff --git a/AntiSpoof/i18n/arz.json b/AntiSpoof/i18n/arz.json
new file mode 100644
index 00000000..3573cea9
--- /dev/null
+++ b/AntiSpoof/i18n/arz.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly",
+ "Meno25",
+ "Ramsis II"
+ ]
+ },
+ "antispoof-desc": "بيمنع فتح حسابات بأسامى يوزرز متشابهة،و بتلخبط أو بسكريبت متخلط",
+ "antispoof-conflict-top": "الاسم \"$1\" شديد الشبه ب{{PLURAL:$2|الحساب الموجود|ال$2 حساب التالية}}:",
+ "antispoof-conflict-bottom": "من فضلك اختر اسما آخر.",
+ "antispoof-name-illegal": "الاسم \"$1\" مش مسموح علشان نمنع اللخبطة أوانتحال أسماء اليوزرز: $2. لو سمحت تختار اسم تانى.",
+ "antispoof-badtype": "نوع البيانات غلط",
+ "antispoof-empty": "سلسلة فاضية",
+ "antispoof-blacklisted": "بيحتوى على علامة من البلاك ليست",
+ "antispoof-combining": "بيبتدى بعلامة مختلطة",
+ "antispoof-unassigned": "بيحتوى على علامة مش مخصصة أو مش مقبولة",
+ "antispoof-noletters": "ما بيحتويش على اى حروف",
+ "antispoof-mixedscripts": "بيحتوى على سكريبتات مخلوطة مش متوافقة",
+ "antispoof-tooshort": "الاسم المستعمل قصير خالص",
+ "antispoof-ignore": "اتجاهل التشييك على سبوفينج",
+ "right-override-antispoof": "اتجاوز التشييك على سبوفينج"
+}
diff --git a/AntiSpoof/i18n/as.json b/AntiSpoof/i18n/as.json
new file mode 100644
index 00000000..cb511f8e
--- /dev/null
+++ b/AntiSpoof/i18n/as.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bishnu Saikia",
+ "Chaipau",
+ "Gitartha.bordoloi"
+ ]
+ },
+ "antispoof-desc": "মিশ্ৰ লিপিত লিখা, অস্পষ্ট বা একে সদস্যনাম ব্যৱহাৰ কৰি একাউণ্ট সৃষ্টিত বাধা দিয়া হ'ব",
+ "antispoof-conflict-top": "\"$1\" নামটো {{PLURAL:$2|একাউণ্টৰ|$2 একাউণ্টসমূহৰ}} লগত একে হৈছে",
+ "antispoof-conflict-bottom": "অনুগ্ৰহ কৰি আন এটা নাম বাছনি কৰক।",
+ "antispoof-name-illegal": "\"$1\" নামটো বিভ্ৰান্তিকৰ হোৱা বাবে অনুমোদন কৰা নহ'ব: $2।\nঅনুগ্ৰহ কৰি আন এটা নাম বাছনি কৰক।",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "তথ্যৰ ধৰণ ঠিক নহয়",
+ "antispoof-empty": "উকা সূত্ৰ",
+ "antispoof-blacklisted": "নিষিদ্ধ চিহ্ন $1 আছে",
+ "antispoof-combining": "সংযোজিত চিহ্ন $1ৰে আৰম্ভ হৈছে",
+ "antispoof-unassigned": "অপ্ৰযুক্ত চিহ্ন $1 আছে",
+ "antispoof-deprecated": "অননুমোদিত চিহ্ন $1 আছে",
+ "antispoof-noletters": "কোনো আখৰ নাই",
+ "antispoof-mixedscripts": "অনুপযুক্ত মিশ্ৰ লিপি আছে",
+ "antispoof-tooshort": "প্ৰদান কৰা নাম অতি চুটি",
+ "antispoof-ignore": "স্পুফিং পৰীক্ষা অৱজ্ঞা কৰক",
+ "right-override-antispoof": "স্পুফিং পৰীক্ষা অনৱেক্ষা কৰক"
+}
diff --git a/AntiSpoof/i18n/ast.json b/AntiSpoof/i18n/ast.json
new file mode 100644
index 00000000..16c39b04
--- /dev/null
+++ b/AntiSpoof/i18n/ast.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Esbardu",
+ "Xuacu"
+ ]
+ },
+ "antispoof-desc": "Bloquea la creación de cuentes con script mistu que tengan nomes d'usuariu asemeyaos o confusos",
+ "antispoof-conflict-top": "El nome «$1» ye demasiao asemeyáu {{PLURAL:$2|al nome siguiente|a los nomes siguientes}}:",
+ "antispoof-conflict-bottom": "Escueye otru nome d'usuariu.",
+ "antispoof-name-illegal": "Nun se permite'l nome «$1» pa evitar nomes d'usuariu que causen tracamundios o suplantaciones: $2.\nPor favor, escueye otru nome.",
+ "antispoof-badtype": "Triba de datos incorreuta",
+ "antispoof-empty": "Testu vaciu",
+ "antispoof-blacklisted": "Contien el caráuter non permitíu $1",
+ "antispoof-combining": "Empecipia cola marca de combinación $1",
+ "antispoof-unassigned": "Contien el caráuter non asignáu $1",
+ "antispoof-deprecated": "Contien el caráuter anticuáu $1",
+ "antispoof-noletters": "Nun contien lletra nenguna",
+ "antispoof-mixedscripts": "contien scripts incompatibles entemecíos",
+ "antispoof-tooshort": "Nome normalizáu demasiao curtiu",
+ "antispoof-ignore": "Inorar les comprobaciones d'engañu (spoofing)",
+ "antispoof-ignore-help": "Permite que los usuarios con permisu bastante creen una cuenta anque'l so nome seya asemeyáu al d'una cuenta que yá existe.",
+ "right-override-antispoof": "Saltase les comprobaciones d'engañu (spoofing)",
+ "apihelp-antispoof-description": "Comprobar un nome d'usuariu escontra les comprobaciones de normalización AntiSpoof.",
+ "apihelp-antispoof-summary": "Comprobar un nome d'usuariu escontra les comprobaciones de normalización AntiSpoof.",
+ "apihelp-antispoof-param-username": "El nome d'usuariu a comprobar escontra AntiSpoof.",
+ "apihelp-antispoof-example-1": "Comprobar el nome d'usuariu «Foo» escontra AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Inorar les comprobaciones d'engañu (spoof) (rique'l permisu <code>override-antispoof</code>)"
+}
diff --git a/AntiSpoof/i18n/avk.json b/AntiSpoof/i18n/avk.json
new file mode 100644
index 00000000..0f083a05
--- /dev/null
+++ b/AntiSpoof/i18n/avk.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Wikimistusik"
+ ]
+ },
+ "antispoof-badtype": "Origordaj",
+ "antispoof-empty": "Vlardafa roda",
+ "antispoof-noletters": "Va mek eltay ruldar"
+}
diff --git a/AntiSpoof/i18n/awa.json b/AntiSpoof/i18n/awa.json
new file mode 100644
index 00000000..049bdd4a
--- /dev/null
+++ b/AntiSpoof/i18n/awa.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "1AnuraagPandey"
+ ]
+ },
+ "antispoof-desc": "मिश्रित लिपि अव भ्रम पैदा करय वाले अउर मिलत-जुलत सदस्यनावँ कय प्रयोग पे रोक लगावत है।",
+ "antispoof-conflict-top": "\"$1\" नावँ निचे {{PLURAL:$2|सदस्यनावँ|सदस्यनावँ कुल}} से बहुत मिलत-जुलत है:",
+ "antispoof-conflict-bottom": "कृपया कवनो दुसर नाँव चुना जाय ।",
+ "antispoof-name-illegal": "भ्रामक नाँव कय रोकेक लिए नाँव \"$1\" राखब मिनाही है: $2\nकृपया कवनो दुसर नाँव लिहा जाय।",
+ "antispoof-badtype": "गलत डाटा प्रकार",
+ "antispoof-empty": "खाली स्ट्रिंग",
+ "antispoof-blacklisted": "एहमा ब्लैकलिस्टेड कैरैक्टर $1 है",
+ "antispoof-combining": "एकत्रिकरण चिन्ह $1 से शुरु होत है",
+ "antispoof-unassigned": "एहमा गलत अक्षर $1 है",
+ "antispoof-deprecated": "एहमा गलत अक्षर $1 है",
+ "antispoof-noletters": "एहमा कवनो अक्षर नाई है",
+ "antispoof-mixedscripts": "एहमा असंगत मिश्र लिपि कुल हैं",
+ "antispoof-tooshort": "अधिकारयुक्त नाँव बहुत छोट हय",
+ "antispoof-ignore": "स्पूफिंग जाँच नज़रंदाज़ करा जाय",
+ "right-override-antispoof": "स्पूफिंग चेक्स कय ना देखा जाय"
+}
diff --git a/AntiSpoof/i18n/az.json b/AntiSpoof/i18n/az.json
new file mode 100644
index 00000000..6a09c113
--- /dev/null
+++ b/AntiSpoof/i18n/az.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Vugar 1981",
+ "Wertuose"
+ ]
+ },
+ "antispoof-desc": "Digər hesablarla qarışmamamq üçün fərqli yazı sistemindən ibarət olan simvollarla yaradılmış hesabların açılması qadağandır",
+ "antispoof-conflict-top": "\"$1\" adı bu {{PLURAL:$2|istifadəçi adına|istifadəçi adlarına}} çox bənzəyir:",
+ "antispoof-conflict-bottom": "Zəhmət olmasa başqa ad seçin.",
+ "antispoof-name-illegal": "$2 hesabıyla qarışmaması üçün \"$1\" adına icazə verilmir. Zəhmət olmasa başqa istifadəçi adını seçin.",
+ "antispoof-badtype": "Yanlış məlumat",
+ "antispoof-empty": "Boş sətir",
+ "antispoof-blacklisted": "Qadağan olunmuş simvol istifadə edilib: $1",
+ "antispoof-combining": "$1 birləşdirmə işarəsi ilə başlayır",
+ "antispoof-unassigned": "Dəstəklənməyən simvol istifadə edilib: $1",
+ "antispoof-noletters": "Heç bir hərf yoxdur",
+ "antispoof-mixedscripts": "Qəbul edilməz yazı sistemi işlədilir",
+ "antispoof-tooshort": "Normallaşdırılmış ad çox qısadır",
+ "antispoof-ignore": "Oxşar adlar yoxlanmasına məhəl qoymamaq",
+ "right-override-antispoof": "Oxşar adlar yoxlanmasına məhəl qoymamaq"
+}
diff --git a/AntiSpoof/i18n/azb.json b/AntiSpoof/i18n/azb.json
new file mode 100644
index 00000000..d18a2f88
--- /dev/null
+++ b/AntiSpoof/i18n/azb.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amir a57",
+ "E THP",
+ "Mousa"
+ ]
+ },
+ "antispoof-desc": "دیگر حساب‌لارلا قاریشمامامق اوچون فرق‌لی یازی سیستئمین‌دن عبارت اولان سیموول‌لارلا یارادیلمیش حساب‌لارین آچیلماسی قاداغان‌دیر",
+ "antispoof-conflict-top": "«$1» آدی، اؤنجه‌دن اولان {{PLURAL:$2|بو حسابا|بو $2 حسابلارا}} چوخ بنزه‌ییر:",
+ "antispoof-conflict-bottom": "زحمت اولماسا باشقا آد سئچین.",
+ "antispoof-name-illegal": "$2 هئسابییلا قاریشماماسی اوچون \"$1\" آدینا ایجازه وئریلمیر. زحمت اولماسا باشقا ایستیفاده‌چی آدینی سئچین.",
+ "antispoof-badtype": "یانلیش بیلگی",
+ "antispoof-empty": "بوش سطیر",
+ "antispoof-blacklisted": "قاداغان اولونموش سیموول ایستیفاده ائدیلیب: $1",
+ "antispoof-combining": "بیرلشدیرمه $1 ایشاره‌سین‌دن باشلاییر",
+ "antispoof-unassigned": "دستکلنمه‌ین سیموول ایستیفاده ائدیلیب: $1",
+ "antispoof-deprecated": "پیس یازی لارا شامل اولور $1",
+ "antispoof-noletters": "هئچ بیر هرف یوخ‌دور",
+ "antispoof-mixedscripts": "قبول ائدیلمز یازی سیستئمی ایشلدیلیر",
+ "antispoof-tooshort": "نورماللاشدیریلمیش آد چوخ قیسا‌دیر",
+ "antispoof-ignore": "اوخشار آدلار یوخلانماسینا محل قویماماق",
+ "right-override-antispoof": "اوخشار آدلار یوخلانماسینا محل قویماماق"
+}
diff --git a/AntiSpoof/i18n/ba.json b/AntiSpoof/i18n/ba.json
new file mode 100644
index 00000000..8bb925cf
--- /dev/null
+++ b/AntiSpoof/i18n/ba.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alfiya55",
+ "Assele",
+ "Haqmar",
+ "Вильданова Гюзель",
+ "Янмурза Баки",
+ "Ләйсән"
+ ]
+ },
+ "antispoof-desc": "Төрлө яҙма системаларының хәрефтәренән торған, яңылыштырырлыҡ һәм башҡа ҡатнашыусы исемдәренән оҡшаш исемле иҫәп яҙмаларҙы булдырыуҙы тыя.",
+ "antispoof-conflict-top": "\"$1\" ҡатнашыусы исеме {{PLURAL:$2|ҡулланыусы исеменә}} бигерәк оҡшаш:",
+ "antispoof-conflict-bottom": "Башҡа ҡатнашыусы исемен һайлағыҙ.",
+ "antispoof-name-illegal": "Ҡатнашыусы \"$1\" исемен ҡүлланыу түбәндәге оҡшаш исемдәр менән бутамау өсөн тыйылған: $2.\nБашҡа исем һайлағыҙ.",
+ "antispoof-badtype": "Мәғлүмәт төрө дөрөҫ түгел",
+ "antispoof-empty": "Буш юл",
+ "antispoof-blacklisted": "Ҡара исемлектәге символ бар: $1",
+ "antispoof-combining": "Берләштереү билдәһе менән башлана: $1",
+ "antispoof-unassigned": "Рөхсәт ителмәгән символ бар: $1",
+ "antispoof-deprecated": "Ҡулланыуҙан сығарылған символ бар: $1",
+ "antispoof-noletters": "Бер хәреф тә юҡ",
+ "antispoof-mixedscripts": "Берләштереү мөмкин булмаған яҙма системаларының хәрефтәре бар",
+ "antispoof-tooshort": "Стандартлаштырылған исем бигерәк ҡыҫҡа",
+ "antispoof-ignore": "Оҡшаш исемдәргә тикшереүҙе иғтибарға алмаҫҡа",
+ "right-override-antispoof": "Оҡшаш исемдәргә тикшереүҙе иғтибарһыҙ ҡалдырыу",
+ "apihelp-antispoof-description": "Чек-бокс AntiSpoof's normalisation ҡаршыһында ҡулланыусы исемен тикшерегеҙ.",
+ "apihelp-antispoof-param-username": "AntiSpoof ярҙамында тикшерә торған ҡатнашыусының исеме.",
+ "apihelp-antispoof-example-1": "AntiSpoof ярҙамында «Foo» ҡатнашыусы исемен тикшерергә",
+ "apihelp-createaccount-param-ignoreantispoof": "(Хоҡуҡ һораған <code>override-antispoof</code>) оҡшаш исемдәрҙе иҫәпкә алмаҫҡа."
+}
diff --git a/AntiSpoof/i18n/bar.json b/AntiSpoof/i18n/bar.json
new file mode 100644
index 00000000..d6aa3f87
--- /dev/null
+++ b/AntiSpoof/i18n/bar.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mucalexx",
+ "Joe Watzmo"
+ ]
+ },
+ "antispoof-desc": "Vahindert d' Erstöung voh Benutzerkontos mid gmischte Zeichenseetz, vawirrende und änliche Benutzernåmen",
+ "antispoof-conflict-top": "Da Nåm „$1“ ist {{PLURAL:$2|'m existiarerten Benutzerkonto|de foigenden $2 Benutzerkontos}} z' änle:",
+ "antispoof-conflict-bottom": "Bittschee suach da an andan Nam aus",
+ "antispoof-name-illegal": "Da ausgsuachte Benutzernåm „$1“ is ned dalaabt. Grund: $2<br />Bittschee an åndern Benutzernåmen aussuachen.",
+ "antispoof-badtype": "Ungütiger Daatentyp",
+ "antispoof-empty": "Laars Föd",
+ "antispoof-blacklisted": "Es san ned dalaabte Zeichen enthoiden.",
+ "antispoof-combining": "Kombinazionszeichen z' Beginn.",
+ "antispoof-unassigned": "Es san ned zuagordnate oder unerwynschte Zeichen enthoiden.",
+ "antispoof-noletters": "Es san koane Buachstom enthoiden.",
+ "antispoof-mixedscripts": "Es san Zeichen voh unterschiadliche Schriftsysteme enthoiden.",
+ "antispoof-tooshort": "Da kanonisiarde Nåm is z' kurz.",
+ "antispoof-ignore": "D' Änlichkeitspriaffung ignorirn",
+ "right-override-antispoof": "D' Benutzernåm-Änlichkeitspriaffung ausschoiden"
+}
diff --git a/AntiSpoof/i18n/bcc.json b/AntiSpoof/i18n/bcc.json
new file mode 100644
index 00000000..a1859b85
--- /dev/null
+++ b/AntiSpoof/i18n/bcc.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar",
+ "RigiMahnoor"
+ ]
+ },
+ "antispoof-desc": "شرکتن حساب گون پیچیدگین اسکریپ، پیچیدگین و ساده این نام کاربری محدود کنت",
+ "antispoof-conflict-top": "نام «$1» باز پر {{PLURAL:$2|ائ حساب کاربری|ائ حسابانی کاربری}} یکجندی داریت.",
+ "antispoof-conflict-bottom": "دزبندی دگر نامء بزیر ات.",
+ "antispoof-name-illegal": "نام \"$1\" مجاز په بوتن په خاطر جلوگرگ چه پیچیدگین نام شرکتن نهنت$2.\nلطفا یک دگه نامی انتخاب کنیت.",
+ "antispoof-badtype": "بدین نوع دیتا",
+ "antispoof-empty": "رشتگ حالیکین",
+ "antispoof-blacklisted": "ائ بلک لیستء کرکتر توکا انت $1",
+ "antispoof-combining": "بنگیج بیت گون جمعی علامت $1",
+ "antispoof-unassigned": "ائ نامالومین یانکه نالوٹین کرکتر توکا انت",
+ "antispoof-deprecated": "ائ نالوٹین کرکترء توکا انت $1",
+ "antispoof-noletters": "شامل هچ حرفی نهنت",
+ "antispoof-mixedscripts": "شامل نا سازین جمع اسکریپتانء",
+ "antispoof-tooshort": "استاندارد این نام باز هوردن",
+ "antispoof-ignore": "ندید گرگ کنترل په کلاهبرداری",
+ "right-override-antispoof": "چه کنترلان کلاهبرداری رد بوت"
+}
diff --git a/AntiSpoof/i18n/bcl.json b/AntiSpoof/i18n/bcl.json
new file mode 100644
index 00000000..3b0542ea
--- /dev/null
+++ b/AntiSpoof/i18n/bcl.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd",
+ "Geopoet"
+ ]
+ },
+ "antispoof-desc": "Minakubkob sa pagmukna nin mga panindog na igwang pinaghalong eskripto, nakakalibong asin may kaparehong mga paragamit-ngaran",
+ "antispoof-conflict-top": "An pangaran na \"$1\" may kaagid sa minasunod na {{PLURAL:$2|ngaran-paragamit|mga ngaran-paragamit}}:",
+ "antispoof-conflict-bottom": "Pakipili tabi nin ibang pangaran.",
+ "antispoof-name-illegal": "An parágamit na \"$1\" dai tinotogotan tanganing maibitaran an pagpaparibong o inarogan na mga ngaran-paragamit: $2. Pakipilî tabî nin ibang pangaran.",
+ "antispoof-badtype": "Maraot na tipo nin datos",
+ "antispoof-empty": "Mayong laman na panunod",
+ "antispoof-blacklisted": "Minalaman nin pinagbaraduhang panggurit na $1",
+ "antispoof-combining": "Minapoon na igwang kasalakang marka an $1",
+ "antispoof-unassigned": "Minalaman nin bakong designadong panggurit na $1",
+ "antispoof-deprecated": "Minalaman nin deprekadong panggurit na $1",
+ "antispoof-noletters": "Mayong nakakaag na mga letra",
+ "antispoof-mixedscripts": "Igwang dai angay na mga halong eskripto",
+ "antispoof-tooshort": "Kanonikalisadong pangaran na grabe kahalipoton",
+ "antispoof-ignore": "Pabayae an palibong na mga rikisa",
+ "right-override-antispoof": "Salambawan an palibong na mga rikisa"
+}
diff --git a/AntiSpoof/i18n/be-tarask.json b/AntiSpoof/i18n/be-tarask.json
new file mode 100644
index 00000000..56d93430
--- /dev/null
+++ b/AntiSpoof/i18n/be-tarask.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Jim-by",
+ "Red Winged Duck",
+ "Wizardist"
+ ]
+ },
+ "antispoof-desc": "Блякуе стварэньне рахункаў зь імёнамі карыстальнікаў са зьмяшаных альфабэтаў, падобных ці тых, якія можна зблытаць",
+ "antispoof-conflict-top": "Імя ўдзельніка «$1» занадта падобнае на {{PLURAL:$2|1=наступнае імя ўдзельніка|наступныя імёны ўдзельнікаў}}:",
+ "antispoof-conflict-bottom": "Калі ласка, абярыце іншае імя ўдзельніка.",
+ "antispoof-name-illegal": "Імя ўдзельніка «$1» не дазволенае, каб прадухіліць блытаніну ці падробку імені ўдзельніка: $2.\nКалі ласка, абярыце іншае імя ўдзельніка.",
+ "antispoof-badtype": "Няслушны тып зьвестак",
+ "antispoof-empty": "Пусты радок",
+ "antispoof-blacklisted": "Утрымлівае забаронены сымбаль $1",
+ "antispoof-combining": "Пачынаецца з мадыфікавальнага сымбаля Юнікоду $1",
+ "antispoof-unassigned": "Утрымлівае неназначаны ці састарэлы сымбаль",
+ "antispoof-deprecated": "Утрымлівае састарэлы сымбаль «$1»",
+ "antispoof-noletters": "Ня ўтрымлівае ніводнай літары",
+ "antispoof-mixedscripts": "Утрымлівае несумяшчальныя зьмяшаныя альфабэты",
+ "antispoof-tooshort": "Нармалізаванае імя занадта кароткае",
+ "antispoof-ignore": "Ігнараваць праверкі на падобнасьць імёнаў",
+ "antispoof-ignore-help": "Дазваляе ўдзельнікам з дастатковымі правамі ствараць рахунак нават калі яго імя падобна на імя існага рахунку.",
+ "right-override-antispoof": "ігнараваньне праверак на падобныя назвы рахункаў",
+ "apihelp-antispoof-description": "Праверка імені ўдзельніка паводле крытэраў нармалізацыі AntiSpoof.",
+ "apihelp-antispoof-summary": "Праверка імені ўдзельніка паводле крытэраў нармалізацыі AntiSpoof.",
+ "apihelp-antispoof-param-username": "Імя ўдзельніка для праверкі паводле крытэраў AntiSpoof.",
+ "apihelp-antispoof-example-1": "Праверка імя ўдзельніка «Foo» паводле крытэраў AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ігнараваць праверкі падменаў (патрабуе правоў <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/be.json b/AntiSpoof/i18n/be.json
new file mode 100644
index 00000000..24a403c2
--- /dev/null
+++ b/AntiSpoof/i18n/be.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Хомелка",
+ "Дзяніс Тутэйшы",
+ "Mechanizatar"
+ ]
+ },
+ "antispoof-desc": "Блакуе стварэнне рахункаў з імёнамі карыстальнікаў са змяшанымі раскладкамі, падобных ці тых, якія можна зблытаць",
+ "antispoof-conflict-top": "Імя «$1» занадта падобнае на {{PLURAL:$2|1=наступнае імя карыстальніка|наступныя імёны карыстальнікаў}}:",
+ "antispoof-conflict-bottom": "Калі ласка, выберыце іншую назву рахунка.",
+ "antispoof-name-illegal": "Імя «$1» не дазволенае, каб прадухіліць блытаніну ці падробку імені ўдзельніка: $2. Калі ласка, абярыце іншае імя.",
+ "antispoof-badtype": "Няслушны тып звестак",
+ "antispoof-empty": "Пусты радок",
+ "antispoof-blacklisted": "Утрымлівае забаронены сімвал $1",
+ "antispoof-combining": "Пачынаецца з аб'яднальнага знаку $1",
+ "antispoof-unassigned": "Утрымлівае нявызначаны сімвал $1",
+ "antispoof-deprecated": "Утрымлівае забаронены сімвал $1",
+ "antispoof-noletters": "Не ўтрымлівае ніводнай літары",
+ "antispoof-mixedscripts": "Утрымлівае несумяшчальныя змяшаныя альфавіты",
+ "antispoof-tooshort": "Нармалізаванае імя занадта кароткае",
+ "antispoof-ignore": "Ігнараваць праверкі на падобнасць імёнаў",
+ "antispoof-ignore-help": "Дазваляе карыстальніку з дастатковымі прывілеямі стварыць уліковы запіс, нават калі яго імя падобна на існуючы ўліковы запіс.",
+ "right-override-antispoof": "ігнараванне праверак на падобныя назвы рахункаў",
+ "apihelp-antispoof-description": "Праверце імя карыстальніка праз AntiSpoof.",
+ "apihelp-antispoof-param-username": "Імя карыстальніка для праверкі AntiSpoof.",
+ "apihelp-antispoof-example-1": "Праверыць імя карыстальніка \"Foo\" з дапамогай AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ігнараваць праверкі на падобныя імёны (патрабуе правоў <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/bg.json b/AntiSpoof/i18n/bg.json
new file mode 100644
index 00000000..5a29e137
--- /dev/null
+++ b/AntiSpoof/i18n/bg.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borislav",
+ "DCLXVI",
+ "Spiritia",
+ "Stanqo",
+ "Vodnokon4e",
+ "StanProg"
+ ]
+ },
+ "antispoof-desc": "Блокиране на създаването на сметки, изписани с различни писмени системи, объркващи или подобни на други потребителски имена",
+ "antispoof-conflict-top": "Потребителското име „$1“ е твърде сходно със {{PLURAL:$2|следното потребителско име|следните потребителски имена}}:",
+ "antispoof-conflict-bottom": "Моля, изберете друго потребителско име.",
+ "antispoof-name-illegal": "Потребителското име „$1“ не е разрешено за защита от объркване или злоупотреби с имена: $2. Моля, изберете друго потребителско име!",
+ "antispoof-badtype": "Грешен тип на данните",
+ "antispoof-empty": "Празен низ",
+ "antispoof-blacklisted": "Съдържа забранен знак $1",
+ "antispoof-combining": "Започва със съставен знак $1",
+ "antispoof-unassigned": "Съдържа неопределен или нежелан знак $1",
+ "antispoof-deprecated": "Съдържа непрепоръчителен символ $1",
+ "antispoof-noletters": "Не съдържа букви",
+ "antispoof-mixedscripts": "Съдържа несъвместими писмени системи",
+ "antispoof-tooshort": "Каноничното име е твърде кратко",
+ "antispoof-ignore": "Игнорирай проверката на подобни имена",
+ "right-override-antispoof": "Пренебрегване на проверката на подобни имена"
+}
diff --git a/AntiSpoof/i18n/bho.json b/AntiSpoof/i18n/bho.json
new file mode 100644
index 00000000..ac4a86ba
--- /dev/null
+++ b/AntiSpoof/i18n/bho.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ganesh"
+ ]
+ },
+ "antispoof-conflict-bottom": "कृपया कउनो दुसर नाम चुनीं"
+}
diff --git a/AntiSpoof/i18n/bjn.json b/AntiSpoof/i18n/bjn.json
new file mode 100644
index 00000000..69fb82cb
--- /dev/null
+++ b/AntiSpoof/i18n/bjn.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ezagren",
+ "J Subhi"
+ ]
+ },
+ "antispoof-desc": "Blukir paulahan akun bangaran pamakai awan hurup-bacampur, mambingungakan, wan mirip",
+ "antispoof-conflict-top": "Si ngaran \"$1\" kamiripan awan {{PLURAL:$2|akun nang sudah ada|$2 akun barikut}}:",
+ "antispoof-conflict-bottom": "Muhun pilih ngaran nang lain.",
+ "antispoof-name-illegal": "Si ngaran \"$1\" kada dibulihakan hagan mancagah kabingungan atawa ngaran tipuan: $2.\nMuhun pilih ngaran nang lain.",
+ "antispoof-badtype": "Janis data buruk",
+ "antispoof-empty": "String kusung",
+ "antispoof-blacklisted": "Mangandung karaktir daptar-hirang",
+ "antispoof-combining": "Bamula awan ciri kumbinasi",
+ "antispoof-unassigned": "Mangandung karaktir kada dibariakan atawa kada dipuruk pulang",
+ "antispoof-noletters": "Kada baisi sa-asa hurup gin",
+ "antispoof-mixedscripts": "Mangandung hurup-bacampur kada kumpatibal",
+ "antispoof-tooshort": "Ngaran kanunicalisa kahandapan",
+ "antispoof-ignore": "Abaiakan pamariksaan panipuan akun",
+ "right-override-antispoof": "Abaiakan pamariksaan panipuan"
+}
diff --git a/AntiSpoof/i18n/bn.json b/AntiSpoof/i18n/bn.json
new file mode 100644
index 00000000..a531b193
--- /dev/null
+++ b/AntiSpoof/i18n/bn.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aftab1995",
+ "Bellayet",
+ "Nasir8891",
+ "Zaheen",
+ "Aftabuzzaman",
+ "Elias Ahmmad"
+ ]
+ },
+ "antispoof-desc": "মিশ্র-লিপিতে লেখা, কিংবা অস্পষ্ট ও একই রকম ব্যবহারকারী নাম দিয়ে অ্যাকাউন্ট সৃষ্টিতে বাধা দেবে",
+ "antispoof-conflict-top": "\"$1\" ব্যবহারকারী নামটি নিম্নলিখিত {{PLURAL:$2|ব্যবহারকারী নামের|ব্যবহারকারী নামগুলোর}} সাথে বেশ মিলে যায়:",
+ "antispoof-conflict-bottom": "অনুগ্রহ করে অন্য ব্যবহারকারী নাম বাছাই করুন।",
+ "antispoof-name-illegal": "বিভ্রান্তিকর বা ধাপ্পাবাজ ব্যবহারকারী নাম রোধ করতে \"$1\" ব্যবহারকারী নাম অনুমোদিত নয়: $2। দয়া করে অন্য ব্যবহারকারী নাম পছন্দ করুন।",
+ "antispoof-badtype": "তথ্যের ধরন ঠিক নেই",
+ "antispoof-empty": "খালি স্ট্রিং",
+ "antispoof-blacklisted": "নিষিদ্ধ বর্ণ বা অক্ষর $1 রয়েছে",
+ "antispoof-combining": "$1 সংযোগসূচক চিহ্ন দিয়ে শুরু হয়েছে",
+ "antispoof-unassigned": "$1 অপ্রযুক্ত বা অননুমোদিত ক্যারেক্টার ধারণ করে",
+ "antispoof-deprecated": "$1 অবচিত অক্ষর রয়েছে",
+ "antispoof-noletters": "কোন অক্ষর বা বর্ণ নাই",
+ "antispoof-mixedscripts": "বেমানান স্ক্রিপ্টের মিশ্রণ ধারণ করে",
+ "antispoof-tooshort": "স্বাভাবিককৃত নামটি খুবই ছোট",
+ "antispoof-ignore": "স্পুফিং চেক অগ্রাহ্য করো",
+ "right-override-antispoof": "স্পুফিং পরীক্ষা ওভাররাইড করো"
+}
diff --git a/AntiSpoof/i18n/bqi.json b/AntiSpoof/i18n/bqi.json
new file mode 100644
index 00000000..d4c2b106
--- /dev/null
+++ b/AntiSpoof/i18n/bqi.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri"
+ ]
+ },
+ "antispoof-empty": "رشنه حالی"
+}
diff --git a/AntiSpoof/i18n/br.json b/AntiSpoof/i18n/br.json
new file mode 100644
index 00000000..eba177ab
--- /dev/null
+++ b/AntiSpoof/i18n/br.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fohanno",
+ "Fulup",
+ "Y-M D"
+ ]
+ },
+ "antispoof-desc": "Stankañ a ra, dre ur skript kemmesk, krouidigezh kontoù dezho anvioù implijer heñvel pe a c'hall sevel amjestregezh diwarno",
+ "antispoof-conflict-top": "Heñvel betek re eo an anv \"$1\" da hini {{PLURAL:$2|anv implijer}}:",
+ "antispoof-conflict-bottom": "Dibabit un anv all mar plij.",
+ "antispoof-name-illegal": "N'eo ket aotreet ober gant an anv \"$1\" kuit da gemmeskañ gant un anv all pe da implijout an anv : $2.\nGrit gant un anv all mar plij.",
+ "antispoof-badtype": "Seurt roadennoù fall",
+ "antispoof-empty": "Neudennad goullo",
+ "antispoof-blacklisted": "Emañ an arouezenn berzet $1 e-barzh",
+ "antispoof-combining": "Kregiñ a ra gant ar merk kenaozet $1",
+ "antispoof-unassigned": "Un arouezenn dispredet pe dispisaet zo e-barzh",
+ "antispoof-deprecated": "Emañ an arouezenn dispredet $1 e-barzh",
+ "antispoof-noletters": "Lizherenn ebet e-barzh",
+ "antispoof-mixedscripts": "Meur a skript digenglotus zo e-barzh",
+ "antispoof-tooshort": "Anv skoueriekaet re verr",
+ "antispoof-ignore": "Chom hep gwiriañ hag-eñ n'eus ket un implijer all gantañ un anv damheñvel",
+ "right-override-antispoof": "Chom hep gwiriañ ha touellerezh zo"
+}
diff --git a/AntiSpoof/i18n/brx.json b/AntiSpoof/i18n/brx.json
new file mode 100644
index 00000000..c98347fd
--- /dev/null
+++ b/AntiSpoof/i18n/brx.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "ⓝⓘⓙⓦⓜ"
+ ]
+ },
+ "antispoof-conflict-bottom": "अननानै गुबुन बाहायमुं सायख'",
+ "antispoof-noletters": "जेबो हांखोफोर थाया"
+}
diff --git a/AntiSpoof/i18n/bs.json b/AntiSpoof/i18n/bs.json
new file mode 100644
index 00000000..684bc1ef
--- /dev/null
+++ b/AntiSpoof/i18n/bs.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Palapa",
+ "Semso98",
+ "Srdjan m"
+ ]
+ },
+ "antispoof-desc": "Blokira pravljenje računa sa miješanim slovima, zbunjujućim i sličnim korisničkim imenima",
+ "antispoof-conflict-top": "Korisničko ime \"$1\" previše je slično {{PLURAL:$2|sljedećem korisničkom imenu|sljedećim korisničkim imenima}}:",
+ "antispoof-conflict-bottom": "Izaberite drugo korisničko ime.",
+ "antispoof-name-illegal": "Korisničko ime \"$1\" nije dozvoljeno da bi se izbjegla zbunjujuća ili lažirana korisnička imena:\n$2.\nIzaberite drugo korisničko ime.",
+ "antispoof-badtype": "Pogrešna vrsta podataka",
+ "antispoof-empty": "Prazan unos",
+ "antispoof-blacklisted": "Sadrži nepoželjni znak $1",
+ "antispoof-combining": "Počinje sa znakom kombinacije $1",
+ "antispoof-unassigned": "Sadrži nedodijeljeni znak $1",
+ "antispoof-deprecated": "Sadrži zastarjeli znak $1",
+ "antispoof-noletters": "Ne sadrži ni jedno slovo",
+ "antispoof-mixedscripts": "Sadrži miješana slova koja nisu podržana",
+ "antispoof-tooshort": "Normalizirano ime je prekratko",
+ "antispoof-ignore": "Ignoriraj provjeru sličnosti",
+ "right-override-antispoof": "Zaobilaženje provjera korisničkog imena"
+}
diff --git a/AntiSpoof/i18n/ca.json b/AntiSpoof/i18n/ca.json
new file mode 100644
index 00000000..93e4a0f8
--- /dev/null
+++ b/AntiSpoof/i18n/ca.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arnaugir",
+ "Pginer",
+ "Qllach",
+ "SMP",
+ "Vriullop"
+ ]
+ },
+ "antispoof-desc": "Bloca la creació de comptes amb alfabets barrejats i noms d'usuari similars o que portin a confusió",
+ "antispoof-conflict-top": "El nom \"$1\" és massa similar {{PLURAL:$2|al nom d'usuari següent|als noms d'usuari següents}}:",
+ "antispoof-conflict-bottom": "Escolliu si us plau un altre nom.",
+ "antispoof-name-illegal": "No està permès usar el nom «$1» per evitar confusions o falsificacions amb els noms d'usuari: $2. Si us plau, escolliu un altre nom d'usuari.",
+ "antispoof-badtype": "Tipus de dades incorrecte",
+ "antispoof-empty": "Cadena buida",
+ "antispoof-blacklisted": "Conté el caràcter no permés $1",
+ "antispoof-combining": "Comença amb la marca de combinació $1",
+ "antispoof-unassigned": "Conté el caràcter no assignat $1",
+ "antispoof-deprecated": "Conté el caràcter obsolet $1",
+ "antispoof-noletters": "No conté cap lletra",
+ "antispoof-mixedscripts": "Conté una mescla incompatible d'escriptures",
+ "antispoof-tooshort": "Nom canònic massa curt",
+ "antispoof-ignore": "Ignora controls antispoof",
+ "right-override-antispoof": "Evitar el control de noms d'usuari"
+}
diff --git a/AntiSpoof/i18n/ce.json b/AntiSpoof/i18n/ce.json
new file mode 100644
index 00000000..db5d7216
--- /dev/null
+++ b/AntiSpoof/i18n/ce.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sasan700",
+ "Умар"
+ ]
+ },
+ "antispoof-desc": "Башх-башха абатийн элпашца декъашхойн дӀаяздарш кхолла цамаго.",
+ "antispoof-ignore": "Терго ма йе цхьатерра цӀерш юй хьажаран",
+ "right-override-antispoof": "цхьатерра цӀерш юй хьажар тергалцадар"
+}
diff --git a/AntiSpoof/i18n/ckb.json b/AntiSpoof/i18n/ckb.json
new file mode 100644
index 00000000..533c6ef9
--- /dev/null
+++ b/AntiSpoof/i18n/ckb.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak"
+ ]
+ },
+ "antispoof-ignore": "تاوتوێکردنی خەڵەتێنەکان لەبەر چاو مەگرە",
+ "right-override-antispoof": "تێپەڕاندنی تاوتوێی ناوە وەکوویەکەکان"
+}
diff --git a/AntiSpoof/i18n/co.json b/AntiSpoof/i18n/co.json
new file mode 100644
index 00000000..f9ce3035
--- /dev/null
+++ b/AntiSpoof/i18n/co.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "antispoof-badtype": "Tipu gattivu di dati"
+}
diff --git a/AntiSpoof/i18n/cs.json b/AntiSpoof/i18n/cs.json
new file mode 100644
index 00000000..a375a90c
--- /dev/null
+++ b/AntiSpoof/i18n/cs.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danny B.",
+ "Li-sung",
+ "Mormegil",
+ "Dvorapa"
+ ]
+ },
+ "antispoof-desc": "Brání vytváření účtů, jejichž jména jsou matoucí, podobná jiným uživatelům, nebo kombinují několik druhů písem",
+ "antispoof-conflict-top": "Uživatelské jméno „$1“ je příliš podobné {{PLURAL:$2|následujícímu uživatelskému jménu|následujícím uživatelským jménům}}:",
+ "antispoof-conflict-bottom": "Zvolte si prosím jiné uživatelské jméno.",
+ "antispoof-name-illegal": "Abychom předešli matoucím nebo napodobujícím uživatelským jménům, uživatelské jméno „$1“ není povoleno: $2.\nZvolte si prosím jiné uživatelské jméno.",
+ "antispoof-bad-char": "„$1“ ($2)",
+ "antispoof-badtype": "Špatný datový typ",
+ "antispoof-empty": "Prázdný řetězec",
+ "antispoof-blacklisted": "Obsahuje zakázaný znak $1",
+ "antispoof-combining": "Začíná kombinujícím diakritickým znakem $1",
+ "antispoof-unassigned": "Obsahuje nepřiřazený nebo zavržený znak",
+ "antispoof-deprecated": "Obsahuje zavržený znak $1",
+ "antispoof-noletters": "Neobsahuje žádné písmeno",
+ "antispoof-mixedscripts": "Obsahuje nepřípustnou kombinaci druhů písem",
+ "antispoof-tooshort": "Příliš krátké jméno po normalizaci",
+ "antispoof-ignore": "Neprovádět kontrolu matoucích jmen",
+ "right-override-antispoof": "Potlačení kontroly podobnosti uživatelských jmen"
+}
diff --git a/AntiSpoof/i18n/cy.json b/AntiSpoof/i18n/cy.json
new file mode 100644
index 00000000..cb78b07d
--- /dev/null
+++ b/AntiSpoof/i18n/cy.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr"
+ ]
+ },
+ "antispoof-desc": "Yn atal creu cyfrifon ag iddynt enwau o wyddorau cymysg, neu enwau dryslyd, neu enwau sy'n rhy debyg i enwau eraill",
+ "antispoof-conflict-top": "Mae'r enw \"$1\" yn rhy debyg i'r {{PLURAL:$2||cyfrif|$2 gyfrif|$2 chyfrif|$2 chyfrif|$2 cyfrif}} canlynol:",
+ "antispoof-conflict-bottom": "Dewiswch enw arall os gwelwch yn dda.",
+ "antispoof-name-illegal": "Ni chaniateir yr enw \"$1\" er mwyn osgoi cael enwau dryslyd neu gellweirus ar ddefnyddwyr: $2. Byddwch gystal â dewis enw gwahanol.",
+ "antispoof-badtype": "Math data gwallus",
+ "antispoof-empty": "Llinyn gwag",
+ "antispoof-blacklisted": "Yn cynnwys y nod gwaharddedig $1",
+ "antispoof-combining": "Yn dechrau gyda'r marc cyfuno $1",
+ "antispoof-unassigned": "Yn cynnwys y nod $1 nag ydyw wedi ei bennu",
+ "antispoof-deprecated": "Yn cynnwys y nod $1 sydd yn anghymeradwy",
+ "antispoof-noletters": "Nid yw'r enw'n cynnwys unrhyw lythyren",
+ "antispoof-mixedscripts": "Yn cynnwys gwyddorau cymysg anghydweddol",
+ "antispoof-tooshort": "Mae'r enw, ar ôl ei normaleiddio gan y meddalwedd, yn rhy fyr i'w drin a'i drafod.",
+ "antispoof-ignore": "Anwybydder gwirio am enwau gwallus",
+ "right-override-antispoof": "Anwybydder gwirio am enwau gwallus"
+}
diff --git a/AntiSpoof/i18n/da.json b/AntiSpoof/i18n/da.json
new file mode 100644
index 00000000..362f5f70
--- /dev/null
+++ b/AntiSpoof/i18n/da.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Christian List",
+ "Dittaeva",
+ "Froztbyte",
+ "Jan Friberg",
+ "Jon Harald Søby",
+ "Sarrus",
+ "Tjernobyl"
+ ]
+ },
+ "antispoof-desc": "Blokerer for oprettelse af konti med blandede tegnsæt, forvirrende eller lignende brugernavne",
+ "antispoof-conflict-top": "Navnet \"$1\" ligner for meget {{PLURAL:$2|den eksisterende konto|de følgende $2 konti}}:",
+ "antispoof-conflict-bottom": "Vælg et andet navn.",
+ "antispoof-name-illegal": "Navnet \"$1\" er ikke tilladt for at forhindre forvirrende eller efterlignede brugernavne: $2. Vælg venligst et andet navn.",
+ "antispoof-badtype": "Ugyldig datatype",
+ "antispoof-empty": "Tom streng",
+ "antispoof-blacklisted": "Indeholder det sortlistede tegn $1",
+ "antispoof-combining": "Begynder med kombinationstegnet $1",
+ "antispoof-unassigned": "Indeholder det ikke-tildelte tegn $1",
+ "antispoof-deprecated": "Indeholder det udfasede tegn $1",
+ "antispoof-noletters": "Indeholder ingen bogstaver",
+ "antispoof-mixedscripts": "Indeholder inkompatible, blandede tegnsæt",
+ "antispoof-tooshort": "Navnet er for kort",
+ "antispoof-ignore": "Ignorér misbrugskontrol",
+ "right-override-antispoof": "Omgå kontrollerne af brugernavne"
+}
diff --git a/AntiSpoof/i18n/de-ch.json b/AntiSpoof/i18n/de-ch.json
new file mode 100644
index 00000000..288f47fa
--- /dev/null
+++ b/AntiSpoof/i18n/de-ch.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geitost"
+ ]
+ },
+ "right-override-antispoof": "Die Benutzernamens-Ähnlichkeitsprüfung ausser Kraft setzen."
+}
diff --git a/AntiSpoof/i18n/de-formal.json b/AntiSpoof/i18n/de-formal.json
new file mode 100644
index 00000000..ed85f978
--- /dev/null
+++ b/AntiSpoof/i18n/de-formal.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Imre",
+ "Kghbln"
+ ]
+ },
+ "antispoof-conflict-bottom": "Bitte wählen Sie einen anderen Benutzernamen.",
+ "antispoof-name-illegal": "Der gewünschte Benutzername „$1“ ist nicht möglich. Grund: $2<br />Bitte wählen Sie einen anderen Benutzernamen."
+}
diff --git a/AntiSpoof/i18n/de.json b/AntiSpoof/i18n/de.json
new file mode 100644
index 00000000..74e9d291
--- /dev/null
+++ b/AntiSpoof/i18n/de.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geitost",
+ "Kghbln",
+ "Metalhead64",
+ "Raimond Spekking",
+ "Umherirrender",
+ "Crazy1880"
+ ]
+ },
+ "antispoof-desc": "Verhindert die Erstellung von Benutzerkonten mit gemischten Zeichensätzen, verwirrenden und ähnlichen Benutzernamen",
+ "antispoof-conflict-top": "Der Benutzername „$1“ ist {{PLURAL:$2|dem|den}} folgenden Benutzernamen zu ähnlich:",
+ "antispoof-conflict-bottom": "Bitte wähle einen anderen Benutzernamen.",
+ "antispoof-name-illegal": "Der gewünschte Benutzername „$1“ ist nicht möglich. Grund: $2<br />Bitte wähle einen anderen Benutzernamen.",
+ "antispoof-badtype": "Ungültiger Datentyp",
+ "antispoof-empty": "Leeres Feld",
+ "antispoof-blacklisted": "Das nicht zulässige Zeichen $1 ist enthalten.",
+ "antispoof-combining": "Er fängt mit einem Verbindungszeichen $1 an.",
+ "antispoof-unassigned": "Er enthält das nicht zugeordnete Zeichen $1.",
+ "antispoof-deprecated": "Er enthält das unzulässige Zeichen $1.",
+ "antispoof-noletters": "Er enthält keine Buchstaben.",
+ "antispoof-mixedscripts": "Er enthält Zeichen unterschiedlicher Schriftsysteme.",
+ "antispoof-tooshort": "Der normalisierte Benutzername ist zu kurz.",
+ "antispoof-ignore": "Ähnlichkeitsprüfung ignorieren",
+ "antispoof-ignore-help": "Ermöglicht Benutzern mit ausreichenden Rechten, ein Benutzerkonto zu erstellen, auch wenn sein Name mit einem vorhandenen Benutzerkonto ähnlich ist.",
+ "right-override-antispoof": "Die Benutzernamens-Ähnlichkeitsprüfung außer Kraft setzen",
+ "apihelp-antispoof-description": "Einen Benutzernamen in die Normalisierungsprüfung der Erweiterung AntiSpoof aufnehmen.",
+ "apihelp-antispoof-summary": "Einen Benutzernamen in die Normalisierungsprüfung der Erweiterung AntiSpoof aufnehmen.",
+ "apihelp-antispoof-param-username": "Der Benutzername, der mit der Erweiterung AntiSpoof geprüft werden soll.",
+ "apihelp-antispoof-example-1": "Den Benutzernamen „Foo“ mit der Erweiterung AntiSpoof überprüfen.",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignoriert die Prüfung auf Spoofing (erfordert die Berechtigung <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/diq.json b/AntiSpoof/i18n/diq.json
new file mode 100644
index 00000000..dbdef7b0
--- /dev/null
+++ b/AntiSpoof/i18n/diq.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Erdemaslancan",
+ "Gorizon",
+ "Xoser",
+ "Mirzali",
+ "Kumkumuk"
+ ]
+ },
+ "antispoof-desc": "Hesaban pê skriptê mîxî, nameyê munaneyî bloke keno",
+ "antispoof-conflict-top": "Ena nameyé \"$1\"i ena {{PLURAL:$2|Namey karberi|namey karbera}} zaf paweno:",
+ "antispoof-conflict-bottom": "Xorê yuna name bıvin",
+ "antispoof-name-illegal": "Namey şıma name dê \"$2\"ya pê nêvawiyo deye name dê $1 rê mısade çıni yo. \nYewna name weçine.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Tipê data yê xirabî",
+ "antispoof-empty": "Stringê vengî",
+ "antispoof-blacklisted": "$1'i miyan de karaktero xırab esto",
+ "antispoof-combining": "Sembol dê $1 grênayışi ra nata yeno",
+ "antispoof-unassigned": "$1 zerre de çiyo xırab esto",
+ "antispoof-deprecated": "$1 miyan de karaktero xırabın esto",
+ "antispoof-noletters": "Yew zi herf çini yo",
+ "antispoof-mixedscripts": "Te de skriptanê xeripîyaye esto",
+ "antispoof-tooshort": "Ena name zaf kilm o",
+ "antispoof-ignore": "Kontrolê spoofî rê diket meke",
+ "right-override-antispoof": "Kontrolanê spoofî override bike"
+}
diff --git a/AntiSpoof/i18n/dsb.json b/AntiSpoof/i18n/dsb.json
new file mode 100644
index 00000000..f9d86ae7
--- /dev/null
+++ b/AntiSpoof/i18n/dsb.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "antispoof-desc": "Blokěrujo napóranje kontow z měšanym pismom, mjerwjece a pódobne wužywarske mjenja",
+ "antispoof-conflict-top": "Mě \"$1\" jo pśepódobny {{PLURAL:$2|slědujucemu wužywarskemu mjenjeju|slědujucyma wužywarskima mjenjoma|slědujucym wužywarskim mjenjam}}:",
+ "antispoof-conflict-bottom": "Pšosym wubjeŕ druge mě.",
+ "antispoof-name-illegal": "Mě \"$1\" se njedowólujo, aby se mjerwjece abo manipulěrowane wužywarske mjenja wopinuli: $2. Wubjeŕ pšosym druge mě.",
+ "antispoof-badtype": "Wopacny datowy typ",
+ "antispoof-empty": "Prozne pólo",
+ "antispoof-blacklisted": "Wopśimujo njedowólone znamuško $1",
+ "antispoof-combining": "Zachopina se ze znamuškoweju kombinaciju $1",
+ "antispoof-unassigned": "Wopśimujo njepśirědowane abo njewitane znamuško",
+ "antispoof-deprecated": "Wopśimujo zestarjone znamuško $1",
+ "antispoof-noletters": "Njewopśimjejo pismiki",
+ "antispoof-mixedscripts": "Wopśimjejo znamješka z njekompatibelnych rozdźělnych pismow",
+ "antispoof-tooshort": "Kanonizěrowane mě jo pśekrotko.",
+ "antispoof-ignore": "Torjeńsku kontrolu ignorěrowaś",
+ "right-override-antispoof": "Kontrole pódobnosći wužywarskich mjenjow pódtłocyś"
+}
diff --git a/AntiSpoof/i18n/dtp.json b/AntiSpoof/i18n/dtp.json
new file mode 100644
index 00000000..4f07c44e
--- /dev/null
+++ b/AntiSpoof/i18n/dtp.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "FRANELYA"
+ ]
+ },
+ "antispoof-conflict-bottom": "Mangai alanai do suai ngaran."
+}
diff --git a/AntiSpoof/i18n/el.json b/AntiSpoof/i18n/el.json
new file mode 100644
index 00000000..191a1c71
--- /dev/null
+++ b/AntiSpoof/i18n/el.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Badseed",
+ "Dead3y3",
+ "Glavkos",
+ "Lou",
+ "Omnipaedista",
+ "ZaDiak",
+ "Stam.nikos",
+ "Geraki"
+ ]
+ },
+ "antispoof-desc": "Μπλοκάρει τη δημιουργία λογαριασμών με χαρακτήρες μικτής γραφής, συγχεχυμένα και παρόμοια ονόματα χρηστών.",
+ "antispoof-conflict-top": "Το όνομα χρήστη «$1» είναι υπερβολικά όμοιο με {{PLURAL:$2|το παρακάτω όνομα χρήστη|τα παρακάτω ονόματα χρηστών}}:",
+ "antispoof-conflict-bottom": "Παρακαλούμε επιλέξτε ένα διαφορετικό όνομα χρήστη.",
+ "antispoof-name-illegal": "Το όνομα χρήστη \"$1\" δεν επιτρέπεται, για την αποτροπή συγκεχυμένων ή απατηλών ονομάτων χρηστών: $2. Παρακαλούμε επιλέξτε ένα άλλο όνομα χρήστη.",
+ "antispoof-badtype": "Εσφαλμένος τύπος δεδομένων",
+ "antispoof-empty": "Κενή συμβολοσειρά",
+ "antispoof-blacklisted": "Περιέχει ανεπιθύμητο χαρακτήρα $1",
+ "antispoof-combining": "Αρχίζει με τον ειδικό χαρακτήρα $1",
+ "antispoof-unassigned": "Περιέχει μη καταχωρημένο χαρακτήρα $1",
+ "antispoof-noletters": "Δεν περιέχει καθόλου γράμματα",
+ "antispoof-mixedscripts": "Περιέχει ανεμιγμένους ασύμβατους χαρακτήρες γραπτού κειμένου",
+ "antispoof-tooshort": "Κανονικοποιημένο όνομα πολύ μικρό",
+ "antispoof-ignore": "Αγνόησε ελέγχους spoofing",
+ "right-override-antispoof": "Υπερκάλυψη των ελέγχων εξαπάτησης"
+}
diff --git a/AntiSpoof/i18n/en-gb.json b/AntiSpoof/i18n/en-gb.json
new file mode 100644
index 00000000..912818e9
--- /dev/null
+++ b/AntiSpoof/i18n/en-gb.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shirayuki",
+ "Dejavu"
+ ]
+ },
+ "antispoof-desc": "Blocks the creation of accounts with mixed-script, confusing and similar usernames",
+ "antispoof-conflict-top": "The username \"$1\" is too similar to the following {{PLURAL:$2|username|usernames}}:",
+ "antispoof-conflict-bottom": "Please choose another username.",
+ "antispoof-name-illegal": "The username \"$1\" is not allowed to prevent confusing or spoofed usernames: $2.\nPlease choose another username.",
+ "antispoof-badtype": "Bad data type",
+ "antispoof-empty": "Empty string",
+ "antispoof-blacklisted": "Contains blacklisted character $1",
+ "antispoof-combining": "Begins with combining mark $1",
+ "antispoof-unassigned": "Contains unassigned character $1",
+ "antispoof-deprecated": "Contains deprecated character $1",
+ "antispoof-noletters": "Does not contain any letters",
+ "antispoof-mixedscripts": "Contains incompatible mixed scripts",
+ "antispoof-tooshort": "Canonicalised name too short",
+ "antispoof-ignore": "Ignore spoofing checks",
+ "antispoof-ignore-help": "Allows users with sufficient privileges to create an account even if its name is similar to that of an existing account.",
+ "right-override-antispoof": "Override the spoofing checks",
+ "apihelp-antispoof-description": "Check a username against AntiSpoof's normalization checks.",
+ "apihelp-antispoof-param-username": "The username to check against AntiSpoof.",
+ "apihelp-antispoof-example-1": "Check username \"Foo\" against AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignore spoofing checks (requires the <code>override-antispoof</code> right)."
+}
diff --git a/AntiSpoof/i18n/en.json b/AntiSpoof/i18n/en.json
new file mode 100644
index 00000000..70a346ab
--- /dev/null
+++ b/AntiSpoof/i18n/en.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": []
+ },
+ "antispoof-desc": "Blocks the creation of accounts with mixed-script, confusing and similar usernames",
+ "antispoof-conflict-top": "The username \"$1\" is too similar to the following {{PLURAL:$2|username|usernames}}:",
+ "antispoof-conflict-item": "$1",
+ "antispoof-conflict-bottom": "Please choose another username.",
+ "antispoof-name-illegal": "The username \"$1\" is not allowed to prevent confusing or spoofed usernames: $2.\nPlease choose another username.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-bad-char-non-printable": "$1",
+ "antispoof-badtype": "Bad data type",
+ "antispoof-empty": "Empty string",
+ "antispoof-blacklisted": "Contains blacklisted character $1",
+ "antispoof-combining": "Begins with combining mark $1",
+ "antispoof-unassigned": "Contains unassigned character $1",
+ "antispoof-deprecated": "Contains deprecated character $1",
+ "antispoof-noletters": "Does not contain any letters",
+ "antispoof-mixedscripts": "Contains incompatible mixed scripts",
+ "antispoof-tooshort": "Normalized name too short",
+ "antispoof-ignore": "Ignore spoofing checks",
+ "antispoof-ignore-help": "Allows users with sufficient privileges to create an account even if its name is similar to that of an existing account.",
+ "right-override-antispoof": "Override the spoofing checks",
+ "apihelp-antispoof-description": "Check a username against AntiSpoof's normalisation checks.",
+ "apihelp-antispoof-summary": "Check a username against AntiSpoof's normalisation checks.",
+ "apihelp-antispoof-param-username": "The username to check against AntiSpoof.",
+ "apihelp-antispoof-example-1": "Check username \"Foo\" against AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignore spoofing checks (requires the <code>override-antispoof</code> right)."
+}
diff --git a/AntiSpoof/i18n/eo.json b/AntiSpoof/i18n/eo.json
new file mode 100644
index 00000000..cd91348a
--- /dev/null
+++ b/AntiSpoof/i18n/eo.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tlustulimu",
+ "Yekrats",
+ "KuboF"
+ ]
+ },
+ "antispoof-desc": "Blokas la kreadon de kontoj kun miksitaj alfabetaj, konfuzemaj, kaj similaj salutnomoj",
+ "antispoof-conflict-top": "La nomo \"$1\" tro similas al la {{PLURAL:$2|jenan konton|jenajn $2 kontojn}}:",
+ "antispoof-conflict-bottom": "Bonvolu elekti alian nomon.",
+ "antispoof-name-illegal": "La nomo \"$1\" ne estas permesita por preventi konfuzigemajn aŭ trompajn uzantnomojn: $2. Bonvolu elekti alian nomon.",
+ "antispoof-badtype": "Malvalida datumtipo",
+ "antispoof-empty": "Malplena bitĉeno",
+ "antispoof-blacklisted": "Enhavas literojn el nigra listo $1",
+ "antispoof-combining": "Komencas kun kuniga marko $1",
+ "antispoof-unassigned": "Enhavas neatribuitan signon $1",
+ "antispoof-deprecated": "Enhavas evitindan signon $1",
+ "antispoof-noletters": "Enhavas neniujn literojn",
+ "antispoof-mixedscripts": "Enhavas nekompatibilajn miksajn skriptojn",
+ "antispoof-tooshort": "Ordigita nomo estas tro mallonga",
+ "antispoof-ignore": "Ignori kontroladon de trompado",
+ "right-override-antispoof": "Superebligi la artifikajn kontrolojn."
+}
diff --git a/AntiSpoof/i18n/es.json b/AntiSpoof/i18n/es.json
new file mode 100644
index 00000000..cdb34bfd
--- /dev/null
+++ b/AntiSpoof/i18n/es.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Armando-Martin",
+ "Cvmontuy",
+ "Fitoschido",
+ "Icvav",
+ "Locos epraix",
+ "Platonides",
+ "Remember the dot",
+ "Sanbec",
+ "Titoxd",
+ "VegaDark",
+ "Themasterriot",
+ "Ryo567",
+ "Macofe",
+ "MarcoAurelio",
+ "Dgstranz",
+ "Tusca"
+ ]
+ },
+ "antispoof-desc": "Previene la creación de cuentas de usuario nuevas que tengan nombres confusos, similares a nombres existentes, o con alfabetos mixtos.",
+ "antispoof-conflict-top": "El nombre «$1» es muy similar al de {{PLURAL:$2|la siguiente cuenta|las siguientes cuentas}}:",
+ "antispoof-conflict-bottom": "Elige otro nombre de usuario.",
+ "antispoof-name-illegal": "El nombre «$1» no está permitido para evitar nombres de usuario confusos o suplantaciones: $2. Por favor, elige otro nombre.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Tipo de dato erróneo",
+ "antispoof-empty": "Texto vacío",
+ "antispoof-blacklisted": "Contiene el carácter no permitido $1",
+ "antispoof-combining": "Comienza por la marca de combinación $1",
+ "antispoof-unassigned": "Contiene el carácter sin asignar $1",
+ "antispoof-deprecated": "Contiene el carácter desaconsejado $1",
+ "antispoof-noletters": "No contiene letras",
+ "antispoof-mixedscripts": "Contiene una mezcla incompatible de alfabetos",
+ "antispoof-tooshort": "Nombre normalizado demasiado corto",
+ "antispoof-ignore": "Ignorar comprobaciones contra suplantaciones",
+ "antispoof-ignore-help": "Permite a los usuarios que tengan suficientes privilegios crear una cuenta incluso aunque su nombre sea similar al de una cuenta existente.",
+ "right-override-antispoof": "Anula las comprobaciones de suplantación",
+ "apihelp-antispoof-description": "Comprobar un nombre de usuario contra las comprobación de normalización del sistema AntiSpoof",
+ "apihelp-antispoof-param-username": "El nombre de usuario a comprobar contra el sistema AntiSpoof.",
+ "apihelp-antispoof-example-1": "Comprobar nombre de usuario \"Foo\" contra el sistema AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorar verificación contra la suplantación de identidad (antispoof) (necesita el permiso <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/et.json b/AntiSpoof/i18n/et.json
new file mode 100644
index 00000000..1cd4f3ed
--- /dev/null
+++ b/AntiSpoof/i18n/et.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pikne"
+ ]
+ },
+ "antispoof-desc": "Blokeerib erinevaid kirjasüsteeme kasutavate, eksitavate ja sarnaste kasutajanimedega kontode loomise.",
+ "antispoof-conflict-top": "Kasutajanimi \"$1\" on liiga sarnane {{PLURAL:$2|järgmise kasutajanimega|järgmiste kasutajanimedega}}:",
+ "antispoof-conflict-bottom": "Palun vali teine kasutajanimi.",
+ "antispoof-name-illegal": "Kasutajanimi \"$1\" ei ole lubatud, et vältida eksitavaid või tüssavaid kasutajanimesid: $2.\nPalun vali teistsugune kasutajanimi.",
+ "antispoof-badtype": "Halb andmetüüp",
+ "antispoof-empty": "Tühi sõne",
+ "antispoof-blacklisted": "Sisaldab mustas nimekirjas olevat märki $1.",
+ "antispoof-combining": "Algab kombineeruva märgiga $1.",
+ "antispoof-unassigned": "Sisaldab kinnistamata märki $1.",
+ "antispoof-deprecated": "Sisaldab ebasoovitatavat märki $1.",
+ "antispoof-noletters": "Ei sisalda ühtegi tähte",
+ "antispoof-mixedscripts": "Sisaldab ühildumatuid kirjasüsteeme",
+ "antispoof-tooshort": "Normaliseeritud nimi on liiga lühike",
+ "antispoof-ignore": "Eira sarnasuskontrolle",
+ "right-override-antispoof": "Alistada sarnasuskontrollid",
+ "apihelp-antispoof-description": "Kasutajanime kontrollimine tüssamisvastaste normaliseerimiskontrollide vastu.",
+ "apihelp-antispoof-param-username": "Kasutajanimi, mida tüssamisvastase kontrolli vastu kontrollida.",
+ "apihelp-antispoof-example-1": "Kontrolli kasutajanime \"Foo\" tüssamisvastase kontrolli vastu"
+}
diff --git a/AntiSpoof/i18n/eu.json b/AntiSpoof/i18n/eu.json
new file mode 100644
index 00000000..8e45a015
--- /dev/null
+++ b/AntiSpoof/i18n/eu.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joxemai",
+ "Kobazulo"
+ ]
+ },
+ "antispoof-conflict-bottom": "Mesedez, beste izen bat aukeratu.",
+ "antispoof-name-illegal": "\"$1\" izena ez dago onartuta gaizkiulertuak saihesteko: $2. Beste izen bat hautatu mesedez.",
+ "antispoof-badtype": "Datu mota ezegokia",
+ "antispoof-empty": "Kate hutsa",
+ "antispoof-noletters": "Ez dauka letrarik",
+ "antispoof-tooshort": "Izen kanonikoa laburregia"
+}
diff --git a/AntiSpoof/i18n/fa.json b/AntiSpoof/i18n/fa.json
new file mode 100644
index 00000000..a827de31
--- /dev/null
+++ b/AntiSpoof/i18n/fa.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ebraminio",
+ "Hooshmand.hasannia",
+ "Huji",
+ "Omidh",
+ "Reza1615",
+ "Surena",
+ "ZxxZxxZ",
+ "Dalba"
+ ]
+ },
+ "antispoof-desc": "از ایجاد حساب‌های کاربری با حروف مختلط، گیج‌کننده یا مشابه با دیگر حساب‌های کاربری جلوگیری می‌کند",
+ "antispoof-conflict-top": "نام کاربری «$1» خیلی به {{PLURAL:$2|این حساب کاربری|این حساب‌های کاربری}} شباهت دارد.",
+ "antispoof-conflict-bottom": "لطفا نام کاربری دیگری انتخاب کنید.",
+ "antispoof-name-illegal": "نام کاربری «$1» به دلیل جلوگیری از نام‌های کاربری سردرگم‌کننده یا جعلی مجاز نیست: $2. لطفاً نام دیگری انتخاب کنید.",
+ "antispoof-badtype": "داده با نوع نامناسب",
+ "antispoof-empty": "رشتهٔ خالی",
+ "antispoof-blacklisted": "حاوی نویسهٔ $1 است که در فهرست سیاه قرار دارد",
+ "antispoof-combining": "با علامت جمع $1 شروع می‌شود",
+ "antispoof-unassigned": "دارای نویسه‌های تعیین‌نشده یا نامناسب است",
+ "antispoof-deprecated": "شامل نویسهٔ قبیح $1",
+ "antispoof-noletters": "دربردارندهٔ هیچ حرفی نیست.",
+ "antispoof-mixedscripts": "حاوی نویسه‌های مختلط ناسازگار است",
+ "antispoof-tooshort": "نام متعارف خیلی کوتاه است",
+ "antispoof-ignore": "نادیده‌گرفتن بررسی عبارات سردرگم‌کننده",
+ "right-override-antispoof": "گذر از بررسی عبارات سردرگم‌کننده",
+ "apihelp-antispoof-description": "بررسی یک نام‌ کاربری بر طبق نرمال‌سازی‌های ضدجعل.",
+ "apihelp-antispoof-param-username": "نام کاربری‌ای که با ضدجعل بررسی می‌شود.",
+ "apihelp-antispoof-example-1": "بررسی نام کاربر «Foo» با ضدجعل",
+ "apihelp-createaccount-param-ignoreantispoof": "نادیده‌گرفتن بررسی عبارات سردرگم‌کننده (نیازمند دسترسی <code>override-antispoof</code> است)"
+}
diff --git a/AntiSpoof/i18n/fi.json b/AntiSpoof/i18n/fi.json
new file mode 100644
index 00000000..29e8725f
--- /dev/null
+++ b/AntiSpoof/i18n/fi.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Crt",
+ "Linnea",
+ "Nike",
+ "Samoasambia",
+ "Silvonen",
+ "Str4nd",
+ "Pyscowicz"
+ ]
+ },
+ "antispoof-desc": "Estää käyttäjätunnusten luonnin, jos ne sisältävät eri kirjoitusjärjestelmiä, harhaanjohtavia tai samankaltaisia käyttäjätunnuksia.",
+ "antispoof-conflict-top": "Tunnus ”$1” on liian samankaltainen kuin seuraava(t)\n{{PLURAL:$2|tunnus|tunnusta}}:",
+ "antispoof-conflict-bottom": "Valitse toinen käyttäjänimi.",
+ "antispoof-name-illegal": "Tunnusta ”$1” ei sallita, koska $2. Hämäävien tai huijaustarkoitukseen sopivien tunnusten luonti on estetty. Valitse toinen tunnus.",
+ "antispoof-badtype": "Virheellinen tietotyyppi",
+ "antispoof-empty": "Tyhjä merkkijono",
+ "antispoof-blacklisted": "Sisältää kielletyn merkin $1",
+ "antispoof-combining": "Alkaa yhdistävällä merkillä $1",
+ "antispoof-unassigned": "Sisältää määrittämättömiä merkkejä $1",
+ "antispoof-deprecated": "Sisältää kielletyn merkin $1",
+ "antispoof-noletters": "Ei sisällä mitään kirjaimia",
+ "antispoof-mixedscripts": "se sisältää yhteensopimattomia kirjoitusjärjestelmiä",
+ "antispoof-tooshort": "Normalisoitu nimi liian lyhyt",
+ "antispoof-ignore": "Älä käytä hämäävien tunnusten tarkistusta",
+ "right-override-antispoof": "Ohittaa tarkastukset samankaltaisista tai epäilyttävistä käyttäjätunnuksista"
+}
diff --git a/AntiSpoof/i18n/fo.json b/AntiSpoof/i18n/fo.json
new file mode 100644
index 00000000..21dd2c42
--- /dev/null
+++ b/AntiSpoof/i18n/fo.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "EileenSanda"
+ ]
+ },
+ "antispoof-desc": "Blokkerar fyri upprættan av konti við blandaðum teknum, forvirrandi ella líknandi brúkaranøvnum",
+ "antispoof-conflict-top": "Navnið \"$1\" líkist ov nógv fylgjandi {{PLURAL:$2|brúkaranavni|brúkaranøvnum}}:",
+ "antispoof-conflict-bottom": "Vinarliga vel eitt annað navn.",
+ "antispoof-name-illegal": "Navnið \"$1\" er ikki loyvt til tess at fyribyrgja følsk ella forvirrandi brúkaranøvn: $2.",
+ "antispoof-badtype": "Ringt slag av data.",
+ "antispoof-empty": "Tøm strongin",
+ "antispoof-blacklisted": "Inniheldur tekn sum eru á svaralista $1",
+ "antispoof-combining": "Byrjar við kombinatións tekni $1",
+ "antispoof-unassigned": "Inniheldur óbrúktar bókstavar $1",
+ "antispoof-deprecated": "Inniheldur ikki loyvda teknið $1",
+ "antispoof-noletters": "Inniheldur ikki nakran bókstav",
+ "antispoof-tooshort": "Navnið er ov stutt",
+ "antispoof-ignore": "Síggj burtur frá \"spoofing\" kanning",
+ "apihelp-antispoof-param-username": "Brúkaranavnið ið skal kannast móti AntiSpoof.",
+ "apihelp-antispoof-example-1": "Kanna brúkaranavnið \"Foo\" móti AntiSpoof"
+}
diff --git a/AntiSpoof/i18n/fr.json b/AntiSpoof/i18n/fr.json
new file mode 100644
index 00000000..63e8adcd
--- /dev/null
+++ b/AntiSpoof/i18n/fr.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "DavidL",
+ "Gomoko",
+ "Grondin",
+ "IAlex",
+ "Louperivois",
+ "PieRRoMaN",
+ "Sherbrooke",
+ "Urhixidur",
+ "Verdy p",
+ "Yasten",
+ "Mattho69",
+ "Wladek92"
+ ]
+ },
+ "antispoof-desc": "Bloque la création de comptes ayant des noms d’utilisateur similaires, utilisant diverses écritures, ou pouvant prêter à confusion",
+ "antispoof-conflict-top": "Le nom « $1 » ressemble trop {{PLURAL:$2|à l’utilisateur suivant|aux utilisateurs suivants}} :",
+ "antispoof-conflict-bottom": "Veuillez choisir un autre nom d'utilisateur.",
+ "antispoof-name-illegal": "Le nom d'utilisateur « $1 » n'est pas autorisé, afin d'éviter la confusion ou à l'usurpation de noms d'utilisateur: $2.\nVeuillez choisir un autre nom d'utilisateur.",
+ "antispoof-bad-char": "‹$1› ($2)",
+ "antispoof-badtype": "Mauvais type de données",
+ "antispoof-empty": "Chaîne vide",
+ "antispoof-blacklisted": "Contient le caractère interdit $1",
+ "antispoof-combining": "Commence avec une marque combinatoire $1",
+ "antispoof-unassigned": "Contient un caractère non assigné $1",
+ "antispoof-deprecated": "Contient le caractère désuet $1",
+ "antispoof-noletters": "Ne contient aucune lettre",
+ "antispoof-mixedscripts": "Contient plusieurs écritures incompatibles",
+ "antispoof-tooshort": "Nom normalisé trop court",
+ "antispoof-ignore": "Ignorer la vérification de similitude avec les utilisateurs existants",
+ "antispoof-ignore-help": "Permet aux utilisateurs ayant des privilèges suffisants de créer un compte, même si son nom est similaire à celui d'un compte existant.",
+ "right-override-antispoof": "Court-circuiter les vérifications de tromperie",
+ "apihelp-antispoof-description": "Vérifier un nom d’utilisateur d’après les contrôles de normalisation AntiSpoof.",
+ "apihelp-antispoof-summary": "Contrôler un nom d’utilisateur d’après la normalisation de AntiSpoof.",
+ "apihelp-antispoof-param-username": "Le nom d’utilisateur à vérifier d’après AntiSpoof.",
+ "apihelp-antispoof-example-1": "Vérifier le nom d’utilisateur « Foo » d’après AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorer les contrôles d’usurpation (nécessite le droit <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/frc.json b/AntiSpoof/i18n/frc.json
new file mode 100644
index 00000000..2b0f57f9
--- /dev/null
+++ b/AntiSpoof/i18n/frc.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "JeanVoisin",
+ "Hangmanwa7id"
+ ]
+ },
+ "antispoof-name-illegal": "Le nom \"$1\" est pas permit pour empêcher de confondre ou d'user le nom \"$2\". Choisissez donc un autre nom.",
+ "antispoof-badtype": "Mauvaise qualité d'information",
+ "antispoof-empty": "Chaîne vide",
+ "antispoof-blacklisted": "Contient le caractère pas permit $1",
+ "antispoof-combining": "Commence avec la marque combinée $1",
+ "antispoof-unassigned": "Contient le caractère pas assigné ou désapprouvé $1",
+ "antispoof-deprecated": "Contient le caractère désuet $1",
+ "antispoof-noletters": "Contient pas de lettres",
+ "antispoof-mixedscripts": "Contient plusieurs scripts qui s'adonnont pas",
+ "antispoof-tooshort": "Le nom choisi est trop court"
+}
diff --git a/AntiSpoof/i18n/frp.json b/AntiSpoof/i18n/frp.json
new file mode 100644
index 00000000..5952ded7
--- /dev/null
+++ b/AntiSpoof/i18n/frp.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "antispoof-desc": "Dèfend la crèacion de comptos qu’utilisont un mouél d’ècritures avouéc des noms d’usanciér semblâblos, ou ben que pôvont prétar a confusion.",
+ "antispoof-conflict-top": "Lo nom « $1 » est trop pariér {{PLURAL:$2|u compto ègzistent|a cetos $2 comptos}} :",
+ "antispoof-conflict-bottom": "Volyéd chouèsir un ôtro nom.",
+ "antispoof-name-illegal": "Lo nom d’usanciér « $1 » est pas ôtorisâ por empachiér de confondre ou ben d’utilisar lo nom « $2 ».\nVolyéd chouèsir un ôtro nom.",
+ "antispoof-badtype": "Crouyo tipo de balyês",
+ "antispoof-empty": "Chêna voueda",
+ "antispoof-blacklisted": "Contint lo caractèro de la lista nêre $1",
+ "antispoof-combining": "Comence avouéc na mârca combinâye $1",
+ "antispoof-unassigned": "Contint lo caractèro pas assignê $1",
+ "antispoof-deprecated": "Contint lo caractèro dèfendu $1",
+ "antispoof-noletters": "Contint gins de lètra.",
+ "antispoof-mixedscripts": "Contint un mouél d’ècritures que vont pas avouéc.",
+ "antispoof-tooshort": "Nom canonico trop côrt",
+ "antispoof-ignore": "Ignorar los contrôlos de frôda",
+ "right-override-antispoof": "Ignorar los contrôlos de frôda"
+}
diff --git a/AntiSpoof/i18n/frr.json b/AntiSpoof/i18n/frr.json
new file mode 100644
index 00000000..423d879f
--- /dev/null
+++ b/AntiSpoof/i18n/frr.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Murma174"
+ ]
+ },
+ "antispoof-desc": "Ferhanert det iinrachten faan brükerkontos mä aparte tiakens of nöömer, diar dü lacht ferwaksle könst",
+ "antispoof-conflict-top": "Di brükernööm „$1“ as bal disalew üs {{PLURAL:$2|didiar brükernööm|jodiar $2 brükernöömer}}:",
+ "antispoof-conflict-bottom": "Wees so gud an nem en öödern brükernööm.",
+ "antispoof-name-illegal": "Didiar brükernööm „$1“ gongt ei. Grünj: $2<br />Wees so gud an nem en öödern nööm.",
+ "antispoof-badtype": "Ferkiard dooten-typ",
+ "antispoof-empty": "Leesag fial",
+ "antispoof-blacklisted": "Diar as det ei tuläät tiaken $1 uun.",
+ "antispoof-combining": "Begant mä en ferbinjangs-tiaken $1",
+ "antispoof-unassigned": "Diar as det ünbekäänd tiaken $1 uun.",
+ "antispoof-deprecated": "Diar as det ei tuläät tiaken $1 uun.",
+ "antispoof-noletters": "Diar san nian buksteewen uun.",
+ "antispoof-mixedscripts": "Diar san tiakens faan ünlik skraft-süsteemen uun.",
+ "antispoof-tooshort": "Di nööm as tu kurt.",
+ "antispoof-ignore": "Ei efter nai nöömer schük",
+ "right-override-antispoof": "Det preew efter ünpaasin nöömer hialandaal ufstel",
+ "apihelp-antispoof-description": "En brükernööm uun det normoolisiarangs-preew faan AntiSpoof apnem.",
+ "apihelp-antispoof-param-username": "Di brükernööm, di mä AntiSpoof preewet wurd skal.",
+ "apihelp-antispoof-example-1": "Di brükernööm „Foo“ mä AntiSpoof preewe.",
+ "apihelp-createaccount-param-ignoreantispoof": "Auergongt det spoofing-preew (wan det rocht <code>override-antispoof</code> föörleit)."
+}
diff --git a/AntiSpoof/i18n/gd.json b/AntiSpoof/i18n/gd.json
new file mode 100644
index 00000000..d3ba3f52
--- /dev/null
+++ b/AntiSpoof/i18n/gd.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "GunChleoc"
+ ]
+ },
+ "antispoof-desc": "Bacaidh seo cruthachadh chunntasan le ainm-cleachdaiche sa bheil sgriobt measgaichte, a tha breisleachail no ro choltach air ainm eile",
+ "antispoof-conflict-top": "Tha an t-ainm \"$1\" ro coltach ris {{PLURAL:$2|an ainm|na h-ainmean}} seo:",
+ "antispoof-conflict-bottom": "Feuch an tagh thu ainm eile.",
+ "antispoof-name-illegal": "Chan eil an t-ainm \"$1\" ceadaichte a chum dìona o ainmean-cleachdaiche a tha ro choltach ri chèile no a bheir an car à ainm eile: $2.\nFeuch an tagh thu ainm eile.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Droch sheòrsa dàta",
+ "antispoof-empty": "Sreang falamh",
+ "antispoof-blacklisted": "Tha caractar ann a tha air an dubh-liosta: $1",
+ "antispoof-combining": "Tha e a' tòiseachadh le comharra nasgach: $1",
+ "antispoof-unassigned": "Tha caractar gun sònrachadh ann: $1",
+ "antispoof-deprecated": "Tha caractar ann nach molar tuilleadh: $1",
+ "antispoof-noletters": "Chan eil litir ann",
+ "antispoof-mixedscripts": "Tha sgriobtaichean measgaichte neo-chòrdail ann",
+ "antispoof-ignore": "Leig seachad an dearbhadh nach dèid car a thoirt às",
+ "right-override-antispoof": "Tar-àithn an dearbhadh nach dèid car a thoirt às"
+}
diff --git a/AntiSpoof/i18n/gl.json b/AntiSpoof/i18n/gl.json
new file mode 100644
index 00000000..0835c4fc
--- /dev/null
+++ b/AntiSpoof/i18n/gl.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alma",
+ "Toliño",
+ "Banjo",
+ "Elisardojm"
+ ]
+ },
+ "antispoof-desc": "Bloquea a creación de contas con escrituras mesturadas, confusas ou con nomes de usuario similares",
+ "antispoof-conflict-top": "O nome de usuario \"$1\" é moi similar {{PLURAL:$2|ao seguinte nome|aos seguintes nomes}} de usuario:",
+ "antispoof-conflict-bottom": "Por favor, escolle outro nome de usuario.",
+ "antispoof-name-illegal": "O nome de usuario \"$1\" non está permitido para evitar confusións ou enganos cos seguintes nomes de usuario: $2. Por favor, escolla outro nome de usuario.",
+ "antispoof-badtype": "Tipo de datos incorrecto",
+ "antispoof-empty": "Cadea baleira",
+ "antispoof-blacklisted": "Contén o carácter $1, presente na lista negra",
+ "antispoof-combining": "Comeza coa marca combinatoria $1",
+ "antispoof-unassigned": "Contén o carácter sen asignar $1",
+ "antispoof-deprecated": "Contén o carácter rexeitado $1",
+ "antispoof-noletters": "Non contén ningunha letra",
+ "antispoof-mixedscripts": "Contén guións incompatibles mesturados",
+ "antispoof-tooshort": "Nome normalizado curto de máis",
+ "antispoof-ignore": "Ignorar as comprobacións de engaños (spoofing)",
+ "antispoof-ignore-help": "Permite ós usuarios con permisos axeitados crear unha conta incluso se o seu nome é semellante ó dunha conta xa existente.",
+ "right-override-antispoof": "Ignorar as comprobacións de engaños (spoofing)",
+ "apihelp-antispoof-description": "Comprobar un nome de usuario coas comprobacións de normalización de AntiSpoof",
+ "apihelp-antispoof-summary": "Comprobar un nome de usuario coas comprobacións de normalización de AntiSpoof",
+ "apihelp-antispoof-param-username": "Nome de usuario a comprobar có AntiSpoof",
+ "apihelp-antispoof-example-1": "Comprobar nome de usuario \"Foo\" có AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorar comprobación de enganos (spoofing) (require o permiso <code>override-antispoof</code>)"
+}
diff --git a/AntiSpoof/i18n/gor.json b/AntiSpoof/i18n/gor.json
new file mode 100644
index 00000000..51b780a7
--- /dev/null
+++ b/AntiSpoof/i18n/gor.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Marwan Mohamad"
+ ]
+ },
+ "antispoof-conflict-bottom": "Toduwolo molulawoto tanggulo ohu'uwo uwewo",
+ "antispoof-badtype": "Tipe data tilala",
+ "antispoof-empty": "Data kosongi"
+}
diff --git a/AntiSpoof/i18n/grc.json b/AntiSpoof/i18n/grc.json
new file mode 100644
index 00000000..9949e6a5
--- /dev/null
+++ b/AntiSpoof/i18n/grc.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Omnipaedista"
+ ]
+ },
+ "antispoof-conflict-bottom": "Ἐπίλεξαι ἕτερον ὄνομα.",
+ "antispoof-badtype": "Κακὸς τύπος δεδομένων",
+ "antispoof-empty": "Κενὴ συμβολοσειρά",
+ "right-override-antispoof": "Ὑπερκάλυψις τῶν ἐλέγχων ἐξαπατήσεως"
+}
diff --git a/AntiSpoof/i18n/gsw.json b/AntiSpoof/i18n/gsw.json
new file mode 100644
index 00000000..8e1d71ac
--- /dev/null
+++ b/AntiSpoof/i18n/gsw.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Holder",
+ "Hendergassler"
+ ]
+ },
+ "antispoof-desc": "Verhinderet s Aalege vu Benutzerkonte mit gmischlete Zeichesätz, Benutzernäme wu verwirre oder ähnligs",
+ "antispoof-conflict-top": "Dr Name „$1“ isch {{PLURAL:$2|däm Benutzerkonto|däne $2 Benutzerkonte}} zue ähnli:",
+ "antispoof-conflict-bottom": "Bitte wehl e andere Name.",
+ "antispoof-name-illegal": "Dr Name \"$1\" isch nit gstattet, wel s e Problem chennt gee mit \"$2\". <br />Nimm e andre Name.",
+ "antispoof-badtype": "Datetyp isch nit giltig.",
+ "antispoof-empty": "Läär Fäld",
+ "antispoof-blacklisted": "S het s Zeiche $1 din, wu nit zuelässig isch.",
+ "antispoof-combining": "Fangt aa mit Verbindigszeiche $1",
+ "antispoof-unassigned": "S het s Zeiche $1 din, wo nit zuegordnet oder nit gwinscht isch.",
+ "antispoof-deprecated": "S het s veraltet Zeiche $1 din.",
+ "antispoof-noletters": "S sin kaini Buechstabe din.",
+ "antispoof-mixedscripts": "S sin Zeiche vo unterschidlige Schriftsyschtem din enthalte.",
+ "antispoof-tooshort": "Dr kanonisiert Name isch z churz.",
+ "antispoof-ignore": "Ignorier d Ähnlichkeitspriefig",
+ "right-override-antispoof": "D Benutzernäme-Ähnligkeitspriefig usser Chraft setze"
+}
diff --git a/AntiSpoof/i18n/gu.json b/AntiSpoof/i18n/gu.json
new file mode 100644
index 00000000..3dbf7024
--- /dev/null
+++ b/AntiSpoof/i18n/gu.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ashok modhvadia",
+ "Dsvyas",
+ "KartikMistry"
+ ]
+ },
+ "antispoof-desc": "મિક્સ્ડ-સ્ક્રિપ્ટ, ગૂંચવણ અને સમાન સભ્યનામો વાળા ખાતાં ખોલવા પર પ્રતિબંધ મુકે છે",
+ "antispoof-conflict-top": "ઈચ્છિત સભ્યનામ \"$1\" નીચેના {{PLURAL:$2|સભ્યનામ|સભ્યનામો}} સાથે ઘણું મળતું આવે છે:",
+ "antispoof-conflict-bottom": "\"મહેરબાની કરી બીજું સભ્યનામ પસંદ કરો:\"",
+ "antispoof-name-illegal": "સંભવત: ગૂંચવણ કે છેતરામણી જનક સભ્યનામ $2 અટકાવવાના હેતુથી સભ્યનામ \"$1\"ની છૂટ નથી.\nકૃપા કરી અન્ય નામ પસંદ કરો.",
+ "antispoof-badtype": "ખરાબ માહિતી પ્રકાર",
+ "antispoof-empty": "ખાલી વાક્ય",
+ "antispoof-blacklisted": "પ્રતિબંધિત અક્ષર $1 ધરાવે છે",
+ "antispoof-combining": "સંયોજક નિશાની $1 થી શરૂ થાય છે",
+ "antispoof-unassigned": "અનિર્દિષ્ટ અક્ષર $1 ધરાવે છે",
+ "antispoof-deprecated": "અનિર્દિષ્ટ અક્ષર $1 ધરાવે છે",
+ "antispoof-noletters": "આમાં એકપણ અક્ષર નથી",
+ "antispoof-mixedscripts": "અસંગત મિક્સ્ડ સ્ક્રિપ્ટ્સ ધરાવે છે",
+ "antispoof-tooshort": "સંક્ષિપ્ત કરેલું નામ ખૂબ નાનું છે",
+ "antispoof-ignore": "છેતરામણી પરિક્ષણને અવગણો",
+ "right-override-antispoof": "છેતરામણી પરિક્ષણની ઉપરવટ જાવ"
+}
diff --git a/AntiSpoof/i18n/hak.json b/AntiSpoof/i18n/hak.json
new file mode 100644
index 00000000..35cfbcf7
--- /dev/null
+++ b/AntiSpoof/i18n/hak.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "EagerLin",
+ "Hakka"
+ ]
+ },
+ "antispoof-name-illegal": "Yung-fu-miàng \"$1\" yi-lâu Yung-fu-miàng \"$2\" fun-chha̍p, yí-kîn pûn kim-chṳ́ sṳ́-yung. Chhiáng sṳ́-yung khì-thâ ke yung-fu-miàng.",
+ "antispoof-badtype": "Chho-ngu ke chṳ̂-liau lui-hìn/錯誤个數據類型",
+ "antispoof-empty": "Khûng-pha̍k sṳ-chhon/空白字串",
+ "antispoof-blacklisted": "Pâu-hàm chhai het-miàng-tân song ke sṳ-ngièn",
+ "antispoof-combining": "Chhut-yì kiet-ha̍p phêu-ki khôi-sṳ́",
+ "antispoof-unassigned": "Pâu-hàm mò chṳ́-thin fe̍t-he put-chai sṳ́-yung ke sṳ-ngièn",
+ "antispoof-noletters": "Mò pâu-hàm ngim-hò sṳ-ngièn/沒包含任何字元",
+ "antispoof-mixedscripts": "Pâu-hàm mò siong-yùng fun-ha̍p ke chṳ́-lin",
+ "antispoof-tooshort": "Ha̍p-fù phêu-chún ke miàng-chhṳ̂n thai-tón"
+}
diff --git a/AntiSpoof/i18n/he.json b/AntiSpoof/i18n/he.json
new file mode 100644
index 00000000..6b42647b
--- /dev/null
+++ b/AntiSpoof/i18n/he.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Guycn1",
+ "Guycn2",
+ "Rotem Liss"
+ ]
+ },
+ "antispoof-desc": "לא מאפשר יצירה של חשבונות עם סוגי כתב מעורבים, חשבונות עם שמות מבלבלים ושמות משתמש דומים",
+ "antispoof-conflict-top": "שם המשתמש \"$1\" דומה מדי {{PLURAL:$2|לחשבון הקיים הבא|לשם המשתמש של $2 החשבונות הקיימים הבאים}}:",
+ "antispoof-conflict-bottom": "נא לבחור שם משתמש אחר.",
+ "antispoof-name-illegal": "לא ניתן לבחור את שם המשתמש \"$1\" כדי למנוע שמות משתמש מבלבלים: $2.\nנא לבחור שם משתמש אחר.",
+ "antispoof-badtype": "סוג נתונים בעייתי",
+ "antispoof-empty": "מחרוזת ריקה",
+ "antispoof-blacklisted": "מכיל את התו $1 שאסור לשימוש",
+ "antispoof-combining": "מתחיל בסימן $1, שאמור להיות מורכב על אות",
+ "antispoof-unassigned": "מכיל את התו הבלתי־מוקצה או המיושן $1",
+ "antispoof-deprecated": "מכיל את התו המיושן $1",
+ "antispoof-noletters": "לא מכיל אותיות",
+ "antispoof-mixedscripts": "כולל סוגי כתב בלתי־תואמים",
+ "antispoof-tooshort": "השם המנורמל קצר מדי",
+ "antispoof-ignore": "התעלמות מבדיקת ההתחזות",
+ "antispoof-ignore-help": "לאפשר למשתמשים עם הרשאות מתאימות ליצור חשבון אפילו אם השם שלו דומה לחשבון קיים.",
+ "right-override-antispoof": "עקיפת בדיקות ההתחזות",
+ "apihelp-antispoof-description": "בדיקת שם משתמש אל מול בדיקות נרמול של AntiSpoof.",
+ "apihelp-antispoof-summary": "בדיקת שם משתמש אל מול בדיקות נרמול של AntiSpoof.",
+ "apihelp-antispoof-param-username": "שם משתמש לבדוק אל מול AntiSpoof.",
+ "apihelp-antispoof-example-1": "לבדוק את שם המשתמש Foo אל מול AntiSpoof.",
+ "apihelp-createaccount-param-ignoreantispoof": "להתעלם מבדיקות התחזות (נדרשת הרשאת <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/hi.json b/AntiSpoof/i18n/hi.json
new file mode 100644
index 00000000..a81bfc10
--- /dev/null
+++ b/AntiSpoof/i18n/hi.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kannankumar",
+ "Kaustubh",
+ "Knight Samar",
+ "Pooja.srivastava",
+ "Shyam123.ckp",
+ "Siddhartha Ghai",
+ "Hindustanilanguage",
+ "Sfic",
+ "Jayprakash12345"
+ ]
+ },
+ "antispoof-desc": "मिश्रित लिपि और संभ्रम पैदा करने वाले तथा मिलते-जुलते सदस्यनामों के प्रयोग पर रोक लगाता है।",
+ "antispoof-conflict-top": "\"$1\" नाम निम्न {{PLURAL:$2|सदस्यनाम|सदस्यनामों}} से बहुत मिलता-जुलता है:",
+ "antispoof-conflict-bottom": "कृपया कोई अन्य नाम चुनिये।",
+ "antispoof-name-illegal": "भ्रामक नामों को रोकने के लिए नाम \"$1\" रखना मना है: $2\nकृपया कोई अन्य नाम चुनिये।",
+ "antispoof-badtype": "गलत डाटा प्रकार",
+ "antispoof-empty": "खाली स्ट्रिंग",
+ "antispoof-blacklisted": "इसमें ब्लैकलिस्टेड कैरैक्टर $1 हैं",
+ "antispoof-combining": "एकत्रिकरण चिन्ह $1 से शुरु होता है",
+ "antispoof-unassigned": "इसमें गलत अक्षर $1 है",
+ "antispoof-deprecated": "पदावनत कैरेक्टर $1 शामिल है",
+ "antispoof-noletters": "इसमें कोई भी अक्षर नहीं हैं",
+ "antispoof-mixedscripts": "इसमें असंगत मिश्र लिपियाँ हैं",
+ "antispoof-tooshort": "अधिकारयुक्त नाम बहुत छोटा हैं",
+ "antispoof-ignore": "स्पूफिंग जाँच नज़रंदाज़ करें",
+ "antispoof-ignore-help": "कुछ पर्याप्त अधिकार प्राप्त सदस्य ऐसे खाते भी खोल सकते हैं, जिसके समान नाम वाले खाते पहले से ही बने हुए हों।",
+ "right-override-antispoof": "स्पूफिंग चेक्स को नजर अंदाज करें",
+ "apihelp-antispoof-description": "एंटीस्पूफ के मानकीकरण जाँच अनुसार सदस्य नाम की जाँच करें।",
+ "apihelp-antispoof-param-username": "जाँच हेतु सदस्य नाम जिससे धोखा न हो",
+ "apihelp-antispoof-example-1": "धोखा के विरुद्ध \"फू\" सदस्य की जांच",
+ "apihelp-createaccount-param-ignoreantispoof": "धोखे की जाँच को अनदेखा करें (<code>override-antispoof</code> अधिकार अनिवार्य)"
+}
diff --git a/AntiSpoof/i18n/hif-latn.json b/AntiSpoof/i18n/hif-latn.json
new file mode 100644
index 00000000..0777a635
--- /dev/null
+++ b/AntiSpoof/i18n/hif-latn.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Girmitya",
+ "Thakurji"
+ ]
+ },
+ "antispoof-desc": "Ii waisan acount jisme mixed-script, nai to kharaab username hae, ke banae ke roke hae.",
+ "antispoof-conflict-top": "Naam \"$1\" {{PLURAL:$2|username|usernames}} abhi ke usename ke rakam hae:",
+ "antispoof-conflict-bottom": "Merbaani kar ke duusra naam ke choose karo.",
+ "antispoof-name-illegal": "Naam \"$1\" ke nai kaam me laawa jaae sake hae, duusra naam se confuse nai kare ke khatir: $2\nMeharbaani kar ke duusra naam ke choose karo.",
+ "antispoof-badtype": "Kharaab data type",
+ "antispoof-empty": "Khaali string",
+ "antispoof-blacklisted": "Isme blacklisted character $1 hae",
+ "antispoof-combining": "Jorre waala mark $1 se suruu karo",
+ "antispoof-unassigned": "Isme unassigned akchhar $1 hae",
+ "antispoof-deprecated": "Isme deprecated akchhar $1 hae",
+ "antispoof-noletters": "Isme koi letter nai hae",
+ "antispoof-mixedscripts": "Isme incompatible mixed script hae",
+ "antispoof-tooshort": "Canonicalized naam bahut chhota hae",
+ "antispoof-ignore": "Spooling check ke ignore kar do",
+ "right-override-antispoof": "Spooling checks ke override karaa jaawe hae",
+ "apihelp-antispoof-description": "Check a username against AntiSpoof's normalisation checks.",
+ "apihelp-antispoof-param-username": "The username to check against AntiSpoof.",
+ "apihelp-antispoof-example-1": "Check username \"Foo\" against AntiSpoof"
+}
diff --git a/AntiSpoof/i18n/hr.json b/AntiSpoof/i18n/hr.json
new file mode 100644
index 00000000..ddf972c2
--- /dev/null
+++ b/AntiSpoof/i18n/hr.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalibor Bosits",
+ "SpeedyGonsales"
+ ]
+ },
+ "antispoof-desc": "Sprečava stvaranje sličnih i nepravilnih suradničkih računa",
+ "antispoof-conflict-top": "Ime \"$1\" je previše slično već {{PLURAL:$2|postojećem imenu|$2 postojećih imena}}:",
+ "antispoof-conflict-bottom": "Molimo odaberite drugo ime.",
+ "antispoof-name-illegal": "Ime \"$1\" nije dozvoljeno da se spriječi moguća zamjena suradničkih nadimaka: $2. Molimo izaberite drugo ime/nadimak.",
+ "antispoof-badtype": "Krivi tip podataka",
+ "antispoof-empty": "Prazan string",
+ "antispoof-blacklisted": "Sadrži nedozvoljeno slovo (karakter)",
+ "antispoof-combining": "Počinje s znakom spajanja",
+ "antispoof-unassigned": "Sadrži nedodijeljen ili zastarjeli znak (karakter)",
+ "antispoof-noletters": "Prekratko",
+ "antispoof-mixedscripts": "Nekompatibilna pisma",
+ "antispoof-tooshort": "Prekratko ime",
+ "antispoof-ignore": "Ignoriraj provjeru nevaljanih imena (antispoof)",
+ "right-override-antispoof": "Premošćivanje spoofing provjere"
+}
diff --git a/AntiSpoof/i18n/hrx.json b/AntiSpoof/i18n/hrx.json
new file mode 100644
index 00000000..91730a69
--- /dev/null
+++ b/AntiSpoof/i18n/hrx.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Paul Beppler"
+ ]
+ },
+ "antispoof-conflict-bottom": "Bittschön wähl en annre Benutzernoome.",
+ "antispoof-badtype": "Ungülticher Datentyp",
+ "antispoof-empty": "Leeres Feld",
+ "antispoof-ignore": "Ähnlichkeitsprüfung ignoriere"
+}
diff --git a/AntiSpoof/i18n/hsb.json b/AntiSpoof/i18n/hsb.json
new file mode 100644
index 00000000..4f2b4aae
--- /dev/null
+++ b/AntiSpoof/i18n/hsb.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "antispoof-desc": "Blokuje wutworjenje kontow z měšanymi pismami, skonfuznjacymi a podobnymi wužiwarskimi mjenami",
+ "antispoof-conflict-top": "Mjeno \"$1\" je přepodobny {{PLURAL:$2|slědowacemu wužiwarskemu mjenu|slědowacymaj wužiwarskimaj mjenomaj|slědowacym wužiwarskim mjenam}}:",
+ "antispoof-conflict-bottom": "Prošu wubjer druhe mjeno.",
+ "antispoof-name-illegal": "Požadane wužiwarske mjeno „$1” njeje dowolene. Přičina: $2<br />Prošu wubjer druhe wužiwarske mjeno.",
+ "antispoof-badtype": "Njepłaćiwy datowy typ",
+ "antispoof-empty": "Prózdne polo",
+ "antispoof-blacklisted": "Wobsahuje njedowolene znamješko $1",
+ "antispoof-combining": "Započina so ze znamješkowej kombinaciju $1",
+ "antispoof-unassigned": "Wobsahuje njepřirjadowane abo njewitane znamješko",
+ "antispoof-deprecated": "Wobsahuje zestarjene znamješko $1",
+ "antispoof-noletters": "Njejsu pismiki wobsahowane.",
+ "antispoof-mixedscripts": "Su znamješka rozdźělnych njekompatibelnych pismow wobsahowane",
+ "antispoof-tooshort": "Kanonizowane mjeno je překrótke.",
+ "antispoof-ignore": "Zamylensku kontrolu ignorować",
+ "right-override-antispoof": "Kontrole podobnosće wužiwarskich mjenow potłóčić"
+}
diff --git a/AntiSpoof/i18n/ht.json b/AntiSpoof/i18n/ht.json
new file mode 100644
index 00000000..9327a51c
--- /dev/null
+++ b/AntiSpoof/i18n/ht.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boukman",
+ "Masterches"
+ ]
+ },
+ "antispoof-desc": "Bloke kreyasyon kont ki genyen diferan alfabèt, ki ka mennen nan konfizyon oubyen ki genyen non itilizatè ki sanble trop",
+ "antispoof-name-illegal": "Non itilizatè \"$1\" pa otorize pou anpeche li konfonn ak non itilizatè: \"$2\"\nTanpri chwazi yon lòt non.",
+ "antispoof-badtype": "Tip done sa yo move",
+ "antispoof-empty": "Chèn vid",
+ "antispoof-blacklisted": "Kontni yon karaktè ki pa otorize",
+ "antispoof-combining": "Ap koumanse avèk yon mak konbine",
+ "antispoof-unassigned": "Kontni yon karaktè ki pa asiyen oubyen ki pa itilize ankò",
+ "antispoof-noletters": "Pa kontni pyès lèt",
+ "antispoof-mixedscripts": "Kontni plizyè alfabèt ki pa konpatib",
+ "antispoof-tooshort": "Non kanonik an two kout"
+}
diff --git a/AntiSpoof/i18n/hu.json b/AntiSpoof/i18n/hu.json
new file mode 100644
index 00000000..2824e6ef
--- /dev/null
+++ b/AntiSpoof/i18n/hu.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dani",
+ "Dj",
+ "Tacsipacsi"
+ ]
+ },
+ "antispoof-desc": "Letiltja a kevert szövegű, zavaró és hasonló nevű felhasználói fiókok készítését",
+ "antispoof-conflict-top": "A megadott „$1” felhasználónév túl hasonló a következő {{PLURAL:$2|azonosítóhoz|azonosítókhoz}}:",
+ "antispoof-conflict-bottom": "Kérjük, válassz másik felhasználónevet.",
+ "antispoof-name-illegal": "A megadott „$1” felhasználónév nem engedélyezett a zavaró vagy becsapó felhasználónevek megelőzése érdekében: $2. Kérjük, válassz másik felhasználónevet.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Hibás adattípus",
+ "antispoof-empty": "Üres szöveg",
+ "antispoof-blacklisted": "Tiltott karaktert tartalmaz: $1",
+ "antispoof-combining": "Összekapcsoló jellel kezdődik: $1",
+ "antispoof-unassigned": "Még nem kiosztott karaktert tartalmaz: $1",
+ "antispoof-deprecated": "Érvénytelen karaktert tartalmaz: $1",
+ "antispoof-noletters": "Nem tartalmaz egyetlen betűt sem",
+ "antispoof-mixedscripts": "Összeférhetetlen kevert szöveget tartalmaz",
+ "antispoof-tooshort": "A kanonizált változat túl rövid",
+ "antispoof-ignore": "Névellenőrzés figyelmen kívül hagyása",
+ "right-override-antispoof": "felhasználói nevek ellenőrzésének figyelmen kívül hagyása"
+}
diff --git a/AntiSpoof/i18n/ia.json b/AntiSpoof/i18n/ia.json
new file mode 100644
index 00000000..af4330a7
--- /dev/null
+++ b/AntiSpoof/i18n/ia.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "antispoof-desc": "Bloca le creation de contos con alphabetos mixte, e nomines de utilisator similar o confundente",
+ "antispoof-conflict-top": "Le nomine de usator \"$1\" es troppo similar al sequente {{PLURAL:$2|nomine|nomines}} de usator:",
+ "antispoof-conflict-bottom": "Per favor elige un altere nomine de usator.",
+ "antispoof-name-illegal": "Le nomine de usator \"$1\" non es permittite pro evitar le nomines de usator confundente o falsificate: $2.\nPer favor elige un altere nomine de usator.",
+ "antispoof-badtype": "Mal typo de datos",
+ "antispoof-empty": "Serie de characteres vacue",
+ "antispoof-blacklisted": "Contine le character prohibite $1",
+ "antispoof-combining": "Comencia con le marca combinatori $1",
+ "antispoof-unassigned": "Contine un character non assignate o obsolete",
+ "antispoof-deprecated": "Contine le character $1 que non plus es permittite",
+ "antispoof-noletters": "Non contine litteras",
+ "antispoof-mixedscripts": "Contine un mixtura incompatibile de alphabetos",
+ "antispoof-tooshort": "Nomine normalisate troppo curte",
+ "antispoof-ignore": "Ignorar le verificationes contra falsification",
+ "antispoof-ignore-help": "Permitte al usatores con privilegios sufficiente de crear un conto mesmo si su nomine es similar a illo de un conto existente.",
+ "right-override-antispoof": "Ignorar le verificationes contra falsification",
+ "apihelp-antispoof-description": "Includer un nomine de usator in le controlos de normalisation AntiSpoof.",
+ "apihelp-antispoof-summary": "Verificar un nomine de usator contra le normas de AntiSpoof.",
+ "apihelp-antispoof-param-username": "Le nomine de usator a verificar con AntiSpoof.",
+ "apihelp-antispoof-example-1": "Verificar le nomine de usator \"Foo\" con AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorar le controlos de usurpation (require le derecto <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/id.json b/AntiSpoof/i18n/id.json
new file mode 100644
index 00000000..f2e2d7ce
--- /dev/null
+++ b/AntiSpoof/i18n/id.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "IvanLanin",
+ "Kenrick95",
+ "Meursault2004",
+ "Rex",
+ "Arifin.wijaya",
+ "Rachmat04"
+ ]
+ },
+ "antispoof-desc": "Menghalangi pembuatan akun dengan nama pengguna aksara campuran, membingungkan, dan yang mirip",
+ "antispoof-conflict-top": "Nama pengguna\"$1\" terlalu mirip dengan {{PLURAL:$2|nama pengguna|nama pengguna}} berikut:",
+ "antispoof-conflict-bottom": "Mohon memilih nama pengguna lain.",
+ "antispoof-name-illegal": "Nama pengguna \"$1\" tidak diizinkan untuk mencegah kebingungan atau penipuan nama pengguna: $2. Mohon memilih pilih nama pengguna lain.",
+ "antispoof-badtype": "Tipe data salah",
+ "antispoof-empty": "Data kosong",
+ "antispoof-blacklisted": "Mengandung karakter yang tak diizinkan $1",
+ "antispoof-combining": "Dimulai dengan tanda kombinasi $1",
+ "antispoof-unassigned": "Mengandung karakter yang tak diberikan $1",
+ "antispoof-deprecated": "Mengandung karakter yang tak digunakan lagi $1",
+ "antispoof-noletters": "Tidak mengandung huruf apa pun",
+ "antispoof-mixedscripts": "Mengandung huruf campuran yang tak kompatibel",
+ "antispoof-tooshort": "Nama normalisasi terlalu pendek",
+ "antispoof-ignore": "Abaikan pemeriksaan penipuan akun",
+ "antispoof-ignore-help": "Izinkan pengguna dengan hak memadai untuk membuat sebuah akun walaupun namanya mirip dengan akun yang telah ada.",
+ "right-override-antispoof": "Mengabaikan pengecekan penipuan nama pengguna",
+ "apihelp-antispoof-description": "Periksa nama pengguna dengan pemeriksaan normalisasi AntiPenipuan.",
+ "apihelp-antispoof-summary": "Periksa nama pengguna dengan pemeriksaan normalisasi AntiPenipuan.",
+ "apihelp-antispoof-param-username": "Nama pengguna yang akan diperiksa dengan AntiPenipuan.",
+ "apihelp-antispoof-example-1": "Periksa nama pengguna \"Foo\" dengan AntiPenipuan",
+ "apihelp-createaccount-param-ignoreantispoof": "Abaikan pemeriksaan penipuan (memerlukan hak akses <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/ig.json b/AntiSpoof/i18n/ig.json
new file mode 100644
index 00000000..2888d3dd
--- /dev/null
+++ b/AntiSpoof/i18n/ig.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ukabia"
+ ]
+ },
+ "antispoof-conflict-bottom": "Biko ra áhà ọzọ.",
+ "antispoof-empty": "Cháfù érírí"
+}
diff --git a/AntiSpoof/i18n/ilo.json b/AntiSpoof/i18n/ilo.json
new file mode 100644
index 00000000..82be90f1
--- /dev/null
+++ b/AntiSpoof/i18n/ilo.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "antispoof-desc": "Serraanna ti panagaramid kadagiti pakabilangan nga addaan iti naglalaok a panagsurat, makaallilaw ken dagiti agpapada a nagan ti agar-aramat",
+ "antispoof-conflict-top": "Ti nagan a \"$1\" ket kapada unay ti sumaganad a {{PLURAL:$2|a nagan ti agar-aramat|a nagan dagiti agar-aramat}}:",
+ "antispoof-conflict-bottom": "Pangngaasi nga agpilika iti sabali a nagan.",
+ "antispoof-name-illegal": "Ti nagan a \"$1\" ket saan a maipalubos a mangpawil ti makaallilaw wenno dagiti naanigaas a nagan ti agar-aramat: $2.\nPangngaasi nga agpili iti sabali a nagan.",
+ "antispoof-badtype": "Dakes a kita ti datos",
+ "antispoof-empty": "Awan linaon a kuerdas",
+ "antispoof-blacklisted": "Naglaon kadagiti naiparit a karakter ti $1",
+ "antispoof-combining": "Nangrugi ti panagtipon ti marka ti $1",
+ "antispoof-unassigned": "Naglaon kadagiti saan a nainaganan wenno nasukatanen a karakter ti $1",
+ "antispoof-deprecated": "Naglaon ti nasukatanen a karakter ti $1",
+ "antispoof-noletters": "Saan nga aglaon kadagiti ania man a letra",
+ "antispoof-mixedscripts": "Aglaon kadagiti saan a mabalin nga aglalaok nga eskritu",
+ "antispoof-tooshort": "Ti kanonikalisado a nagan ket ababa unay",
+ "antispoof-ignore": "Saan nga ikaskaso dagiti kinita nga aningaas",
+ "antispoof-ignore-help": "Mangipalubos kadagiti agar-aramat nga addaan iti makaanay a pribilihio iti agpartuat iti maysa a pakabilangan urayno no ti naganna ket kapada iti maysa nga addan a pakabilangan.",
+ "right-override-antispoof": "Parabawan ti panagkita nga aningaas",
+ "apihelp-antispoof-description": "Kitaen ti nagan ti agar-aramat nga isuppiat iti normalisasion a panagkita ti AntiSpoof.",
+ "apihelp-antispoof-param-username": "Ti nagan ti agar-aramat a kitaen a maisuppiat iti AntiSpoof.",
+ "apihelp-antispoof-example-1": "Kitaen ti nagan ti agar-aramat \"Foo\" a maisuppiat iti AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Di ikaskaso ti panagkita ti spoofing (nasken ti karbengan ti <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/is.json b/AntiSpoof/i18n/is.json
new file mode 100644
index 00000000..01f0099e
--- /dev/null
+++ b/AntiSpoof/i18n/is.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "S.Örvarr.S",
+ "Snævar",
+ "Spacebirdy"
+ ]
+ },
+ "antispoof-desc": "Óheimilar gerð aðganga með blandað skrifletur, ruglandi og svipuð notandanöfn",
+ "antispoof-conflict-top": "Notandanafnið \"$1\" er of svipað eftirfarandi {{PLURAL:$2|notandanafni|notendanöfnum}}:",
+ "antispoof-conflict-bottom": "Vinsamlegast veldu annað notandanafn.",
+ "antispoof-name-illegal": "Notandanafnið „$1“ er ekki leyfilegt til að sporna gegn ruglandi eða skopstælandi notandanöfnum:: „$2“. Vinsamlegast veldu annað notandanafn.",
+ "antispoof-badtype": "Lélegt gagnatag",
+ "antispoof-empty": "Tómur strengur",
+ "antispoof-blacklisted": "Inniheldur bannaða rittáknið $1",
+ "antispoof-combining": "Byrjar á samsetningartákninu $1",
+ "antispoof-unassigned": "Inniheldur óúthlutaða eða úrelda táknið $1",
+ "antispoof-deprecated": "Inniheldur úrelda táknið $1",
+ "antispoof-noletters": "Inniheldur enga stafi",
+ "antispoof-mixedscripts": "Inniheldur ósamhæfðar skriftur",
+ "antispoof-tooshort": "Staðlað nafn er of stutt",
+ "antispoof-ignore": "Hunsa misnotkunar athugun"
+}
diff --git a/AntiSpoof/i18n/it.json b/AntiSpoof/i18n/it.json
new file mode 100644
index 00000000..927381ce
--- /dev/null
+++ b/AntiSpoof/i18n/it.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beta16",
+ "BrokenArrow",
+ "Darth Kule",
+ "Nemo bis",
+ "Pietrodn",
+ "Matteocng"
+ ]
+ },
+ "antispoof-desc": "Impedisce la creazione di nomi utente con caratteri misti e nomi utente che generano confusione o troppo simili tra loro.",
+ "antispoof-conflict-top": "Il nome utente \"$1\" è troppo simile {{PLURAL:$2|al seguente nome utente|ai seguenti nomi utente}}:",
+ "antispoof-conflict-bottom": "Scegli un altro nome utente.",
+ "antispoof-name-illegal": "Il nome utente \"$1\" non è consentito, per evitare confusione o utilizzi fraudolenti: $2. Scegli un altro nome utente.",
+ "antispoof-badtype": "Tipo di dati errato",
+ "antispoof-empty": "Stringa vuota",
+ "antispoof-blacklisted": "Contiene il carattere non consentito $1",
+ "antispoof-combining": "Inizia con la combinazione di caratteri $1",
+ "antispoof-unassigned": "Contiene il carattere non assegnato $1",
+ "antispoof-deprecated": "Contiene il carattere deprecato $1",
+ "antispoof-noletters": "Assenza di lettere",
+ "antispoof-mixedscripts": "Combinazione di sistemi di scrittura non compatibili",
+ "antispoof-tooshort": "Nome normalizzato troppo corto",
+ "antispoof-ignore": "Ignora i controlli per spoofing",
+ "antispoof-ignore-help": "Consente agli utenti con privilegi sufficienti di creare un'utenza, anche se il suo nome è simile a quella di un'altra già esistente.",
+ "right-override-antispoof": "Ignora i controlli spoofing",
+ "apihelp-antispoof-description": "Controlla un nome utente con le verifiche di normalizzaizone AntiSpoof",
+ "apihelp-antispoof-summary": "Controlla un nome utente con le verifiche di normalizzaizone AntiSpoof",
+ "apihelp-antispoof-param-username": "Il nome utente da verificare con AntiSpoof.",
+ "apihelp-antispoof-example-1": "Controlla il nome utente \"Foo\" con AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignora i controlli spoofing (richiede il diritto <code>override-antispoof</code>)"
+}
diff --git a/AntiSpoof/i18n/ja.json b/AntiSpoof/i18n/ja.json
new file mode 100644
index 00000000..dd8c8fa9
--- /dev/null
+++ b/AntiSpoof/i18n/ja.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aotake",
+ "Fryed-peach",
+ "JtFuruhata",
+ "Mizusumashi",
+ "Muttley",
+ "Shirayuki",
+ "2nd-player",
+ "Takot",
+ "Otokoume"
+ ]
+ },
+ "antispoof-desc": "文字体系が混在している利用者名、既存の利用者名と類似していて紛らわしい利用者名のアカウント作成をブロックする",
+ "antispoof-conflict-top": "指定した利用者名「$1」は以下の{{PLURAL:$2|利用者名}}と類似しすぎています:",
+ "antispoof-conflict-bottom": "別の名前を選択してください。",
+ "antispoof-name-illegal": "指定した利用者名「$1」はなりすまし防止のため使用できません: $2。別の名前を使用してください。",
+ "antispoof-bad-char": "「$1」 ($2)",
+ "antispoof-badtype": "データタイプが異常です",
+ "antispoof-empty": "文字列が空です",
+ "antispoof-blacklisted": "禁止された文字 $1 を含んでいます",
+ "antispoof-combining": "結合記号 $1 で始まっています",
+ "antispoof-unassigned": "未割り当ての文字 $1 を含んでいます",
+ "antispoof-deprecated": "推奨されない文字 $1 を含んでいます",
+ "antispoof-noletters": "英字を含んでいません",
+ "antispoof-mixedscripts": "一緒に使用できない複数の文字体系が混在しています",
+ "antispoof-tooshort": "正規化した名前が短すぎます",
+ "antispoof-ignore": "なりすましチェックを無効にする",
+ "right-override-antispoof": "なりすましチェックを無視",
+ "apihelp-antispoof-description": "ユーザー名が AntiSpoof の正規化チェックに反しているかどうかチェックする",
+ "apihelp-antispoof-param-username": "AntiSpoof に対してチェックするユーザー名",
+ "apihelp-antispoof-example-1": "利用者名 \"Foo\" を AntiSpoof でチェックする",
+ "apihelp-createaccount-param-ignoreantispoof": "なりすましチェックを無視する (<code>override-antispoof</code> の権限が必要)。"
+}
diff --git a/AntiSpoof/i18n/jut.json b/AntiSpoof/i18n/jut.json
new file mode 100644
index 00000000..bacefa86
--- /dev/null
+++ b/AntiSpoof/i18n/jut.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huslåke",
+ "Jyllanj"
+ ]
+ },
+ "antispoof-desc": "Blokiire for oprettels å konti mä blanjen tejnsätt, forwirrenje elle liiknenje brugenaun",
+ "antispoof-name-illegal": "Naun \"$1\" ä ett tillæt for å forhinja forwirrenje elle etteliiknen brugenaun: $2. Wälg wenlist e ånj naun.",
+ "antispoof-badtype": "Udjylji datatyp",
+ "antispoof-empty": "Tomm streng",
+ "antispoof-blacklisted": "Indeholder sortlistet tegn",
+ "antispoof-combining": "Begynder ve et kombinationsbogstav",
+ "antispoof-unassigned": "Indeholder ubrugte bogstaver",
+ "antispoof-noletters": "Inneholje ien buegstawe",
+ "antispoof-mixedscripts": "Inneholje inkompatibel, blanjen tejnsätt",
+ "antispoof-tooshort": "Naun ä for kort"
+}
diff --git a/AntiSpoof/i18n/jv.json b/AntiSpoof/i18n/jv.json
new file mode 100644
index 00000000..fdad2cfe
--- /dev/null
+++ b/AntiSpoof/i18n/jv.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meursault2004",
+ "NoiX180",
+ "Pras",
+ "Umherirrender"
+ ]
+ },
+ "antispoof-desc": "Menggak nggawé akun utawa rékening mawa jeneng panganggo aksara campuran, mbingungaké lan sing mèmper",
+ "antispoof-conflict-top": "Jeneng \"$1\" mèmper banget karo {{PLURAL:$2|akun sing wis ana|$2 akun iki}}:",
+ "antispoof-conflict-bottom": "Mangga pilih jeneng panganggo liyané.",
+ "antispoof-name-illegal": "Jeneng \"$1\" ora diidinaké supaya wong ora bingung utawa menggak ngapi-api jeneng panganggo sing wis ana: $2.\nMangga pilihen jeneng liya.",
+ "antispoof-badtype": "Tipe data salah",
+ "antispoof-empty": "Data kosong",
+ "antispoof-blacklisted": "Ngandung karakter $1 sing ora kalilan",
+ "antispoof-combining": "Wiwiti mawa tandha kombinasi $1",
+ "antispoof-unassigned": "Ngandung karakter $1 sing durung katetepaké",
+ "antispoof-deprecated": "Ngandung karakter $1 sing ora kanggo",
+ "antispoof-noletters": "Ora ngandhut aksara babar belas",
+ "antispoof-mixedscripts": "Ngandhut aksara campuran sing ora kompatibel",
+ "antispoof-tooshort": "Jeneng kanonikalisasi kecendhaken",
+ "antispoof-ignore": "Jarna pamriksan goroh-orané",
+ "right-override-antispoof": "''Override'' pamriksan palècèhan"
+}
diff --git a/AntiSpoof/i18n/ka.json b/AntiSpoof/i18n/ka.json
new file mode 100644
index 00000000..cfb3ece3
--- /dev/null
+++ b/AntiSpoof/i18n/ka.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alsandro",
+ "BRUTE",
+ "David1010",
+ "Nodar Kherkheulidze",
+ "Tokoko",
+ "OpusDEI"
+ ]
+ },
+ "antispoof-desc": "ბლოკავს ახალი ანგარიშების გახსნას შერეული სკრიპტით, შეცდომითი და ერთიდაიგივე მომხმარებლის სახელების შეთხვევაში",
+ "antispoof-conflict-top": "სახელი \"$1\" ძალიან გავს შემდეგ {{PLURAL:$2|შემდეგი მომხმარებლის სახელი|მომხმარებელთა სახელებს}}:",
+ "antispoof-conflict-bottom": "გთხოვთ სხვა სახელი გამოიყენოთ.",
+ "antispoof-name-illegal": "სახელი „$1“ არაა ნებადართული, რათა არ იყოს არეული სხვა სახელთან: $2.\nგთხოვთ აირჩიოთ სხვა სახელი.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "არასწორი მონაცემთა ტიპი",
+ "antispoof-empty": "ცარიელი სტრიქონი",
+ "antispoof-blacklisted": "შავი სიიდან შეიცავს სიმბოლოს $1",
+ "antispoof-combining": "იწყება კომბინაციის სიმბოლოთი $1",
+ "antispoof-unassigned": "შეიცავს დაუშვებელ ან მოძველებულ სიმბოლოს",
+ "antispoof-deprecated": "შეიცავს უარყოფილ სიმბოლოს $1",
+ "antispoof-noletters": "არ შეიცავს ასოებს",
+ "antispoof-mixedscripts": "შეიცავს შეუთავსებელ შერეულ სცენარებს",
+ "antispoof-tooshort": "ნორმალიზებული სახელი ძალიან მოკლეა",
+ "antispoof-ignore": "მსგავს სახელებზე შემოწმების ინგნორირება",
+ "antispoof-ignore-help": "საკმარისი უფლებამოსილების მქონე მომხმარებლებს უფლებას აძლევს შექმნან ანგარიში მაშინაც კი, როცა ეს სახელი უკვე არსებული ანგარიშის სახელის მსგავსია.",
+ "right-override-antispoof": "მსგავსი სახელების შემოწმების უგულებელყოფა",
+ "apihelp-antispoof-description": "მომხმარებლის შემოწმება AntiSpoof-ის ნორმალიზაციით.",
+ "apihelp-antispoof-param-username": "მომხმარებელი, რომელიც უნდა შემოწმდეს AntiSpoof-ზე.",
+ "apihelp-antispoof-example-1": "შეამოწმეთ მომხმარებელი \"Foo\" AntiSpoof-ზე",
+ "apihelp-createaccount-param-ignoreantispoof": "მსგავს სახელებზე შემოწმების იგნორირება (მოითხოვს უფლებებს <code>override-antispoof</code> right)."
+}
diff --git a/AntiSpoof/i18n/khw.json b/AntiSpoof/i18n/khw.json
new file mode 100644
index 00000000..69b696bf
--- /dev/null
+++ b/AntiSpoof/i18n/khw.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ },
+ "antispoof-badtype": "شوم اعداد و شمارو قسم",
+ "antispoof-empty": "خالی تار"
+}
diff --git a/AntiSpoof/i18n/kk-arab.json b/AntiSpoof/i18n/kk-arab.json
new file mode 100644
index 00000000..83283b81
--- /dev/null
+++ b/AntiSpoof/i18n/kk-arab.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": [],
+ "antispoof-name-illegal": "قاتىسۋشى اتى شاتاقتاۋىن نەمەسە قالجىنداۋىن بٶگەۋ ٷشٸن «$1» اتاۋى رۇقسات ەتٸلمەيدٸ: $2. باسقا اتاۋ تاڭداڭىز.",
+ "antispoof-badtype": "جارامسىز دەرەك تٷرٸ",
+ "antispoof-empty": "بوس جول",
+ "antispoof-blacklisted": "قارا تٸزٸمگە كٸرگەن ٵرٸپ بار",
+ "antispoof-combining": "قۇرامدى بەلگٸمەن باستالعان",
+ "antispoof-unassigned": "تاعايىندالماعان نەمەسە تىيىلعان ٵرٸپ بار",
+ "antispoof-noletters": "ٸشٸندە ەشبٸر ٵرٸپ جوق",
+ "antispoof-mixedscripts": "ٸشٸندە سيىسپايتىن ارالاس جازۋ تٷرلەرٸ بار",
+ "antispoof-tooshort": "ەرەجەلەنگەن اتاۋى تىم قىسقا"
+}
diff --git a/AntiSpoof/i18n/kk-cyrl.json b/AntiSpoof/i18n/kk-cyrl.json
new file mode 100644
index 00000000..b0956b1b
--- /dev/null
+++ b/AntiSpoof/i18n/kk-cyrl.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek"
+ ]
+ },
+ "antispoof-desc": "Әмірлер араласқан, қолайсыз және ұқсас қатысушы аттары бар тіркелгілерді жасауын бұғаттайды",
+ "antispoof-conflict-top": "«$1» атауы келесімен өте ұқсас {{PLURAL:$2|қатысушы есімі|қатысушы есімі}}:",
+ "antispoof-conflict-bottom": "Басқа атау таңдаңыз.",
+ "antispoof-name-illegal": "Қатысушы аты шатақтауын немесе қалжындауын бөгеу үшін «$1» атауы рұқсат етілмейді: $2. Басқа атау таңдаңыз.",
+ "antispoof-badtype": "Жарамсыз дерек түрі",
+ "antispoof-empty": "Бос жол",
+ "antispoof-blacklisted": "Қара тізімге кірген $1 таңбадан тұрады",
+ "antispoof-combining": "Құрамды белгімен $1 басталған",
+ "antispoof-unassigned": "Тағайындалмаған $1 таңба қамтылған",
+ "antispoof-noletters": "Ішінде ешбір әріп жоқ",
+ "antispoof-mixedscripts": "Ішінде сиыспайтын аралас жазу түрлері бар",
+ "antispoof-tooshort": "Ережеленген атауы тым қысқа",
+ "antispoof-ignore": "Айырбастау тексерістерін елемеу"
+}
diff --git a/AntiSpoof/i18n/kk-latn.json b/AntiSpoof/i18n/kk-latn.json
new file mode 100644
index 00000000..b0669efb
--- /dev/null
+++ b/AntiSpoof/i18n/kk-latn.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": [],
+ "antispoof-name-illegal": "Qatıswşı atı şataqtawın nemese qaljındawın bögew üşin «$1» atawı ruqsat etilmeýdi: $2. Basqa ataw tañdañız.",
+ "antispoof-badtype": "Jaramsız derek türi",
+ "antispoof-empty": "Bos jol",
+ "antispoof-blacklisted": "Qara tizimge kirgen ärip bar",
+ "antispoof-combining": "Quramdı belgimen bastalğan",
+ "antispoof-unassigned": "Tağaýındalmağan nemese tıýılğan ärip bar",
+ "antispoof-noletters": "İşinde eşbir ärip joq",
+ "antispoof-mixedscripts": "İşinde sïıspaýtın aralas jazw türleri bar",
+ "antispoof-tooshort": "Erejelengen atawı tım qısqa"
+}
diff --git a/AntiSpoof/i18n/km.json b/AntiSpoof/i18n/km.json
new file mode 100644
index 00000000..b5a95dc9
--- /dev/null
+++ b/AntiSpoof/i18n/km.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chhorran",
+ "Lovekhmer",
+ "Thearith",
+ "គីមស៊្រុន"
+ ]
+ },
+ "antispoof-conflict-top": "ឈ្មោះ \"$1\"គឺស្រដៀងគ្នានឹង {{PLURAL:$2|អត្តនាម|អត្តនាម}}ខាងក្រោម ពេកហើយ ៖",
+ "antispoof-conflict-bottom": "សូមជ្រើសរើសឈ្មោះផ្សេងទៀត។",
+ "antispoof-name-illegal": "ឈ្មោះ \"$1\" មិនត្រូវបានឱ្យបង្កើតទេ ដើម្បីកុំឱ្យច្រឡំជាមួយនឹងអត្តនាម៖ $2។\n\nសូមជ្រើសរើសអត្តនាមផ្សេងមួយទៀត។",
+ "antispoof-badtype": "ប្រភេទទិន្នន័យអន់",
+ "antispoof-empty": "ខ្សែអក្សរទទេ",
+ "antispoof-blacklisted": "មាន​អក្សរ​ដែល​ត្រូវបាន​ចាត់ចូលទៅក្នុងបញ្ជីខ្មៅ $1",
+ "antispoof-combining": "ចាប់ផ្ដើមដោយសញ្ញាផ្សំគ្នា $1",
+ "antispoof-noletters": "គ្មានផ្ទុក​អក្សរណាមួយ"
+}
diff --git a/AntiSpoof/i18n/kn.json b/AntiSpoof/i18n/kn.json
new file mode 100644
index 00000000..6eeba99d
--- /dev/null
+++ b/AntiSpoof/i18n/kn.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Abhirama",
+ "VASANTH S.N.",
+ "Omshivaprakash",
+ "Ananth subray"
+ ]
+ },
+ "antispoof-conflict-bottom": "ಇನ್ನೊಂದು ಹೆಸರನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.",
+ "antispoof-name-illegal": "\"$1\"ಹೆಸರನ್ನು ಗೊಂದಲ ಅಥವಾ ವಂಚಕ ಬಳಕೆದಾರರ : $2ಹೆಸರುಗಳನ್ನು ತಡೆಯಲು ಅನುಮತಿಸಲಾಗುತ್ತಿಲ್ಲ.\nಮತ್ತೊಂದು ಹೆಸರನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.",
+ "antispoof-badtype": "ಕೆಟ್ಟ ಮಾಹಿತಿ ರೀತಿ",
+ "antispoof-empty": "ಖಾಲಿ ಅಕ್ಷರಪುಂಜ"
+}
diff --git a/AntiSpoof/i18n/ko.json b/AntiSpoof/i18n/ko.json
new file mode 100644
index 00000000..6b598082
--- /dev/null
+++ b/AntiSpoof/i18n/ko.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klutzy",
+ "Kwj2772",
+ "ToePeu",
+ "아라",
+ "Revi",
+ "Ykhwong"
+ ]
+ },
+ "antispoof-desc": "여러 문자 체계를 섞은 이름이나, 혼동될 수 있고 비슷한 이름의 계정 만들기를 차단합니다",
+ "antispoof-conflict-top": "\"$1\" 계정 이름은 다음 {{PLURAL:$2|사용자 이름}}과 너무 비슷합니다:",
+ "antispoof-conflict-bottom": "다른 사용자 이름을 선택하세요.",
+ "antispoof-name-illegal": "\"$1\" 사용자 이름은 다음의 이유로 인해 가입이 금지되었습니다: $2.\n다른 이름으로 가입해주세요.",
+ "antispoof-badtype": "잘못된 자료형",
+ "antispoof-empty": "빈 문자열",
+ "antispoof-blacklisted": "사용이 금지된 $1 문자 포함",
+ "antispoof-combining": "혼합 문자 $1로 시작",
+ "antispoof-unassigned": "코드가 부여되지 않았거나 잘못된 $1 문자를 포함",
+ "antispoof-deprecated": "잘못된 글자 $1이 포함되어 있습니다.",
+ "antispoof-noletters": "어떠한 문자도 포함하고 있지 않습니다",
+ "antispoof-mixedscripts": "여러 문자 체계가 섞여 있습니다.",
+ "antispoof-tooshort": "고유 이름이 너무 짧습니다.",
+ "antispoof-ignore": "안티스푸프 검사를 무시",
+ "antispoof-ignore-help": "충분한 권한을 가진 사용자가 새 계정이 이미 존재하는 계정과 비슷하더라도 새 계정을 만들 수 있도록 합니다",
+ "right-override-antispoof": "혼란을 줄 수 있는 사용자 이름 금지(안티스푸프)를 무시",
+ "apihelp-antispoof-description": "안티스푸프의 표준화 검사를 사용하여 사용자명을 검사합니다.",
+ "apihelp-antispoof-summary": "안티스푸프의 표준화 검사를 사용하여 사용자명을 검사합니다.",
+ "apihelp-antispoof-param-username": "안티스푸프로 검색할 사용자명",
+ "apihelp-antispoof-example-1": "사용자 이름 \"길동\"을 안티스푸프로 검사",
+ "apihelp-createaccount-param-ignoreantispoof": "스푸핑 체크 무시 (<code>override-antispoof<code> 권한 필요)"
+}
diff --git a/AntiSpoof/i18n/krc.json b/AntiSpoof/i18n/krc.json
new file mode 100644
index 00000000..127a5627
--- /dev/null
+++ b/AntiSpoof/i18n/krc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Ernác"
+ ]
+ },
+ "antispoof-ignore": "Ушаш атланы тинтиуге эс бёлме"
+}
diff --git a/AntiSpoof/i18n/ksh.json b/AntiSpoof/i18n/ksh.json
new file mode 100644
index 00000000..298c1674
--- /dev/null
+++ b/AntiSpoof/i18n/ksh.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "antispoof-desc": "Dat ongerdröck neu Name für Metmaacher met jemeschte Zeichensätz, neu Name, wo mer jeck von weed, un zo ähnlije Name.",
+ "antispoof-conflict-top": "Dä Name „$1“ eß zoh ähnlesch zoh {{PLURAL:$2|däm Name, dä&32;|dä Name, di_j_|nix wadd_}}et ald jitt:",
+ "antispoof-conflict-bottom": "Nemm ene andere Name.",
+ "antispoof-name-illegal": "Dä Name „$1“ es nit zojelohße, domet mer kein nohjemahte Name krije, un keine Durjenein met Schrefte: $2. Sök Der jet anders als Dinge Name us.",
+ "antispoof-bad-char": "„$1“ ($2)",
+ "antispoof-badtype": "Verkierte Zoot Date",
+ "antispoof-empty": "En dem Feld is nix dren",
+ "antispoof-blacklisted": "Do es dat Zeiche „$1“ dren, wat nit zojelohße es",
+ "antispoof-combining": "Dat fängk med däm kombineerende Zeiche „$1“ aan.",
+ "antispoof-unassigned": "Do es dat Zeiche „$1“ dren, wat nit zojedeild es",
+ "antispoof-deprecated": "Do es dat Zeiche „$1“ dren, wat nit jään jesinn es",
+ "antispoof-noletters": "Do es nit eine Bochstabe dren.",
+ "antispoof-mixedscripts": "He sin Zeichesätz jemesch.",
+ "antispoof-tooshort": "Dä vereinheitlechte Name es zo koot.",
+ "antispoof-ignore": "Donn de Prööfonge jäje et Name-Nohmaache övverjonn",
+ "right-override-antispoof": "Prööfonge jäje et Name-Nohmaache (<i lang=\"en\">Anti-Spoofing</i>) övverjonn",
+ "apihelp-antispoof-description": "Donn de Nahme vun de Metmaacher jähje dem <i lang=\"en\" xml:lang=\"en\">AntiSpoof</i> sing Nommallisehronge prööve.",
+ "apihelp-antispoof-param-username": "Dä Nahme zom pröhve jähje dem <i lang=\"en\" xml:lang=\"en\">AntiSpoof</i> sing Nommallisehrong.",
+ "apihelp-antispoof-example-1": "Donn dä Nahme <i lang=\"en\" xml:lang=\"en\">Foo</i> jähje dem <i lang=\"en\" xml:lang=\"en\">AntiSpoof</i> sing Nommallisehronge pröhve."
+}
diff --git a/AntiSpoof/i18n/ky.json b/AntiSpoof/i18n/ky.json
new file mode 100644
index 00000000..f296d844
--- /dev/null
+++ b/AntiSpoof/i18n/ky.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chorobek",
+ "Growingup"
+ ]
+ },
+ "antispoof-conflict-bottom": "Башка ат тандап алыңыз",
+ "antispoof-badtype": "Туура эмес форматтагы маалымат",
+ "antispoof-empty": "Бош сап",
+ "antispoof-blacklisted": "$1 тосмолонгон белгилердин тизмесине кирет",
+ "antispoof-unassigned": "$1 уруксат берилбеген белгилердин тизмесине кирет",
+ "antispoof-deprecated": "$1 колдонуудан чыккан белгилердин тизмесине кирет",
+ "antispoof-noletters": "Бир дагы тамга жок",
+ "antispoof-mixedscripts": "Ар башка тилдеги тамгалар колдонулган",
+ "antispoof-tooshort": "Өтө кыска ат",
+ "antispoof-ignore": "Аттардын окшоштугун текшербөө",
+ "right-override-antispoof": "Окшош аттардын текшерүүлөрүнө көңүл салбоо"
+}
diff --git a/AntiSpoof/i18n/la.json b/AntiSpoof/i18n/la.json
new file mode 100644
index 00000000..92ab44b8
--- /dev/null
+++ b/AntiSpoof/i18n/la.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "SPQRobin"
+ ]
+ },
+ "antispoof-name-illegal": "Non licet uti nomine \"$1\" ad nominum usorum simulationem prohibendam: $2. Selige nomen alterum."
+}
diff --git a/AntiSpoof/i18n/lad.json b/AntiSpoof/i18n/lad.json
new file mode 100644
index 00000000..3eee9ddc
--- /dev/null
+++ b/AntiSpoof/i18n/lad.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jewbask",
+ "Maor X",
+ "Menachem.Moreira"
+ ]
+ },
+ "antispoof-conflict-top": "El nombre \"$1\" es muy paresido a los sigientes{{PLURAL:$2|nombre de usador|nombres de usador}}:",
+ "antispoof-conflict-bottom": "Por hatir, eskoje otro nombre.",
+ "antispoof-empty": "Teksto vazio"
+}
diff --git a/AntiSpoof/i18n/lb.json b/AntiSpoof/i18n/lb.json
new file mode 100644
index 00000000..f013d34f
--- /dev/null
+++ b/AntiSpoof/i18n/lb.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Les Meloures",
+ "Robby"
+ ]
+ },
+ "antispoof-desc": "Verhënnert d'Opmaache vu Benotzerkonte mat gemëschten Zeechesätz, mat gelungene Benotzernimm oder mat Benotzernimm déi zu Verwiesselunge féiere kéinten.",
+ "antispoof-conflict-top": "De Benotzernumm \"$1\" ass ze ähnlech mat {{PLURAL:$2|dësem Benotzernumm|dëse Benotzernimm}}:",
+ "antispoof-conflict-bottom": "Wielt w.e.g. en anere Benotzernumm.",
+ "antispoof-name-illegal": "De Benotzernumm \"$1\" ass net erlaabt fir Verwiesslungen oder Verschleierungen vu Benotzernimm ze verhënneren: $2.\n\nSicht iech w.e.g. een anere Benotzernumm.",
+ "antispoof-badtype": "Ongültegt Fichiers-Format (bad data type)",
+ "antispoof-empty": "Eidelt Feld",
+ "antispoof-blacklisted": "Verbueden Zeechen (Caractèren): $1",
+ "antispoof-combining": "Fänkt mam Kombinatiounszeechen $1 un.",
+ "antispoof-unassigned": "Et sinn net zougeuerdnet oder onerwënschten Zeechen (Caractèren) dran.",
+ "antispoof-deprecated": "Dat vereelsten Zeechen (Caractère) $1 ass dran.",
+ "antispoof-noletters": "Et si keng Buschtawen dran.",
+ "antispoof-mixedscripts": "Et si gemëschte Skripten dran, déi net kompatibel sinn",
+ "antispoof-tooshort": "Normaliséierten Numm ze kuerz",
+ "antispoof-ignore": "Keng Kontroll op ähnlech Benotzernimm",
+ "right-override-antispoof": "D'Resultat vun der Iwwerpréifung no ähnleche Benotzernimm ignoréieren"
+}
diff --git a/AntiSpoof/i18n/lez.json b/AntiSpoof/i18n/lez.json
new file mode 100644
index 00000000..47ba836e
--- /dev/null
+++ b/AntiSpoof/i18n/lez.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Migraghvi"
+ ]
+ },
+ "antispoof-badtype": "Ганайбурун дуьзтушир жуьре",
+ "antispoof-empty": "ичIи цıар"
+}
diff --git a/AntiSpoof/i18n/li.json b/AntiSpoof/i18n/li.json
new file mode 100644
index 00000000..a2dc0d34
--- /dev/null
+++ b/AntiSpoof/i18n/li.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matthias",
+ "Ooswesthoesbes"
+ ]
+ },
+ "antispoof-desc": "Blokkeert 't aanmake van gebroekers mit miedere sjrifte, verwarrende en geliekmakende gebroekersname",
+ "antispoof-conflict-top": "De gebroekersnaam \"$1\" liek te zeer op de volgende bestäönde {{PLURAL:$2|gebroekersnaam|$2 gebroekersname}}:",
+ "antispoof-conflict-bottom": "Kees 'ne angere naam.",
+ "antispoof-name-illegal": "De naam \"$1\" is neet toegestange óm verwarring of vervörmdje gebroekersname te veurkómme: $2. \nKees estebleef 'ne angere naam.",
+ "antispoof-badtype": "Verkeerd datatype",
+ "antispoof-empty": "Laege string",
+ "antispoof-blacklisted": "Bevat verbaoje karakter $1",
+ "antispoof-combining": "Begint mit 'n gecombineerd merkteike $1",
+ "antispoof-unassigned": "Bevat neet toegeweze of verajerdj karakter",
+ "antispoof-deprecated": "Bevat verajerd teken $1",
+ "antispoof-noletters": "Bevat gein letters",
+ "antispoof-mixedscripts": "Bevat neet compatibele sjrifter.",
+ "antispoof-tooshort": "Aafgekorte naam te kort",
+ "antispoof-ignore": "Spoofcontroles negere",
+ "antispoof-ignore-help": "Laot gebroekers mit zat rechte toe veur 'nen account aan te make, zelfs es deze naam op 'ne bestäöndje accountsnaam liek.",
+ "right-override-antispoof": "Spoofkonträöl negere",
+ "apihelp-antispoof-description": "Num 'ne gebroekersnaam inne normaliseringscontrole van AntiSpoof op.",
+ "apihelp-antispoof-summary": "Num 'ne gebroekersnaam inne normaliseringscontrole van AntiSpoof op.",
+ "apihelp-antispoof-param-username": "De gebroekersnaam veur op te numme mit AntiSpoof.",
+ "apihelp-antispoof-example-1": "De gebroekersnaam \"Foo\" opnumme mit AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Negeer spoofcontroles (vereisj 't rech <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/lij.json b/AntiSpoof/i18n/lij.json
new file mode 100644
index 00000000..771817e7
--- /dev/null
+++ b/AntiSpoof/i18n/lij.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giromin Cangiaxo"
+ ]
+ },
+ "antispoof-desc": "O l'impedisce a creaçion di nommi utente con di carattei mescci e di nommi utente che genneran confuxon ò troppo scimmili tra lô.",
+ "antispoof-conflict-top": "O nomme \"$1\" o l'è troppo scimmile {{PLURAL:$2|a-o seguente nomme utente|a-i seguenti nommi utente}}:",
+ "antispoof-conflict-bottom": "Çerni un atro nomme.",
+ "antispoof-name-illegal": "O nomme utente \"$1\" o no l'è consentio, pe evitâ confuxon ò gazibbe: $2. Pe piaxei çerni un atro nomme.",
+ "antispoof-badtype": "Tipo de dæti errou",
+ "antispoof-empty": "Stringa vœua",
+ "antispoof-blacklisted": "O conten o carattere non consentio $1",
+ "antispoof-combining": "O comença co-a combinaçion de caratteri $1",
+ "antispoof-unassigned": "O conten o carattere non assegnou $1",
+ "antispoof-deprecated": "O conten o carattere deprecou $1",
+ "antispoof-noletters": "Assença de lettie",
+ "antispoof-mixedscripts": "Combinaçion de scistemi de scrittua non compatibbili",
+ "antispoof-tooshort": "Nomme in forma canonnega troppo curto",
+ "antispoof-ignore": "Ignora i controlli pe spoofing",
+ "antispoof-ignore-help": "O consente a-i utenti con privileggi bastanti de creâ un'utença, sci ben che o so nomme o l'è scimmile a quello de 'n'atra za existente.",
+ "right-override-antispoof": "Ignora i controlli anti-spoofing",
+ "apihelp-antispoof-description": "Controlla un nomme utente co-e veriffiche de normalizaçion AntiSpoof.",
+ "apihelp-antispoof-param-username": "O nomme utente da veificâ co l'AntiSpoof.",
+ "apihelp-antispoof-example-1": "Controlla o nomme utente \"Foo\" con AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignora i controlli anti-spoofing (ghe vœu o drito <code>override-antispoof</code>)"
+}
diff --git a/AntiSpoof/i18n/lki.json b/AntiSpoof/i18n/lki.json
new file mode 100644
index 00000000..7c20e78b
--- /dev/null
+++ b/AntiSpoof/i18n/lki.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hosseinblue"
+ ]
+ },
+ "antispoof-desc": "از ایجاد حساب‌های کاربری با حروف مختلط، گیج‌کننده یا مشابه با دیگر حساب‌های کاربری جلوگیری می‌کند",
+ "antispoof-conflict-top": "نام «$1» خیلی به {{PLURAL:$2|این حساب کاربری|این حساب‌های کاربری}} شباهت دارد.",
+ "antispoof-conflict-bottom": "خواهشا نامئ تر انتخاب کةن",
+ "antispoof-name-illegal": "نام «$1» به دلیل جلوگیری از نام‌های کاربری سردرگم‌کننده یا جعلی مجاز نیست: $2. لطفاً نام دیگری انتخاب کنید.",
+ "antispoof-badtype": "داده با نوع نامناسب",
+ "antispoof-empty": "رشتهٔ خالی",
+ "antispoof-blacklisted": "حاوی نویسهٔ $1 است که در فهرست سیاه قرار دارد",
+ "antispoof-combining": "با علامت جمع $1 شروع می‌شود",
+ "antispoof-unassigned": "دارای نویسه‌های تعیین‌نشده یا نامناسب است$1",
+ "antispoof-deprecated": "شامل نویسهٔ بد $1",
+ "antispoof-noletters": "دربردارندهٔ هیچ حرفی نیست.",
+ "antispoof-mixedscripts": "حاوی نویسه‌های مختلط ناسازگار است",
+ "antispoof-tooshort": "نام متعارف خیلی کوتاه است",
+ "antispoof-ignore": "نادیده‌گرفتن بررسی عبارات سردرگم‌کننده",
+ "right-override-antispoof": "گذر از بررسی عبارات سردرگم‌کننده",
+ "apihelp-antispoof-description": "بررسی یک نام‌ کاربری بر طبق نرمال‌سازی‌های ضدجعل.",
+ "apihelp-antispoof-param-username": "نام کاربری‌ای که با ضدجعل بررسی می‌شود.",
+ "apihelp-antispoof-example-1": "بررسی نام کاربر «Foo» با ضدجعل"
+}
diff --git a/AntiSpoof/i18n/lo.json b/AntiSpoof/i18n/lo.json
new file mode 100644
index 00000000..193dc505
--- /dev/null
+++ b/AntiSpoof/i18n/lo.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": [],
+ "antispoof-name-illegal": "ບໍ່ສາມາດອະນຸຍາດ ຊື່ \"$1\" ໄດ້ ເພີ່ມຫຼີກລ້ຽງ ການສັບສົນ ກັບ : $2. ກະລຸນາເລືອກຊື່ອື່ນ.",
+ "antispoof-badtype": "ປະເພດ ຂໍ້ມູນ ບໍ່ຖືກຕ້ອງ",
+ "antispoof-empty": "ບໍ່ມີໂຕໜັງສື",
+ "antispoof-blacklisted": "ມີໂຕໜັງສືໃນບັນຊີດຳ",
+ "antispoof-combining": "ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍປະສົມ",
+ "antispoof-noletters": "ບໍ່ມີໂຕໜັງສື",
+ "antispoof-mixedscripts": "ມີສະກຣິບປະປົນແບບບໍ່ຖືກຕ້ອງ",
+ "antispoof-tooshort": "ຊື່ຫຍໍ້ສັ້ນໂພດ"
+}
diff --git a/AntiSpoof/i18n/lrc.json b/AntiSpoof/i18n/lrc.json
new file mode 100644
index 00000000..1f6f566d
--- /dev/null
+++ b/AntiSpoof/i18n/lrc.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "Mogoeilor"
+ ]
+ },
+ "antispoof-desc": "مال ونیا وا اسکریپ شیوسه دروس بیه،نومیا کاروری گیژکننه و چی یک",
+ "antispoof-conflict-top": "نوم که فره د{{PLURAL:$2|کاریار|کاریاریا}}: هاری نزیکهد",
+ "antispoof-conflict-bottom": "لطفن یه نوم هنی انتخاو بکید",
+ "antispoof-name-illegal": "نوم \"$1\" سی دماگرتن د گیژ بیین یا اسپوف بیین نوم کاریاریا صلادار نئ:$2\nلطف بکیت یه گل نوم هنی انتخاو بکیت.",
+ "antispoof-badtype": "نوع دونسمنی گن",
+ "antispoof-empty": "رشته حالی",
+ "antispoof-blacklisted": "شومل کاراکتریانوم گه سی $1",
+ "antispoof-combining": "وا شومل بیئن نشون $1 شرو بوئه",
+ "antispoof-unassigned": "شومل کاراکتریا بی نشون $1",
+ "antispoof-deprecated": "شومل کاراکتریا بی نشون $1",
+ "antispoof-noletters": "هیش واجی دش نی",
+ "antispoof-mixedscripts": "شومل نیسه یا شی وسه ناسازگار",
+ "antispoof-tooshort": "نوم قانونی فره کؤچک هئ",
+ "antispoof-ignore": "د نظر نگرتن وارسیا الکی",
+ "right-override-antispoof": "باطل کردن وارسیا الکی",
+ "apihelp-antispoof-description": "وارسی یه گل نوم کاریاری سی وارسی نرمال بیین نها ضد اسپوف.",
+ "apihelp-antispoof-param-username": "وارسی نوم کاریاری سی جستن ضداسپوف.",
+ "apihelp-antispoof-example-1": "نوم کاریاری \"فو\" نه سی ضد اسپوف وارسی بکیت"
+}
diff --git a/AntiSpoof/i18n/lt.json b/AntiSpoof/i18n/lt.json
new file mode 100644
index 00000000..ec09eaf6
--- /dev/null
+++ b/AntiSpoof/i18n/lt.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eitvys200",
+ "Garas",
+ "Homo",
+ "Ignas693",
+ "Perkunas",
+ "Albertas"
+ ]
+ },
+ "antispoof-desc": "Blokuoja kūrimą paskyrų, turinčių maišyto scenarijaus, klaidinančius ar panašius naudotojų vardus",
+ "antispoof-conflict-top": "Vardas \"$1\" yra per daug panašus į {{PLURAL:$2|šį naudotojo vardą|naudotojo vardus}}:",
+ "antispoof-conflict-bottom": "Prašome pasirinkti kitą vardą.",
+ "antispoof-name-illegal": "Vardas \"$1\" neleidžiamas, kad būtų apsisaugota nuo apgaulingų ar parodijuotų naudotojų vardų: $2. Prašome pasirinkti kitą vardą.",
+ "antispoof-badtype": "Blogas duomenų tipas",
+ "antispoof-empty": "Tuščias tekstas",
+ "antispoof-blacklisted": "Turi uždraustą simbolį $1",
+ "antispoof-combining": "Prasideda kombinavimo ženklu $1",
+ "antispoof-unassigned": "Yra nepaskirtas simbolis $1",
+ "antispoof-deprecated": "Turi nenaudotiną simbolį $1",
+ "antispoof-noletters": "Nėra nei vienos raidės",
+ "antispoof-mixedscripts": "Turi nepalaikomų įvairių rašmenų",
+ "antispoof-tooshort": "Kanonizuotas vardas per trumpas",
+ "antispoof-ignore": "Nepaisyti „spoofing“ patikrinimų",
+ "antispoof-ignore-help": "Leidžia vartotojams, turintiems pakankamai teisių, sukurti paskyrą, net jei jos vardas yra panašus į kitos paskyros.",
+ "right-override-antispoof": "Nepaisyti „spoofing“ patikrinimų",
+ "apihelp-antispoof-description": "Patikrinti, ar naudotojo vardas atitinka AntiSpoof's normalizavimo patikras.",
+ "apihelp-antispoof-param-username": "Naudotojo vardas, kuriam atlikti AntiSpoof patikrą.",
+ "apihelp-antispoof-example-1": "Patikrinti naudotojo vardą \"Foo\" su AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignoruoti pokštavimo patikras (reikalingos <code>override-antispoof</code> teisės)."
+}
diff --git a/AntiSpoof/i18n/lv.json b/AntiSpoof/i18n/lv.json
new file mode 100644
index 00000000..49c7ddf0
--- /dev/null
+++ b/AntiSpoof/i18n/lv.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "GreenZeb",
+ "Papuass"
+ ]
+ },
+ "antispoof-desc": "Bloķē kontu izveidi ar jauktas rakstības, mulsinošiem un līdzīgiem lietotājvārdiem",
+ "antispoof-conflict-top": "Nosaukums \"$1\" ir pārāk līdzīgs {{PLURAL:$2|esošajam kontam|šiem $2 kontiem}}:",
+ "antispoof-conflict-bottom": "Lūdzu, izvēlieties citu faila nosaukumu.",
+ "antispoof-badtype": "Nederīgs datu tips",
+ "antispoof-empty": "Tukša virkne",
+ "antispoof-blacklisted": "Satur aizliegtu simbolu $1",
+ "antispoof-unassigned": "Satur nepiešķirtu rakstzīmi $1",
+ "antispoof-noletters": "Nesatur nevienu burtu",
+ "antispoof-mixedscripts": "Satur nesavietojamas jauktas rakstu zīmes"
+}
diff --git a/AntiSpoof/i18n/mai.json b/AntiSpoof/i18n/mai.json
new file mode 100644
index 00000000..519a62f6
--- /dev/null
+++ b/AntiSpoof/i18n/mai.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "बिप्लब आनन्द"
+ ]
+ },
+ "antispoof-conflict-bottom": "कृपया कोनो आन नाम चुनु।",
+ "antispoof-name-illegal": "भ्रामक नाम सभ के रोकए के लेल नाम \"$1\" राखए लेल अवैध अछि: $2\nकृपया कोनो आन नाम चुनल जाए।",
+ "antispoof-badtype": "खराब डाटा प्रकार",
+ "antispoof-empty": "खाली स्ट्रिंग",
+ "antispoof-blacklisted": "ऐ मे बिरोधसूची क्यारेक्टर $1 अछि",
+ "antispoof-combining": "एकत्रिकरण चिन्ह $1 स सुरु होएत अछि",
+ "antispoof-unassigned": "ऐ मे बिरोधसूची क्यारेक्टर $1 अछि",
+ "antispoof-deprecated": "ऐ मे बिरोधसूची क्यारेक्टर $1 अछि",
+ "antispoof-noletters": "ए मे कोनो अक्षर नै अछि",
+ "antispoof-mixedscripts": "एहिमे असङ्गत मिश्र लिपिसभ अछि",
+ "antispoof-tooshort": "अधिकारयुक्त नाम बहुत छोट अछि",
+ "antispoof-ignore": "स्पूफिंग जाँच नै मानू",
+ "right-override-antispoof": "स्पूफिंग जाँच के नै मानू"
+}
diff --git a/AntiSpoof/i18n/map-bms.json b/AntiSpoof/i18n/map-bms.json
new file mode 100644
index 00000000..631460d0
--- /dev/null
+++ b/AntiSpoof/i18n/map-bms.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "StefanusRA",
+ "Umherirrender",
+ "Mbrt"
+ ]
+ },
+ "antispoof-desc": "Menggak nggawé akun sing jeneng panganggone nganggo aksara campuran, mbingungna lan sing mèmper",
+ "antispoof-conflict-top": "Jeneng \"$1\" mèmper banget karo {{PLURAL:$2|jeneng panganggo|}} kiye:",
+ "antispoof-conflict-bottom": "Monggo milih jeneng liyane.",
+ "antispoof-name-illegal": "Jeneng \"$1\" ora olih dinggo supaya wong ora bingung utawa menggak ngapi-api jeneng panganggo sing wis ana: $2.\nMonggo pilihen jeneng liyane baen.",
+ "antispoof-badtype": "Tipe data salah",
+ "antispoof-empty": "Data kosong",
+ "antispoof-blacklisted": "Ngandhut karakter sing ora olih dienggo yakuwe $1",
+ "antispoof-combining": "Diwiwiti karo tandha kombinasi $1",
+ "antispoof-unassigned": "Ana karakter sing ora dienggo yakuwe $1",
+ "antispoof-deprecated": "Ngandhut karakter sing wis ora dinggo maning yakuwe $1",
+ "antispoof-noletters": "Ora ngandhut aksara babar belas",
+ "antispoof-mixedscripts": "Ngandhut aksara campuran sing ora kompatibel",
+ "antispoof-tooshort": "Jeneng kanonikalisasi kecendhaken",
+ "antispoof-ignore": "Lirwakaké pamrikasaan panipuan akun (spoofing)",
+ "right-override-antispoof": "''Override'' pamriksan palècèhan"
+}
diff --git a/AntiSpoof/i18n/mg.json b/AntiSpoof/i18n/mg.json
new file mode 100644
index 00000000..a26a09a3
--- /dev/null
+++ b/AntiSpoof/i18n/mg.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "antispoof-desc": "Manakana ny fanokafana kaonty miaraka amina anaram-pikambana mitovy, mampiasa fomba fanoratana samihafa, na mety azo afangaron.",
+ "antispoof-name-illegal": "Tsy mahazo alalana ny anaram-pikambana \"$1\" noho ny fanakekezany amin'ny anarana \"$2\".\nMisafidia anarana hafa.",
+ "antispoof-badtype": "Tsy izy ny karazana fampahalalàna",
+ "antispoof-empty": "fitohitohizan-tsoratra (string) foàna",
+ "antispoof-blacklisted": "Misy tarehintsoratra voarara",
+ "antispoof-combining": "Manomboka amina mari-pitambatambarana (marque combinatoire)",
+ "antispoof-noletters": "Tsy misy tarehintsoratra",
+ "antispoof-mixedscripts": "Misy endri-tsoratra maro samihafa tsy zaka"
+}
diff --git a/AntiSpoof/i18n/min.json b/AntiSpoof/i18n/min.json
new file mode 100644
index 00000000..d5eba825
--- /dev/null
+++ b/AntiSpoof/i18n/min.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "antispoof-ignore": "Abaikan pamarisoan akun",
+ "right-override-antispoof": "Maimpok namo pangguno"
+}
diff --git a/AntiSpoof/i18n/mk.json b/AntiSpoof/i18n/mk.json
new file mode 100644
index 00000000..50669109
--- /dev/null
+++ b/AntiSpoof/i18n/mk.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06"
+ ]
+ },
+ "antispoof-desc": "Блокира создавање на сметки со имиња од мешани писма/азбуки, кои личат на други кориснички имиња и со тоа создаваат забуни",
+ "antispoof-conflict-top": "Корисничкото име „$1“ е премногу слично на {{PLURAL:$2|следното корисничко име|следните кориснички имиња}}:",
+ "antispoof-conflict-bottom": "Одберете друго корисничко име",
+ "antispoof-name-illegal": "Корисничкото име „$1“ не е дозволено за да се спречат збунувачки имиња кои се злоупотребливо слични: $2.\nОдберете друго корисничко име.",
+ "antispoof-bad-char": "„$1“ ($2)",
+ "antispoof-badtype": "Грешен податочен тип",
+ "antispoof-empty": "Празна низа",
+ "antispoof-blacklisted": "Го содржи забранетиот знак $1",
+ "antispoof-combining": "Започнува со составниот знак $1",
+ "antispoof-unassigned": "Содржи неопределен или застарен знак",
+ "antispoof-deprecated": "Го содржи застарениот знак $1",
+ "antispoof-noletters": "Не содржи букви",
+ "antispoof-mixedscripts": "Содржи нескладни мешани писма/азбуки",
+ "antispoof-tooshort": "Нормализираното име е прекратко",
+ "antispoof-ignore": "Занемари меѓусебно слични имиња",
+ "antispoof-ignore-help": "Им овозможува на корисниците со достатни права да создаваат сметки дури и кога имињата им се слични на постоечки.",
+ "right-override-antispoof": "Прескокнување на проверките за меѓусебно слични имиња",
+ "apihelp-antispoof-description": "Проверете корисничко име со нормализациската проверка на AntiSpoof.",
+ "apihelp-antispoof-summary": "Проверете го корисничко име со нормализациската проверка на AntiSpoof.",
+ "apihelp-antispoof-param-username": "Корисничко име за проверка со AntiSpoof.",
+ "apihelp-antispoof-example-1": "Провери го корисничкото име „Foo“ со AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Занемари ги проверките за забуна на имињата (го бара правото <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/ml.json b/AntiSpoof/i18n/ml.json
new file mode 100644
index 00000000..d210cf65
--- /dev/null
+++ b/AntiSpoof/i18n/ml.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp",
+ "Shijualex"
+ ]
+ },
+ "antispoof-desc": "സങ്കരലിപി, തെറ്റിദ്ധാരണ ഉളവാക്കുന്ന നാമം, ഒരേ തരത്തിലുള്ള ഉപയോക്തൃനാമം എന്നിവ ഉപയോഗിച്ചുള്ള അംഗത്വസൃഷ്ടി തടയൽ",
+ "antispoof-conflict-top": "\"$1\" എന്ന ഉപയോക്തൃനാമം താഴെക്കൊടുക്കുന്ന {{PLURAL:$2|ഉപയോക്തൃനാമത്തോട്|ഉപയോക്തൃനാമങ്ങളോട്}} വളരെ സാമ്യമുള്ളതാണ്:",
+ "antispoof-conflict-bottom": "മറ്റൊരു ഉപയോക്തൃനാമം തിരഞ്ഞെടുക്കുക.",
+ "antispoof-name-illegal": "ഉപയോക്തൃനാമത്തിലെ തെറ്റിദ്ധാരണയും സ്പൂഫിങ്ങും ഒഴിവാക്കാൻ \"$1\" എന്ന ഉപയോക്തൃനാമം അനുവദനീയമല്ല: $2.\nദയവായി മറ്റൊരു നാമം തിരഞ്ഞെടുക്കുക.",
+ "antispoof-badtype": "മോശം ഡേറ്റാ തരം",
+ "antispoof-empty": "ശൂന്യമായ അക്ഷരക്കൂട്ടം",
+ "antispoof-blacklisted": "കരിമ്പട്ടികയിൽ പെട്ട അക്ഷരമായ $1 ഉൾക്കൊള്ളുന്നു",
+ "antispoof-combining": "യോജിപ്പിക്കാനുള്ള അടയാളമായ $1 എന്നതിൽ തുടങ്ങുന്നു",
+ "antispoof-unassigned": "നിർദ്ദേശിക്കപ്പെടാത്തതോ പിന്തള്ളപ്പെട്ടതോ ആയ അക്ഷരം ഉൾക്കൊള്ളുന്നു",
+ "antispoof-deprecated": "ഒഴിവാക്കപ്പെട്ട അക്ഷരമായ $1 ഉണ്ട്",
+ "antispoof-noletters": "അക്ഷരങ്ങൾ ഒന്നും തന്നെ ഇല്ല",
+ "antispoof-mixedscripts": "പൊരുത്തക്കേടുള്ള സങ്കരലിപികൾ ഉൾപ്പെടുന്നു",
+ "antispoof-tooshort": "ചട്ടപ്പടിയാക്കിയ പേര് വളരെ ചെറുതാണ്",
+ "antispoof-ignore": "സ്പൂഫിങ് പരിശോധനകൾ അവഗണിക്കുക",
+ "right-override-antispoof": "സ്പൂഫിങ് പരിശോധനകൾ അതിലംഘിക്കുക",
+ "apihelp-antispoof-description": "കബളിപ്പിക്കൽ തടയൽ നോർമലൈസേഷൻ പരിശോധനകൾക്കൊപ്പം ഉപയോക്തൃനാമം പരിശോധിക്കുക.",
+ "apihelp-antispoof-param-username": "കബളിപ്പിക്കൽ തടയൽ പരിശോധനയിൽ ഉപയോഗിക്കേണ്ട ഉപയോക്തൃനാമം.",
+ "apihelp-antispoof-example-1": "കബളിപ്പിക്കൽ തടയൽ പരിശോധനയിൽ \"Foo\" എന്ന ഉപയോക്തൃനാമം പരിശോധിക്കുക",
+ "apihelp-createaccount-param-ignoreantispoof": "ആൾമാറാട്ട പരിശോധനകൾ അവഗണിക്കുക (<code>override-antispoof</code> അവകാശം വേണം)."
+}
diff --git a/AntiSpoof/i18n/mn.json b/AntiSpoof/i18n/mn.json
new file mode 100644
index 00000000..ebb5a719
--- /dev/null
+++ b/AntiSpoof/i18n/mn.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chinneeb"
+ ]
+ },
+ "antispoof-desc": "Олон тэмдэгтийн системүүдийг хольсон, будилж болох, ойролцоо хэрэглэгчийн нэрийг үүсгэхээс сэргийлдэг.",
+ "antispoof-conflict-top": "\"$1\" гэсэн нэр нь одоо оршиж буй {{PLURAL:$2|дараах|дараах $2}} бүртгэлтэй хэтэрхий төстэй байна:",
+ "antispoof-conflict-bottom": "Өөр нэр сонгоно уу.",
+ "antispoof-name-illegal": "\"$1\" гэсэн нэр нь андуурагдаж болохуйц, хуурмаг хэрэглэгчийн нэрнүүдээс сэргийлэхийн тулд зөвшөөрөгдөхгүй: $2.\nӨөр нэр сонгоно уу.",
+ "antispoof-badtype": "Буруу өгөгдлийн төрөл",
+ "antispoof-empty": "Хоосон цуваа",
+ "antispoof-blacklisted": "Хар дансанд орсон тэмдэгт агуулагдаж байна",
+ "antispoof-combining": "Холбох тэмдэгээр эхлэж байна",
+ "antispoof-unassigned": "Тогтоогоогүй эсвэл хуучирсан тэмдэгт агуулагдаж байна",
+ "antispoof-noletters": "Ямар ч тэмдэгт агуулагдаагүй байна",
+ "antispoof-mixedscripts": "Хоорондоо нийцэхгүй холилдсон бичилтүүд агуулагдаж байна",
+ "antispoof-tooshort": "Албан ёсны нэр хэт богино байна",
+ "antispoof-ignore": "Ойролцоо нэрний шалгуурыг үл тоомсорлох",
+ "right-override-antispoof": "Ойролцоо нэрний шалгуурыг няцаах"
+}
diff --git a/AntiSpoof/i18n/mr.json b/AntiSpoof/i18n/mr.json
new file mode 100644
index 00000000..3eba2dd3
--- /dev/null
+++ b/AntiSpoof/i18n/mr.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Balaji",
+ "Dnyanesh325",
+ "Kaustubh",
+ "Mahitgar",
+ "Mvkulkarni23",
+ "Saleelk",
+ "V.narsikar",
+ "प्रणव कुलकर्णी"
+ ]
+ },
+ "antispoof-desc": "मिश्र भाषा तसेच संभ्रमित करणारी व सारखी असणारी सदस्य नामे वापरण्यास बंदी आहे.",
+ "antispoof-conflict-top": "\"$1\" नाव {{PLURAL:$2|सदस्यनावाशी|सदस्यनावांशी}} खूपच मिळतेजुळते आहे:",
+ "antispoof-conflict-bottom": "कृपया दुसरे नाव निवडा.",
+ "antispoof-name-illegal": "\"$1\" हे नाव वापरण्यास बंदी आहे कारण हे नाव इतर नावांशी साम्य राखते: $2.\nत्यामुळे कृपया वेगळे नाव वापरा.",
+ "antispoof-badtype": "वाईट विदा (डाटा) प्रकार",
+ "antispoof-empty": "रिकामा धागा",
+ "antispoof-blacklisted": "मान्यताप्राप्त यादीत नसलेले अक्षर $1",
+ "antispoof-combining": "एकत्रीकरण चिन्हाने सुरुवात केलेली आहे $1",
+ "antispoof-unassigned": "यामध्ये चुकीची चिन्हे आहेत $1",
+ "antispoof-deprecated": "नापसंत वर्ण $1 यात आहेत",
+ "antispoof-noletters": "कोणत्याही अक्षराचा समावेश नाही",
+ "antispoof-mixedscripts": "यामध्ये इतर मिश्र लिपी आहेत.",
+ "antispoof-tooshort": "अधिकारयुक्त नाव खूप छोटे आहे",
+ "antispoof-ignore": "नकली चिन्हे विसरा",
+ "right-override-antispoof": "स्पूफिंग चेक्स कडे दुर्लक्ष करा"
+}
diff --git a/AntiSpoof/i18n/ms.json b/AntiSpoof/i18n/ms.json
new file mode 100644
index 00000000..6c6901c2
--- /dev/null
+++ b/AntiSpoof/i18n/ms.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aurora",
+ "Aviator"
+ ]
+ },
+ "antispoof-desc": "Menyekat pembukaan akaun dengan nama pengguna yang mengelirukan, menyerupai orang lain, atau terdiri daripada campuran sistem-sistem tulisan yang berlainan",
+ "antispoof-conflict-top": "Nama \"$1\" menyerupai {{PLURAL:$2|nama pengguna|nama pengguna}} berikut:",
+ "antispoof-conflict-bottom": "Sila pilih nama lain.",
+ "antispoof-name-illegal": "Nama \"$1\" tidak dibenarkan kerana mengelirukan atau menipu: $2. Sila pilih nama lain.",
+ "antispoof-badtype": "Jenis data salah",
+ "antispoof-empty": "Rentetan kosong",
+ "antispoof-blacklisted": "Mengandungi aksara $1 yang telah disenaraihitamkan",
+ "antispoof-combining": "Bermula dengan tanda penggabung $1",
+ "antispoof-unassigned": "Mengandungi aksara yang tidak diuntukkan atau yang lapuk",
+ "antispoof-deprecated": "Mengandungi aksara $1 yang lapuk",
+ "antispoof-noletters": "Tidak mengandungi huruf",
+ "antispoof-mixedscripts": "Mengandungi campuran sistem-sistem tulisan yang tidak bersesuaian",
+ "antispoof-tooshort": "Nama berkanun terlalu pendek",
+ "antispoof-ignore": "Abaikan pemeriksaan penipuan",
+ "right-override-antispoof": "Mengatasi pemeriksaan penipuan"
+}
diff --git a/AntiSpoof/i18n/mt.json b/AntiSpoof/i18n/mt.json
new file mode 100644
index 00000000..e5f02011
--- /dev/null
+++ b/AntiSpoof/i18n/mt.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Umherirrender"
+ ]
+ },
+ "antispoof-desc": "Jimblokka l-ħolqien ta' kontijiet b'karattri mħawwda, ismijiet tal-utent li joħolqu konfużjoni jew huma wisq simili ma' xulxin.",
+ "antispoof-conflict-top": "L-isem \"$1\" huwa wisq simili {{PLURAL:$2|għall-kont eżistenti|għal $2 kontijiet segwenti}}:",
+ "antispoof-conflict-bottom": "Jekk jogħġbok agħżel isem ieħor.",
+ "antispoof-name-illegal": "L-isem \"$1\" mhuwiex permess sabiex jiġi evitat kwalunkwe konfużjoni jew użu qarrieq: $2. Agħżel isem ieħor.",
+ "antispoof-badtype": "Tip ta' dejta ħażina",
+ "antispoof-empty": "Stringa vojta",
+ "antispoof-blacklisted": "Jinkludi l-karattru li mhuwiex permess $1",
+ "antispoof-combining": "Jibda bil-kombinazzjoni ta' karattri $1",
+ "antispoof-unassigned": "Jinkludi l-karattru mhux assenjat $1",
+ "antispoof-noletters": "Ma jinkludix ittri",
+ "antispoof-mixedscripts": "Jinkludi skripts imħallta li mhumiex kompatibbli",
+ "antispoof-tooshort": "L-isem fil-forma kanonika huwa wisq qasir",
+ "antispoof-ignore": "Injora l-kontroll għall-ispoofing",
+ "right-override-antispoof": "Jinjora l-kontrolli għall-''ispoofing''"
+}
diff --git a/AntiSpoof/i18n/myv.json b/AntiSpoof/i18n/myv.json
new file mode 100644
index 00000000..0d160f2b
--- /dev/null
+++ b/AntiSpoof/i18n/myv.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amdf",
+ "Botuzhaleny-sodamo"
+ ]
+ },
+ "antispoof-badtype": "Датань аволь истямо типесь",
+ "antispoof-empty": "Чаво пикске"
+}
diff --git a/AntiSpoof/i18n/nah.json b/AntiSpoof/i18n/nah.json
new file mode 100644
index 00000000..3aa11e2d
--- /dev/null
+++ b/AntiSpoof/i18n/nah.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fluence",
+ "Akapochtli"
+ ]
+ },
+ "antispoof-badtype": "Ahcualli tlahcuiloliztli"
+}
diff --git a/AntiSpoof/i18n/nap.json b/AntiSpoof/i18n/nap.json
new file mode 100644
index 00000000..bc7648fc
--- /dev/null
+++ b/AntiSpoof/i18n/nap.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "C.R."
+ ]
+ },
+ "antispoof-desc": "Blocca 'a criazione 'e cunte utente cu nu script-mmescato, crianno cunfusione o nomme c'assomigliassero nfra lloro",
+ "antispoof-conflict-top": "'O nomme \"$1\" s'assomiglia assaje assaje a {{PLURAL:$2|'o cunto|'e cunte}}:",
+ "antispoof-conflict-bottom": "Pe' piacere scigliete n'atu nomme.",
+ "antispoof-name-illegal": "'O nomme \"$1\" nun è permesso pe prevenì casine o mbruoglie 'e nomme utente: $2.\nPe' piacere scigliete n'atu nomme.",
+ "antispoof-badtype": "Tipo 'e data errato",
+ "antispoof-empty": "Stringa abbacante",
+ "antispoof-blacklisted": "Cuntene carattere dint' 'a lista nira $1",
+ "antispoof-combining": "Accummencia cu na marca cumbinata $1",
+ "antispoof-unassigned": "Cuntene nu carattere nun azegnato $1",
+ "antispoof-deprecated": "Cuntene carattere deprecato $1",
+ "antispoof-noletters": "Nun cuntene nisciuna lettera",
+ "antispoof-mixedscripts": "Cuntene script mmiscate incompatibbele",
+ "antispoof-tooshort": "Nomme canonizzato troppo curto",
+ "antispoof-ignore": "Lassa perdere 'e check pe' spoofing (mbruoglie)",
+ "antispoof-ignore-help": "Premmettesse a ll'editure ch' 'e privilegge 'e crià nu cunto pure si 'o nomme assumigliass'a nu cunto ch'esiste già.",
+ "right-override-antispoof": "Sovrascrive 'e check pe' spoofing (mbruoglie)",
+ "apihelp-antispoof-description": "Cuntrolla nu nomme utente a cunfronto ch' 'e cuntrolle 'e normalizzaziona 'AntiSpoof.",
+ "apihelp-antispoof-param-username": "Nomme utente ca s'avesse 'e cuntrullà d'AntiSpoof.",
+ "apihelp-antispoof-example-1": "Cuntrolla nomme utente \"Foo\" d'AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Lasse perdere le verifiche de spoofing (vole 'u deritte <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/nb.json b/AntiSpoof/i18n/nb.json
new file mode 100644
index 00000000..a3ecdab7
--- /dev/null
+++ b/AntiSpoof/i18n/nb.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dittaeva",
+ "Event",
+ "Chameleon222",
+ "Jon Harald Søby"
+ ]
+ },
+ "antispoof-desc": "Hindrer oppretting av kontoer med lignende eller forvirrende brukernavn, eller brukernavn som inneholder to forskjellige alfabettyper",
+ "antispoof-conflict-top": "Brukernavnet «$1» er for likt følgende {{PLURAL:$2|konto|kontoer}}:",
+ "antispoof-conflict-bottom": "Velg et annet brukernavn.",
+ "antispoof-name-illegal": "Brukernavnet «$1» er ikke tillatt for å forhindre sammenblanding: $2. Vennligst velg et annet navn.",
+ "antispoof-badtype": "Ugyldig datatype",
+ "antispoof-empty": "Tom streng",
+ "antispoof-blacklisted": "Inneholder det svartelistede tegnet $1",
+ "antispoof-combining": "Begynner med kombinasjonstegnet $1",
+ "antispoof-unassigned": "Inneholder ugyldig eller foreldet tegn.",
+ "antispoof-deprecated": "Inneholder det ulovlige tegnet «$1»",
+ "antispoof-noletters": "Inneholder ingen bokstaver",
+ "antispoof-mixedscripts": "Inneholder blanding av skriftsystemer",
+ "antispoof-tooshort": "Normalisert navn er for kort",
+ "antispoof-ignore": "Ignorer misbrukssjekk",
+ "antispoof-ignore-help": "Lar brukere med tilstrekkelige rettigheter opprette en konto selv om navnet ligner på en eksisterende konto.",
+ "right-override-antispoof": "Overkjøre sjekk av brukernavn",
+ "apihelp-antispoof-description": "Sjekker et brukernavn mot AntiSpoofs normaliseringskontroller.",
+ "apihelp-antispoof-summary": "Sjekk et brukernavn mot AntiSpoofs normaliseringssjekker.",
+ "apihelp-antispoof-param-username": "Brukernavnet som skal sjekkes mot AntiSpoof.",
+ "apihelp-antispoof-example-1": "Sjekk brukernavn «Foo» mot AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorer misbrukskontroller (krever rettigheten <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/nds-nl.json b/AntiSpoof/i18n/nds-nl.json
new file mode 100644
index 00000000..1ec04165
--- /dev/null
+++ b/AntiSpoof/i18n/nds-nl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "antispoof-desc": "Blokkeert t anmaken van gebrukers mit meerdere schriften, verwarrende en soortgelieke gebrukersnamen",
+ "antispoof-conflict-top": "De naam \"$1\" lik te veule op de volgende bestaonde {{PLURAL:$2|gebruker|$2 gebrukers}}:",
+ "antispoof-conflict-bottom": "Kies n aandere naam.",
+ "antispoof-name-illegal": "De naam \"$1\" is niet toe-estaon, um verwarring of lelike gebrukersnamen te veurkoemen: $2. Kies n aandere naam.",
+ "antispoof-badtype": "Ongeldig datatype",
+ "antispoof-empty": "Leeg veld",
+ "antispoof-blacklisted": "Hierin steet t verbeujen teken $1",
+ "antispoof-combining": "Begint mit t kombinasieteken $1",
+ "antispoof-unassigned": "Bevat n niet toe-ewezen of ongewunst teken",
+ "antispoof-deprecated": "Hierin steet t verbeujen teken $1",
+ "antispoof-noletters": "Bevat gien letters",
+ "antispoof-mixedscripts": "Bevat onverenigbaore schriftsystemen",
+ "antispoof-tooshort": "De naam die'j in-evoerd hebben is te kort.",
+ "antispoof-ignore": "Kontrole op soortgelieke gebrukersnamen negeren",
+ "right-override-antispoof": "Fopkontroles negeren"
+}
diff --git a/AntiSpoof/i18n/nds.json b/AntiSpoof/i18n/nds.json
new file mode 100644
index 00000000..7af57a3e
--- /dev/null
+++ b/AntiSpoof/i18n/nds.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Slomox"
+ ]
+ },
+ "antispoof-desc": "Verhinnert dat Opstellen vun Brukerkonten mit mischte Tekensätz un Brukernaams, de verwirrt oder liek utseht as annere Brukernaams",
+ "antispoof-conflict-top": "De Naam „$1“ is to ähnlich to {{PLURAL:$2|dat Brukerkonto|de $2 Brukerkonten}}, de dat al gifft:",
+ "antispoof-conflict-bottom": "Söök di en annern Naam ut.",
+ "antispoof-name-illegal": "De Brukernaam „$1“ is nich verlöövt. Grund: $2<br />Söök di en annern Brukernaam ut.",
+ "antispoof-badtype": "Leeg Datentyp",
+ "antispoof-empty": "Feld leddig",
+ "antispoof-blacklisted": "In’n Text sünd nich verlöövte Teken binnen",
+ "antispoof-combining": "Kombinatschoonsteken to Anfang",
+ "antispoof-unassigned": "In’n Text sünd nich toornte oder nich wünschte Teken binnen",
+ "antispoof-noletters": "Dor sünd kene Bookstaven in.",
+ "antispoof-mixedscripts": "in’n Text sünd Teken ut verschedene Schriftsystemen binnen",
+ "antispoof-tooshort": "De kanoniseerte Naam is to kort.",
+ "antispoof-ignore": "Nich op ähnliche Brukernaams pröfen",
+ "right-override-antispoof": "De Kuntrull op ähnliche Brukernaams ümgahn"
+}
diff --git a/AntiSpoof/i18n/ne.json b/AntiSpoof/i18n/ne.json
new file mode 100644
index 00000000..fdd7d8fb
--- /dev/null
+++ b/AntiSpoof/i18n/ne.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bhawani Gautam",
+ "Bhawani Gautam Rhk",
+ "सरोज कुमार ढकाल",
+ "राम प्रसाद जोशी"
+ ]
+ },
+ "antispoof-desc": "भ्रामक तथा एकै प्रकारका प्रयोगकर्ता नामहरू, मिश्रित-स्क्रिप्ट भएका खाताहरू बनाउनमाथि रोक लगाउने",
+ "antispoof-conflict-top": " \"$1\" नाम {{PLURAL:$2|वर्तमान खाता|निम्नलिखित $2 खाताहरू}}सँग धेरै मिल्न जान्छ :",
+ "antispoof-conflict-bottom": "कृपया अर्को नाम छान्नुहोस्।",
+ "antispoof-name-illegal": "$2 भ्रामक र जाली प्रयोगकर्ता नामको रोकथामको निम्ति \"$1\" नामलाई अनुमति छैन।\nकृपया अर्को नाम छान्नुहोस्।",
+ "antispoof-badtype": "अमान्य आँकड़ा प्रकार",
+ "antispoof-empty": "रिक्त रज्जु (string)",
+ "antispoof-blacklisted": "कालो सुचीमा रहेको वर्ण $1 रहेको छ",
+ "antispoof-combining": "संयोजन चिन्हबाट सुरु हुने",
+ "antispoof-noletters": "कुनै अक्षरहरु नभएको",
+ "antispoof-mixedscripts": "असंगत मिश्रित लिपिहरू सम्मिलित गरिएको",
+ "antispoof-tooshort": "संक्षिप्त साह्रै छोटो नाम",
+ "antispoof-ignore": "धोका रोकाईलाई अन्देखा गर्ने"
+}
diff --git a/AntiSpoof/i18n/nl.json b/AntiSpoof/i18n/nl.json
new file mode 100644
index 00000000..7147acee
--- /dev/null
+++ b/AntiSpoof/i18n/nl.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "AvatarTeam",
+ "Erwin",
+ "HanV",
+ "SPQRobin",
+ "Siebrand",
+ "Esketti",
+ "McDutchie",
+ "Mainframe98"
+ ]
+ },
+ "antispoof-desc": "Blokkeert het aanmaken van gebruikersnamen in meerdere schriften, en verwarrende en gelijkende gebruikersnamen",
+ "antispoof-conflict-top": "De gebruikersnaam \"$1\" lijkt te veel op de volgende bestaande {{PLURAL:$2|gebruikersnaam|$2 gebruikersnamen}}:",
+ "antispoof-conflict-bottom": "Kies een andere naam.",
+ "antispoof-name-illegal": "De gebruikersnaam \"$1\" is niet toegestaan om verwarring of gefingeerde gebruikersnamen te voorkomen: $2.\nKies een andere naam.",
+ "antispoof-badtype": "Ongeldig gegevenstype",
+ "antispoof-empty": "Lege string",
+ "antispoof-blacklisted": "Bevat verboden teken $1",
+ "antispoof-combining": "Begint met gecombineerd merkteken $1",
+ "antispoof-unassigned": "Bevat het niet toegewezen teken $1",
+ "antispoof-deprecated": "Bevat verouderd teken $1",
+ "antispoof-noletters": "Bevat geen letters",
+ "antispoof-mixedscripts": "Bevat niet compatibele schriften",
+ "antispoof-tooshort": "Afgekorte naam te kort",
+ "antispoof-ignore": "Controle op gelijkende gebruikersnamen negeren",
+ "antispoof-ignore-help": "Laat gebruikers met voldoende rechten toe om een account aan te maken, zelfs als deze naam op een bestaande accountnaam lijkt.",
+ "right-override-antispoof": "Spoofcontroles negeren",
+ "apihelp-antispoof-description": "Een gebruikersnaam in de normaliseringscontrole van AntiSpoof opnemen.",
+ "apihelp-antispoof-param-username": "De gebruikersnaam om te controleren met AntiSpoof.",
+ "apihelp-antispoof-example-1": "De gebruikersnaam \"Foo\" controleren met AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Spoofcontroles negeren (vereist het recht <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/nn.json b/AntiSpoof/i18n/nn.json
new file mode 100644
index 00000000..34450467
--- /dev/null
+++ b/AntiSpoof/i18n/nn.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dittaeva",
+ "Harald Khan",
+ "Njardarlogar"
+ ]
+ },
+ "antispoof-desc": "Blokkerer for oppretting av konti med liknande eller forvirrande brukarnamn, eller brukarnamn som inneheld forskjellige alfabettypar",
+ "antispoof-conflict-top": "Namnet «$1» er for likt følgjande {{PLURAL:$2|konto|kontoar}}:",
+ "antispoof-conflict-bottom": "Vel eit anna namn.",
+ "antispoof-name-illegal": "Namnet «$1» er ikkje tillate for å hindra samanblanding: $2.\nVer venleg og vel eit anna namn.",
+ "antispoof-badtype": "Ugyldig datatype",
+ "antispoof-empty": "Tom streng",
+ "antispoof-blacklisted": "Inneheld det svartelista teiknet $1",
+ "antispoof-combining": "Byrjar med kombinasjonsteiknet «$1»",
+ "antispoof-unassigned": "Inneheld ugyldig eller forelda teikn",
+ "antispoof-deprecated": "Inneheld det eldre teiknet $1",
+ "antispoof-noletters": "Inneheld ingen bokstavar",
+ "antispoof-mixedscripts": "Inneheld blanding av ikkje-kompatible skriftsystem",
+ "antispoof-tooshort": "Namnet er for kort",
+ "antispoof-ignore": "Ignorer misbrukssjekk",
+ "right-override-antispoof": "Overkøyra sjekk av brukarnamn"
+}
diff --git a/AntiSpoof/i18n/nso.json b/AntiSpoof/i18n/nso.json
new file mode 100644
index 00000000..0f44567e
--- /dev/null
+++ b/AntiSpoof/i18n/nso.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mohau"
+ ]
+ },
+ "antispoof-conflict-bottom": "Ka kgopelo, kgetha leina le lengwe.",
+ "antispoof-name-illegal": "Leina le \"$1\", ga la dumelwa go thibela go rarakana: $2. Ka kgopelo, kgetha leina le lengwe.",
+ "antispoof-badtype": "Mohuta o mobe wa 'data'",
+ "antispoof-blacklisted": "E nale dihlaka $1 tšeo di sego tša dumelwa",
+ "antispoof-noletters": "Ga e na dihlaka"
+}
diff --git a/AntiSpoof/i18n/oc.json b/AntiSpoof/i18n/oc.json
new file mode 100644
index 00000000..db3d6934
--- /dev/null
+++ b/AntiSpoof/i18n/oc.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31"
+ ]
+ },
+ "antispoof-desc": "Blòca, amb un escript mixt, la creacion dels comptes per de noms d'utilizaires similars o podent prestar a confusion.",
+ "antispoof-conflict-top": "Lo nom « $1 » es tròp similar {{PLURAL:$2|a l'utilizaire seguent|als utilizaires seguents}} :",
+ "antispoof-conflict-bottom": "Causissètz un autre nom d'utilizaire.",
+ "antispoof-name-illegal": "Lo nom d'utilizaire « $1 » es pas autorizat, per fin d'evitar la confusion o l'usurpacion de noms d'utilizaire : $2.\nCausissètz un autre nom d'utilizaire.",
+ "antispoof-badtype": "Marrit tipe de donadas",
+ "antispoof-empty": "Cadena voida",
+ "antispoof-blacklisted": "Conten lo caractèr interdit $1",
+ "antispoof-combining": "Comença amb una marca combinatòria $1",
+ "antispoof-unassigned": "Conten un caractèr non assignat $1",
+ "antispoof-deprecated": "Conten lo caractèr obsolèt $1",
+ "antispoof-noletters": "Conten pas cap de letra",
+ "antispoof-mixedscripts": "Conten mantun escript incompatible",
+ "antispoof-tooshort": "Nom normalizat tròp cort",
+ "antispoof-ignore": "Ignorar las verificacions d'engana",
+ "right-override-antispoof": "Espotís de pseudoverificacions"
+}
diff --git a/AntiSpoof/i18n/olo.json b/AntiSpoof/i18n/olo.json
new file mode 100644
index 00000000..2e724303
--- /dev/null
+++ b/AntiSpoof/i18n/olo.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mashoi7",
+ "Ilja.mos"
+ ]
+ },
+ "antispoof-conflict-top": "Nimi \"$1\" on liijakse yhtenjyttyine {{PLURAL:$2|tämän nimenke|nämmien nimienke}}:",
+ "antispoof-conflict-bottom": "Ole hyvä, valliče toine nimi.",
+ "antispoof-empty": "Tyhjy rivi"
+}
diff --git a/AntiSpoof/i18n/or.json b/AntiSpoof/i18n/or.json
new file mode 100644
index 00000000..dc926d03
--- /dev/null
+++ b/AntiSpoof/i18n/or.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jnanaranjan Sahu",
+ "Psubhashish"
+ ]
+ },
+ "antispoof-desc": "ମିଶା-ସ୍କ୍ରିପ୍ଟ, ଭ୍ରମାତ୍ମକ ଓ ଏକା ଇଉଜର ନାଆଁ ତିଆରିକୁ ବନ୍ଦ କରିଥାଏ",
+ "antispoof-conflict-top": "\"$1\" ନାମଟି ଏହି {{PLURAL:$2|ସଭ୍ୟ ନାମ|$2 ସଭ୍ୟ ନାମମାନଙ୍କ}} ସହିତ ବହୁତ ସମାନ:",
+ "antispoof-conflict-bottom": "ଦୟାକରି ଆଉ ଗୋଟେ ନାଆଁ ବାଛନ୍ତୁ ।",
+ "antispoof-name-illegal": "ସନ୍ଦେହ ହେଲାଭଳି ନାଆଁପାଇଁ \"$1\" ନାଆଁଟିକୁ ଅନୁମତି ଦେଇପାରୁନାହୁଁ: $2 ।\nଦୟାକରି ଆଉଗୋଟିଏ ନାଆଁ ବାଛନ୍ତୁ ।",
+ "antispoof-badtype": "ଖରାପ ତଥ୍ୟ",
+ "antispoof-empty": "ଖାଲି ଘର",
+ "antispoof-blacklisted": "ଏଥିରେ $1ନାମକ ବାରଣ କରାଯାଇଥିବା ଅକ୍ଷର ଅଛି",
+ "antispoof-combining": "$1ମିଶାଇବା ଚିହ୍ନସହ ଆରମ୍ଭ ହୁଏ",
+ "antispoof-unassigned": "ଏଥିରେ ଏବେଯାଏଁ ଦିଆ ଯାଇନଥିବା ଅକ୍ଷର $1 ଅଛି",
+ "antispoof-deprecated": "ଏଥିରେ $1ନାମକ ଅଦରକାରୀ ଅକ୍ଷର ଅଛି",
+ "antispoof-noletters": "ଏଥିରେ କିଛି ବି ଲେଖା ନାହିଁ",
+ "antispoof-mixedscripts": "ଏଥିରେ ମିଶୁନଥିବା ଅଜଣା ଲେଖା ଅଛି",
+ "antispoof-tooshort": "ମୂଳ ନାଆଁଟି ଖୁବ ସାନ",
+ "antispoof-ignore": "ଖରାପ ନାଆଁକୁ ଦେଖନ୍ତୁ ନାହିଁ",
+ "right-override-antispoof": "ଜାଣିଶୁଣି କରାଯିଇଥିବା ଭୁଲସବୁକୁ ଅଣଦେଖା କରିବେ"
+}
diff --git a/AntiSpoof/i18n/os.json b/AntiSpoof/i18n/os.json
new file mode 100644
index 00000000..d6d82123
--- /dev/null
+++ b/AntiSpoof/i18n/os.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco",
+ "Amire80"
+ ]
+ },
+ "antispoof-empty": "Афтид рæнхъ",
+ "antispoof-noletters": "Иу дамгъæ дæр нæй"
+}
diff --git a/AntiSpoof/i18n/pa.json b/AntiSpoof/i18n/pa.json
new file mode 100644
index 00000000..4071bcd7
--- /dev/null
+++ b/AntiSpoof/i18n/pa.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Satdeep gill",
+ "TariButtar"
+ ]
+ },
+ "antispoof-conflict-bottom": "ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਹੋਰ ਨਾਮ ਚੁਣੋ।",
+ "antispoof-empty": "ਖਾਲੀ ਸਟਰਿੰਗ",
+ "antispoof-noletters": "ਇਸ ਵਿੱਚ ਕੋਈ ਅੱਖਰ ਮੌਜੂਦ ਨਹੀਂ ਹਨ"
+}
diff --git a/AntiSpoof/i18n/pag.json b/AntiSpoof/i18n/pag.json
new file mode 100644
index 00000000..3a421ad5
--- /dev/null
+++ b/AntiSpoof/i18n/pag.json
@@ -0,0 +1,6 @@
+{
+ "@metadata": [],
+ "antispoof-empty": "String ya Andilugan",
+ "antispoof-blacklisted": "Walay laman ton bawal ya character",
+ "antispoof-noletters": "Anggapoy laman ton letra"
+}
diff --git a/AntiSpoof/i18n/pam.json b/AntiSpoof/i18n/pam.json
new file mode 100644
index 00000000..36d265a2
--- /dev/null
+++ b/AntiSpoof/i18n/pam.json
@@ -0,0 +1,15 @@
+{
+ "@metadata": {
+ "authors": [
+ "Katimawan2005",
+ "Val2397"
+ ]
+ },
+ "antispoof-desc": "Sabatan na ing pamaglalang kareng account a maki misasamut a kulit (mixed-script), makabaligo ampong miwawangis a lagyungtalagamit (username).",
+ "antispoof-name-illegal": "E malyaring gamitan ing \"$1\" uling bawal la reng username a mákabaligo o balamu piglocu: $2. Sana mamili kang aliwang lagyu.",
+ "antispoof-badtype": "Marauak a uri ning data",
+ "antispoof-blacklisted": "↓Maki kulit (character) yang mibawal $1",
+ "antispoof-combining": "↓Magumpisa yang miki piabeng palatandanan $1",
+ "antispoof-noletters": "Ala yang letra",
+ "antispoof-mixedscripts": "Misamut la reng sulat a e malyaring piyabe"
+}
diff --git a/AntiSpoof/i18n/pfl.json b/AntiSpoof/i18n/pfl.json
new file mode 100644
index 00000000..11f33a38
--- /dev/null
+++ b/AntiSpoof/i18n/pfl.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Manuae"
+ ]
+ },
+ "antispoof-desc": "Vahinad's Easchdelle vun Benudzakonde mid gmischde Zaische, vawirrende un ähnlische Benudzanoame",
+ "antispoof-conflict-top": "De Noame „$1“ {{PLURAL:$2|ischm oanare Benudzakondo|ischde oanere $2 Benudzakondene}} zu ähnlisch:",
+ "antispoof-conflict-bottom": "Nemm bidde än onere Nome.",
+ "antispoof-name-illegal": "De Noame „$1“ derfma ned nemme wesche: $2\nNemmän onare Noame.",
+ "antispoof-badtype": "Uugildische Aad vun Daade",
+ "antispoof-empty": "Leares Feld",
+ "antispoof-blacklisted": "Do hods ä uugildisches Zaische $1.",
+ "antispoof-combining": "S'fongd midm Vabindungszaische $1 oa.",
+ "antispoof-unassigned": "S'hod ned zug'ordnedi Zaische $1",
+ "antispoof-deprecated": "S'hod va'aldedi Zaische $1",
+ "antispoof-noletters": "Do hods kä Buchschdawe",
+ "antispoof-mixedscripts": "Do hods Zaische vun unaschiedlische Schrifde.",
+ "antispoof-tooshort": "De kanonisierde Noame isch zu korz",
+ "antispoof-ignore": "Fälschungsiwabriefung iwageje",
+ "right-override-antispoof": "Fälschungsiwabriefung iwschraiwe"
+}
diff --git a/AntiSpoof/i18n/pl.json b/AntiSpoof/i18n/pl.json
new file mode 100644
index 00000000..ec85cec1
--- /dev/null
+++ b/AntiSpoof/i18n/pl.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "BeginaFelicysym",
+ "Chrumps",
+ "Derbeth",
+ "Mikołka",
+ "Sp5uhe",
+ "Matma Rex",
+ "Woytecr"
+ ]
+ },
+ "antispoof-desc": "Blokuje tworzenie kont użytkowników o nazwach podobnych do już istniejących lub dezorientujących",
+ "antispoof-conflict-top": "Nazwa użytkownika „$1” jest zbyt podobna do {{PLURAL:$2|następującej nazwy konta|następujących nazw kont}}:",
+ "antispoof-conflict-bottom": "Wybierz inną nazwę użytkownika.",
+ "antispoof-name-illegal": "Nazwa użytkownika „$1” nie jest dozwolona, gdyż może być myląca: $2.\nWybierz inną nazwę użytkownika.",
+ "antispoof-badtype": "Zły typ danych",
+ "antispoof-empty": "Pusty ciąg znaków",
+ "antispoof-blacklisted": "Zawiera niedozwolony znak $1",
+ "antispoof-combining": "Zaczyna się od łącznika $1",
+ "antispoof-unassigned": "Zawiera nieprzypisany znak $1",
+ "antispoof-deprecated": "Zawiera niezalecany znak $1",
+ "antispoof-noletters": "Nie zawiera ani jednej litery",
+ "antispoof-mixedscripts": "Zawiera przemieszane znaki niezgodnych ze sobą pism",
+ "antispoof-tooshort": "Normalizowana nazwa użytkownika zbyt krótka",
+ "antispoof-ignore": "Ignoruj podobieństwo do istniejących nazw",
+ "antispoof-ignore-help": "Pozwala użytkownikom z określonymi uprawnieniami na utworzenie konta, nawet gdy jego nazwa jest podobna do istniejącego już konta.",
+ "right-override-antispoof": "Brak ograniczenia przed zakładaniem kont o podobnych nazwach do już istniejących",
+ "apihelp-antispoof-description": "Sprawdź nazwę użytkownika według kryteriów AntiSpoof.",
+ "apihelp-antispoof-param-username": "Nazwa użytkownika, którą sprawdzić za pomocą AntiSpoof.",
+ "apihelp-antispoof-example-1": "Sprawdź nazwę użytkownika \"Foo\" za pomocą AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignoruj sprawdzenie podobieństwa nazwy (wymaga uprawnienia <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/pms.json b/AntiSpoof/i18n/pms.json
new file mode 100644
index 00000000..f86337cd
--- /dev/null
+++ b/AntiSpoof/i18n/pms.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borichèt",
+ "Bèrto 'd Sèra",
+ "Dragonòt"
+ ]
+ },
+ "antispoof-desc": "A blòca la creassion ëd cont con nòm utent mës-cià a script, confundent e via parèj",
+ "antispoof-conflict-top": "Ël nòm «$1» a smija tròp a {{PLURAL:$2|lë stranòm sì-dapress|a jë stranòm sì-dapress}}:",
+ "antispoof-conflict-bottom": "Për piasì sern n'àutr nòm.",
+ "antispoof-name-illegal": "Lë stranòm \"$1\" as peul nen dovresse për evité confusion e/ò che cheidun as fassa passé për: $2. Për piasì, ch'as në sërna n'àotr.",
+ "antispoof-badtype": "Sòrt ëd dat nen bon-a",
+ "antispoof-empty": "Espression veujda",
+ "antispoof-blacklisted": "A-i é ëd caràter ch'as peulo pa dovresse $1",
+ "antispoof-combining": "As anandia con na combinassion $1",
+ "antispoof-unassigned": "A conten dij caràter nen assignà $1",
+ "antispoof-deprecated": "A conten dij caràter frust $1",
+ "antispoof-noletters": "A l'ha pa gnun caràter",
+ "antispoof-mixedscripts": "Combinassion ëd sistema dë scritura ch'as peulo pa butesse ansema",
+ "antispoof-tooshort": "Butà an forma canònica lë stranòm a resta esagerà curt",
+ "antispoof-ignore": "Sàuta ij controj dë spoofing",
+ "right-override-antispoof": "Ignora ij controj dë spoofing",
+ "apihelp-antispoof-description": "Verifiché në stranòm contra le verìfiche ëd normalisassion d'AntiSpoof.",
+ "apihelp-antispoof-param-username": "Lë stranòm da verifiché contra AntiSpoof.",
+ "apihelp-antispoof-example-1": "Verifiché lë stranòm «Foo» contra AntiSpoof"
+}
diff --git a/AntiSpoof/i18n/pnb.json b/AntiSpoof/i18n/pnb.json
new file mode 100644
index 00000000..46abe0b6
--- /dev/null
+++ b/AntiSpoof/i18n/pnb.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khalid Mahmood",
+ "Abbas dhothar"
+ ]
+ },
+ "antispoof-desc": "ایدے توں ملے جلے، سر پھرے تے رلدے خط آلے ورتن ناں بنن توں رک جاندے نیں",
+ "antispoof-conflict-top": "اے ناں \"$1\" پہلاں توں بنے ہوۓ {{PLURAL:$2|اس ورتن ناں|ایناں ورتن ناواں}} دے نال بوت رلدا اے:",
+ "antispoof-conflict-bottom": "مہربنی کرکے ہور ناں چنو",
+ "antispoof-name-illegal": "اس ناں \"$1\" توں ورتن ناں نئیں بنایا جا سکدا کیونجے انجان تے مزاحیہ دے اتے روک اے: $2\nمہربانی کر کے کوئی دوجا ناں چنو۔",
+ "antispoof-badtype": "ڈیٹا ٹھیک نیں",
+ "antispoof-empty": "خالی سلسلہ",
+ "antispoof-blacklisted": "ایدے چ بنا اجازت والیاں چیزاں نیں۔",
+ "antispoof-combining": "جوڑن والے نشان نال ٹردا اے",
+ "antispoof-unassigned": "ایدے کج کیریکٹر پھیک نیں",
+ "antispoof-noletters": "ایہدے وچ کوئی اکرا نئیں۔",
+ "antispoof-mixedscripts": "ایہدے وچ رلے ملے تے ناں ملن والے کیریکٹر نیں",
+ "antispoof-tooshort": "وڈے ناں بعوت نکے نیں",
+ "antispoof-ignore": "بے تکیاں چیزاں ناں چیک کرو",
+ "right-override-antispoof": "بےتکیاں چیزاں نوں چھڈو"
+}
diff --git a/AntiSpoof/i18n/ps.json b/AntiSpoof/i18n/ps.json
new file mode 100644
index 00000000..42f302b3
--- /dev/null
+++ b/AntiSpoof/i18n/ps.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel",
+ "عثمان خان شاہ"
+ ]
+ },
+ "antispoof-conflict-top": "د \"$1\" نوم لاندې {{PLURAL:$2|کارن نوم|کارن نومونو}} سره بېخي ورته دی:",
+ "antispoof-conflict-bottom": "لطفاُ يو بل نوم وټاکۍ.",
+ "antispoof-badtype": "ناسمه مالوماتي بڼه",
+ "antispoof-blacklisted": "$1 د تور لړليک توری دی",
+ "antispoof-noletters": "هېڅ کوم توری نه شته"
+}
diff --git a/AntiSpoof/i18n/pt-br.json b/AntiSpoof/i18n/pt-br.json
new file mode 100644
index 00000000..85dc670b
--- /dev/null
+++ b/AntiSpoof/i18n/pt-br.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Caio1478",
+ "Eduardo.mps",
+ "Helder.wiki",
+ "Luckas",
+ "Rhaijin",
+ "555",
+ "He7d3r",
+ "Dianakc",
+ "!Silent",
+ "Trigonometria87",
+ "Felipe L. Ewald"
+ ]
+ },
+ "antispoof-desc": "Impede a criação de contas com escrita mista, e nomes de usuário confusos e semelhantes",
+ "antispoof-conflict-top": "O nome \"$1\" é demasiado semelhante {{PLURAL:$2|ao seguinte nome de usuário|aos seguintes nomes de usuário}}:",
+ "antispoof-conflict-bottom": "Por favor, escolha outro nome de usuário.",
+ "antispoof-name-illegal": "O nome de usuário \"$1\" não é permitido para prevenir que seja confundido com outro ou falsificado: $2.\nPor favor, escolha outro nome de usuário.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Formato de dados incorreto",
+ "antispoof-empty": "Linha vazia",
+ "antispoof-blacklisted": "Contém o caractere $1, presente na lista negra",
+ "antispoof-combining": "Inicia com o caractere de combinação $1",
+ "antispoof-unassigned": "Contém caracteres não reconhecidos: $1",
+ "antispoof-deprecated": "Contém o parâmetro depreciado $1",
+ "antispoof-noletters": "Não contém nenhuma letra",
+ "antispoof-mixedscripts": "Contém scripts de escrita incompatíveis mesclados",
+ "antispoof-tooshort": "Nome normalizado muito curto",
+ "antispoof-ignore": "Ignorar verificações de \"spoofing\"",
+ "antispoof-ignore-help": "Permite que os usuários com os privilégios necessários criem uma conta com nome seja semelhante ao de outra conta existente.",
+ "right-override-antispoof": "Sobrepor verificações de spoofing",
+ "apihelp-antispoof-description": "Verifica um nome de usuário contra verificações de normalização do AntiSpoof.",
+ "apihelp-antispoof-summary": "Verifica um nome de usuário contra verificações de normalização do AntiSpoof.",
+ "apihelp-antispoof-param-username": "O nome de usuário para verificar no AntiSpoof.",
+ "apihelp-antispoof-example-1": "Verifica o nome de usuário \"Foo\" através do AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorar as verificações de semelhança de nome (necessita do privilégio <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/pt.json b/AntiSpoof/i18n/pt.json
new file mode 100644
index 00000000..cb5e29be
--- /dev/null
+++ b/AntiSpoof/i18n/pt.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Brunoy Anastasiya Seryozhenko",
+ "Hamilton Abreu",
+ "Malafaya",
+ "Rhaijin",
+ "Vitorvicentevalente",
+ "Umherirrender"
+ ]
+ },
+ "antispoof-desc": "Impede a criação de contas cujo nome de utilizador contenha misturas de alfabetos, ou seja confundível ou semelhante a outros existentes",
+ "antispoof-conflict-top": "O nome \"$1\" é demasiado semelhante {{PLURAL:$2|ao seguinte nome de utilizador|aos seguintes nomes de utilizador}}:",
+ "antispoof-conflict-bottom": "Escolha outro nome de utilizador, por favor.",
+ "antispoof-name-illegal": "O nome de utilizador \"$1\" não é permitido para evitar confusões ou enganos: $2.\nEscolha outro nome, por favor.",
+ "antispoof-badtype": "Formato de dados incorreto",
+ "antispoof-empty": "Linha vazia",
+ "antispoof-blacklisted": "Contém o carácter proibido $1",
+ "antispoof-combining": "Começa com o carácter de combinação $1",
+ "antispoof-unassigned": "Contém o carácter proibido $1",
+ "antispoof-deprecated": "Contém o carácter não suportado $1",
+ "antispoof-noletters": "Não contém letras",
+ "antispoof-mixedscripts": "Contém uma mistura de alfabetos incompatíveis",
+ "antispoof-tooshort": "Nome canónico demasiado curto",
+ "antispoof-ignore": "Ignorar as verificações de semelhança de nomes (<i>spoofing</i>)",
+ "antispoof-ignore-help": "Permite que os utilizadores com os privilégios necessários criem uma conta com nome seja semelhante ao de outra conta existente.",
+ "right-override-antispoof": "Ultrapassar as verificações de semelhança de nome (<i>spoofing</i>)",
+ "apihelp-antispoof-description": "Verificar um nome de utilizador contra as verificações de normalização do AntiSpoof.",
+ "apihelp-antispoof-summary": "Verificar um nome de utilizador contra as verificações de normalização do AntiSpoof.",
+ "apihelp-antispoof-param-username": "O nome de utilizador para verificação de semelhança de nome (AntiSpoof).",
+ "apihelp-antispoof-example-1": "Verificar a semelhança de nome (AntiSpoof) do utilizador \"Foo\"",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorar as verificações de semelhança de nome (necessita do privilégio <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/qqq.json b/AntiSpoof/i18n/qqq.json
new file mode 100644
index 00000000..f6baba28
--- /dev/null
+++ b/AntiSpoof/i18n/qqq.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Beau",
+ "Kghbln",
+ "Mormegil",
+ "Shirayuki",
+ "Siebrand",
+ "Titoxd",
+ "Umherirrender"
+ ]
+ },
+ "antispoof-desc": "{{desc|name=AntiSpoof|url=https://www.mediawiki.org/wiki/Extension:AntiSpoof}}",
+ "antispoof-conflict-top": "Account creation error message because attempted username is too similar to existing username(s).\n\nParameters:\n* $1 - the username that someone wanted to create\n* $2 - number of usernames that triggered the error",
+ "antispoof-conflict-item": "{{notranslate}}\nParameters:\n* $1 - username",
+ "antispoof-conflict-bottom": "Suggestion for user that tried to create a user with a name that was not accepted.",
+ "antispoof-name-illegal": "Account creation error message because a user account creation rule was violated. Parameters:\n* $1 is the username that someone wanted to create\n* $2 is the error message. One of {{msg-mw|antispoof-badtype}}, {{msg-mw|antispoof-empty}}, {{msg-mw|antispoof-blacklisted}} and others.",
+ "antispoof-bad-char": "{{Optional}}\nIt is not a complete message, but a template for designator of a bad character, so localization can format it properly. Parameters:\n* $1 is the bad character itself.\n* $2 is the Unicode code point of bad character (\"U+\" followed by hex number).",
+ "antispoof-bad-char-non-printable": "The same as antispooof-bad-char, but for non-printable characters. Since non-printable characters do not have visual representation, template has only one parameter:\n* $1 is the Unicode code point of bad character (\"U+\" followed by hex number).",
+ "antispoof-badtype": "Reason for failed account creation.",
+ "antispoof-empty": "Reason for failed account creation.",
+ "antispoof-blacklisted": "Reason for failed account creation. Parameters:\n* $1 — bad character designator (built with either {{msg-mw|antispoof-bad-char}} or {{msg-mw|antispoof-bad-char-non-printable}}).",
+ "antispoof-combining": "Reason for failed account creation. Parameters:\n* $1 — bad character designator (built with either {{msg-mw|antispoof-bad-char}} or {{msg-mw|antispoof-bad-char-non-printable}}).",
+ "antispoof-unassigned": "Reason for failed account creation. Parameters:\n* $1 — bad character designator (built with either antispoof-bad-char or …-non-printable).",
+ "antispoof-deprecated": "Reason for failed account creation. Parameters:\n* $1 — bad character designator (built with either {{msg-mw|antispoof-bad-char}} or {{msg-mw|antispoof-bad-char-non-printable}}).\n{{doc-important|\"Deprecate\" does '''not''' mean \"out of date\" or \"old\"}}",
+ "antispoof-noletters": "Reason for failed account creation.",
+ "antispoof-mixedscripts": "Reason for failed account creation.",
+ "antispoof-tooshort": "Reason for failed account creation.",
+ "antispoof-ignore": "This is a checkbox shown on [[Special:UserLogin|a signup page]] when a user with both [[MediaWiki:Right-createaccount/qqq|createaccount]] and [[MediaWiki:Right-override-antispoof/qqq|override-antispoof]] rights tries to register a new user account. It allows to register a username that would otherwise be blocked by the [[mw:Extension:AntiSpoof|AntiSpoof extension]].",
+ "antispoof-ignore-help": "API help message describing {{msg-mw|antispoof-ignore}}.",
+ "right-override-antispoof": "{{doc-right|override-antispoof}}",
+ "apihelp-antispoof-description": "{{doc-apihelp-description|antispoof}}",
+ "apihelp-antispoof-summary": "{{doc-apihelp-summary|antispoof}}",
+ "apihelp-antispoof-param-username": "{{doc-apihelp-param|antispoof|username}}",
+ "apihelp-antispoof-example-1": "{{doc-apihelp-example|antispoof}}",
+ "apihelp-createaccount-param-ignoreantispoof": "{{doc-apihelp-param|createaccount|ignoreantispoof}}"
+}
diff --git a/AntiSpoof/i18n/qu.json b/AntiSpoof/i18n/qu.json
new file mode 100644
index 00000000..e96fa541
--- /dev/null
+++ b/AntiSpoof/i18n/qu.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "antispoof-desc": "Chaqrusqa sananchayuq, pantachiq, musphachiq rakiquna suti kamariyta hark'an",
+ "antispoof-conflict-top": "\"$1\" nisqa sutiqa {{PLURAL:$2|kay rakiqunapman|kay rakiqunakunapman}} nisyu kaqllam kachkan:",
+ "antispoof-conflict-bottom": "Ama hina kaspa, huk hina sutita akllakuy.",
+ "antispoof-name-illegal": "Nisqayki \"$1\" sutiqa manam saqillasqachu, suti pantachiyta hark'anapaq: \"$2\". Ama hina kaspa, huk sutita akllay.",
+ "antispoof-badtype": "Willa layaqa manam allinchu",
+ "antispoof-empty": "Ch'usaq qillqa",
+ "antispoof-blacklisted": "Mana allin sutisuyupi kaq $1 sananchayuq",
+ "antispoof-combining": "$1 t'inkinakuy sananchawanmi qallarin",
+ "antispoof-unassigned": "Mana allin $1 sananchayuq",
+ "antispoof-deprecated": "Mawk'ayasqa $1 sananchayuq",
+ "antispoof-noletters": "Manam ima sanampayuqchu",
+ "antispoof-mixedscripts": "Mana allin chaqrusqa qillqayuq",
+ "antispoof-tooshort": "Kanunikuchasqa sutiqa nisyu pisillam",
+ "antispoof-ignore": "Kaqlla kay llanchiyta ama ruraychu",
+ "right-override-antispoof": "Kaqlla kay llanchiyta ama atichiychu"
+}
diff --git a/AntiSpoof/i18n/ro.json b/AntiSpoof/i18n/ro.json
new file mode 100644
index 00000000..23e253da
--- /dev/null
+++ b/AntiSpoof/i18n/ro.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cin",
+ "Firilacroco",
+ "KlaudiuMihaila",
+ "Minisarm",
+ "Stelistcristi",
+ "Strainu"
+ ]
+ },
+ "antispoof-desc": "Blochează crearea de conturi cu nume de utilizator cu LiTeRe AmEsTeCate, confuzante sau similare",
+ "antispoof-conflict-top": "Numele „$1” este prea asemănător cu {{PLURAL:$2|următorul cont deja existent|următoarele $2 conturi|următoarele $2 de conturi}}:",
+ "antispoof-conflict-bottom": "Vă rugăm să alegeți alt nume.",
+ "antispoof-name-illegal": "Numele „$1” nu este permis pentru a preveni confuziile cu numele: $2. Vă rugăm să alegeți un alt nume de utilizator.",
+ "antispoof-badtype": "Tip de date greșit",
+ "antispoof-empty": "Șir gol",
+ "antispoof-blacklisted": "Conține caracterul interzis $1",
+ "antispoof-combining": "Începe cu marcajul de combinare $1",
+ "antispoof-unassigned": "Conține un caracter neasociat sau învechit",
+ "antispoof-deprecated": "Conține caracterul interzis $1",
+ "antispoof-noletters": "Nu conține nici o literă",
+ "antispoof-mixedscripts": "Conține mai multe scripturi incompatibile",
+ "antispoof-tooshort": "Nume canonizat prea scurt",
+ "antispoof-ignore": "Nu verifica existența unor nume de cont similare",
+ "right-override-antispoof": "Trece peste verificările de spoofing"
+}
diff --git a/AntiSpoof/i18n/roa-tara.json b/AntiSpoof/i18n/roa-tara.json
new file mode 100644
index 00000000..f3dfa8c2
--- /dev/null
+++ b/AntiSpoof/i18n/roa-tara.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras",
+ "Reder"
+ ]
+ },
+ "antispoof-desc": "Bluècche 'a ccrejazione de cunde utende cu script-misckate, confuse e cu nome de l'utinde ca s'assomigliane",
+ "antispoof-conflict-top": "'U nome de l'utende \"$1\" s'assomigghie assaije a {{PLURAL:$2|'u cunde esistende|le cunde}}:",
+ "antispoof-conflict-bottom": "Pe piacere scacchie n'otre nome.",
+ "antispoof-name-illegal": "'U nome de l'utende \"$1\" non g'è permesse pe prevenìe casine o 'mbruegghie de nome utinde: $2.\nPe piacere scacchie 'n'otre nome.",
+ "antispoof-badtype": "Tipe de date errate",
+ "antispoof-empty": "stringa vacande",
+ "antispoof-blacklisted": "Condène carattere jndr'à liste gnure $1",
+ "antispoof-combining": "Accumenze cu 'na marche combinate $1",
+ "antispoof-unassigned": "Condène carattere non assignate o deprecate",
+ "antispoof-deprecated": "Condène carattere deprecate $1",
+ "antispoof-noletters": "Non ge condène nisciune lettere",
+ "antispoof-mixedscripts": "Condène script miste incompatibbele",
+ "antispoof-tooshort": "'U nome normalizzate ète curte assaje",
+ "antispoof-ignore": "Ignore verifeche sus a le 'mbruegghie",
+ "antispoof-ignore-help": "Permette a le utinde cu le privilegge de ccrejà 'n'utende, pure ce 'u nome sue s'assemegghie a quidde de otre crestiane ggià esistende.",
+ "right-override-antispoof": "Sovrascrive le verifeche sus a le 'mbruegghie",
+ "apihelp-antispoof-description": "Verifiche 'nu nome utende condre a le verifiche de normalizzazzione AntiSpoof.",
+ "apihelp-antispoof-summary": "Verifiche 'nu nome utende cu le verifiche de normalizzazzione AntiSpoof.",
+ "apihelp-antispoof-param-username": "'U nome utende da verificà condre a AntiSpoof.",
+ "apihelp-antispoof-example-1": "Verifiche 'u nome utende \"Foo\" condre a AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Lasse perdere le verifiche de spoofing (vole 'u deritte <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/ru.json b/AntiSpoof/i18n/ru.json
new file mode 100644
index 00000000..6c989f64
--- /dev/null
+++ b/AntiSpoof/i18n/ru.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "DCamer",
+ "Kaganer",
+ "Okras",
+ "Van de Bugger",
+ "Александр Сигачёв",
+ "Perevod16",
+ "Facenapalm"
+ ]
+ },
+ "antispoof-desc": "Запрещает создание учётных записей с именами, содержащими символы из разных алфавитов, вводящих в заблуждение и похожих на имена других участников.",
+ "antispoof-conflict-top": "Имя «$1» слишком похоже на {{PLURAL:$2|1=следующее имя участника|следующие имена участников}}:",
+ "antispoof-conflict-bottom": "Пожалуйста, выберите другое имя участника.",
+ "antispoof-name-illegal": "Использование имени участника «$1» не разрешено в целях предотвращения путаницы или использования поддельных имён: $2.\nПожалуйста, выберите другое имя участника.",
+ "antispoof-badtype": "Неправильный тип данных",
+ "antispoof-empty": "не содержит ни одного символа",
+ "antispoof-blacklisted": "содержит следующий символ из чёрного списка: $1",
+ "antispoof-combining": "начинается со следующего модифицирующего символа Юникода: $1",
+ "antispoof-unassigned": "содержит следующий недопустимый символ: $1",
+ "antispoof-deprecated": "содержит следующий исключённый из использования символ: $1",
+ "antispoof-noletters": "не содержит ни одной буквы",
+ "antispoof-mixedscripts": "использует символы из разных алфавитов",
+ "antispoof-tooshort": "Нормализованное имя слишком коротко",
+ "antispoof-ignore": "Игнорировать проверки на схожие имена",
+ "antispoof-ignore-help": "Позволяет участникам с достаточными правами создать учётную запись даже если это имя похоже на имя уже существующей учётной записи.",
+ "right-override-antispoof": "игнорирование проверок на схожие имена",
+ "apihelp-antispoof-description": "Проверьте имя пользователя напротив чек-бокса AntiSpoof's normalisation.",
+ "apihelp-antispoof-summary": "Проверьте имя пользователя напротив чек-бокса AntiSpoof's normalisation.",
+ "apihelp-antispoof-param-username": "Имя участника, которое нужно проверить с помощью AntiSpoof.",
+ "apihelp-antispoof-example-1": "Проверить с помощью AntiSpoof имя участника «Foo»",
+ "apihelp-createaccount-param-ignoreantispoof": "Игнорировать проверки на схожие имена (требует прав <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/rue.json b/AntiSpoof/i18n/rue.json
new file mode 100644
index 00000000..de9fa5a2
--- /dev/null
+++ b/AntiSpoof/i18n/rue.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb"
+ ]
+ },
+ "antispoof-desc": "Заборонює створїня конт котрых імена суть подобны іншым хоснователям, што комбінують різны тіпы писма, або што нароком хотять ошалити.",
+ "antispoof-conflict-top": "Мено „$1“ є барз подобне {{PLURAL:$2|наступному хосновательскому імену|наступным хосновательскым іменам}}:",
+ "antispoof-conflict-bottom": "Просиме, звольте собі інше імя.",
+ "antispoof-name-illegal": "Мено „$1“ не є поволено створити, жебы ся не плело або ся не ужывало про наподобнёваня чуджіх хосновательскых мен: $2.\nПросиме, звольте собі інше мено.",
+ "antispoof-badtype": "Планый датовый тіп",
+ "antispoof-empty": "Порожнїй рядок",
+ "antispoof-blacklisted": "Обсягує недозволеный сімбол $1",
+ "antispoof-combining": "Зачінать комбінуючім діакрітічным сімболом $1",
+ "antispoof-unassigned": "Обсягує неприпустимый сімбол $1",
+ "antispoof-deprecated": "Обсягує забороненый сімбол $1",
+ "antispoof-noletters": "Не обсягує жадну літеру",
+ "antispoof-mixedscripts": "Обсягує недоволену комбінацію тіпів писма",
+ "antispoof-tooshort": "Імя є по нормалізації дуже курте",
+ "antispoof-ignore": "Іґноровати перевіркы на ошалюючі імена",
+ "right-override-antispoof": "Іґнорованя перевірок на подобны імена"
+}
diff --git a/AntiSpoof/i18n/sa.json b/AntiSpoof/i18n/sa.json
new file mode 100644
index 00000000..8a0f29d8
--- /dev/null
+++ b/AntiSpoof/i18n/sa.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Shreekant Hegde",
+ "Shubha",
+ "Vibhijain"
+ ]
+ },
+ "antispoof-desc": "मिश्रितलिपियुक्तानां, भ्रमजनकानां, समानयोजकनामयुक्तानां च प्रयोगाः अवरुद्ध्यन्ताम् ।",
+ "antispoof-conflict-top": "\" $1\" इत्येतत् नाम {{PLURAL:$2|विद्यमानस्य| $2 }}: इत्येतस्य समानं वर्तते ।",
+ "antispoof-conflict-bottom": "कृपया भिन्नं नाम चिनोतु ।",
+ "antispoof-name-illegal": "अवैध नाम",
+ "antispoof-badtype": "स्वस्थाननिर्माणे विपन्नतायाः कारणम् ।",
+ "antispoof-empty": "स्वस्थाननिर्माणे विपन्नतायाः कारणम् ।",
+ "antispoof-blacklisted": "$1 अमान्यपदार्थयुक्तः अस्ति",
+ "antispoof-combining": "$1 योजनसङ्केतेन आरभ्यते",
+ "antispoof-unassigned": "$1 अनिर्दिष्टपदार्थयुक्तः अस्ति",
+ "antispoof-deprecated": "$1 विरोधपदार्थयुक्तः अस्ति",
+ "antispoof-noletters": "अस्मिन् किमपि अक्षरं न विद्यते",
+ "antispoof-mixedscripts": "असिन्धुमिश्रलिपियुक्तः अस्ति",
+ "antispoof-tooshort": "अधिकृतं नाम परमलघु वर्तते",
+ "antispoof-ignore": "अनुकरणावलोकनानि निर्लक्ष्यताम्",
+ "right-override-antispoof": "अनुकरणावलोकनं परिष्क्रियताम्"
+}
diff --git a/AntiSpoof/i18n/sah.json b/AntiSpoof/i18n/sah.json
new file mode 100644
index 00000000..032ba2ef
--- /dev/null
+++ b/AntiSpoof/i18n/sah.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bert Jickty",
+ "HalanTul"
+ ]
+ },
+ "antispoof-desc": "Атын дьону булкуйар уонна атын дьон ааттарыгар майгынныыр хас да омук суругун-бичигин туһанан ааттанары бобор.",
+ "antispoof-conflict-top": "\"$1\" диэн аат урут бэлиэтэммит {{PLURAL:$2|аакка|$2 аакка}} наһаа майгынныыр:",
+ "antispoof-conflict-bottom": "Бука диэн, атын ааты тал эрэ.",
+ "antispoof-name-illegal": "\"$1\" диэн аат $2 диэн ааттары кытта буккулубаттарын туһугар бобуллар. Онон атын ааты толкуйдаа.",
+ "antispoof-badtype": "Сыыһа тииптээх дааннайдар",
+ "antispoof-empty": "Кураанах устуруока",
+ "antispoof-blacklisted": "Бобуллубут бэлиэлэр бааллар",
+ "antispoof-combining": "Уларытар бэлиэттэн саҕаланар",
+ "antispoof-unassigned": "Биллибэт эбэтэр өйөммөт бэлиэлэр бааллар",
+ "antispoof-noletters": "Биир даҕаны буукуба суох",
+ "antispoof-mixedscripts": "Сөп түбэһиспэт атын-атын суруктарынан суруллубут",
+ "antispoof-tooshort": "Каноннаммыт тыл наһаа кылгас",
+ "antispoof-ignore": "Майгынныыр ааттары бэрэбиэркэлээһини оҥорума",
+ "right-override-antispoof": "Майгынныыр ааттары тэҥнээмэ"
+}
diff --git a/AntiSpoof/i18n/sat.json b/AntiSpoof/i18n/sat.json
new file mode 100644
index 00000000..4c7cd6b2
--- /dev/null
+++ b/AntiSpoof/i18n/sat.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Salvator"
+ ]
+ },
+ "antispoof-conflict-top": "Ńtum do pray mit́gea{{PLURAL:$2| menaḱ akaunṭ| noakodo $2 akaunṭ kana}}:",
+ "antispoof-conflict-bottom": "Eṭaḱ ńutum sendraeme",
+ "antispoof-name-illegal": "Ńutum\"$1\" do baṅ hoyoḱa se okokomṛogea: $2. Dayakate eṭaḱ ńutum emam.",
+ "antispoof-badtype": "Bạṛić tottho lekan",
+ "antispoof-empty": "Eken ghuṛã",
+ "antispoof-blacklisted": "$1 Begor samuṅ karekṭar menaḱa",
+ "antispoof-combining": "Joṛa cikhnạ khon ehobme",
+ "antispoof-unassigned": "Baṅ ganoḱ karekṭar menaḱa",
+ "antispoof-noletters": "Cet́ okhor hõ banuḱa",
+ "antispoof-mixedscripts": "Begor jutsoi olnolko menaḱa",
+ "antispoof-tooshort": "Ạḍi kạtić ńutum",
+ "antispoof-ignore": "Beganoḱ bachao paromme",
+ "right-override-antispoof": "Beganoḱ koyoḱ parom bachaome"
+}
diff --git a/AntiSpoof/i18n/scn.json b/AntiSpoof/i18n/scn.json
new file mode 100644
index 00000000..7079657b
--- /dev/null
+++ b/AntiSpoof/i18n/scn.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Santu",
+ "Tonyfroio",
+ "Pippinu",
+ "Sarvaturi"
+ ]
+ },
+ "antispoof-desc": "Blocca la criazzioni di cunti d'utenti cu nomi fatti d'arfabbeti ammiscati, chi ponnu fari cunfùnniri, o chi s'assimìgghianu troppu assai",
+ "antispoof-conflict-top": "Lu nomu \"$1\" assimigghia troppu assai a {{PLURAL:$2|stu cuntu ca già c'è|sti cunti ca già ci sunnu}}:",
+ "antispoof-conflict-bottom": "Pi favuri scegghi n'àutru nomu.",
+ "antispoof-name-illegal": "Lu nomu \"$1\" nun è cunzintutu, pi scanzari cunfusioni o scancî di pirsuna: $2.\nPi favuri scegghi n'àutru nomu.",
+ "antispoof-badtype": "Tipu di dati erratu",
+ "antispoof-empty": "Stringa vacanti",
+ "antispoof-blacklisted": "Cunteni lu caràttiri nta lista nìura $1",
+ "antispoof-combining": "Accumenza cûn caràttiri cumminanti $1",
+ "antispoof-unassigned": "Cunteni lu caràttiri nun assignatu $1",
+ "antispoof-deprecated": "Cunteni lu caràttiri dipricatu $1",
+ "antispoof-noletters": "Nun cunteni nudda littra",
+ "antispoof-mixedscripts": "Cunteni arfabbeti ammiscati chi nun sunnu cumpatìbbili",
+ "antispoof-tooshort": "Nomu 'n forma canonica troppu curtu",
+ "antispoof-ignore": "Sàuta li cuntrolli contra ô scanciu di pirsuna",
+ "right-override-antispoof": "Sautari li cuntrolli contra ô scanciu di pirsuna",
+ "apihelp-antispoof-description": "Suttaponi un nomu utenti ê virìfichi di nurmalizzazzioni di l'AntiSpoof",
+ "apihelp-antispoof-param-username": "Lu nomu utenti di cuntrullari cu l'AntiSpoof",
+ "apihelp-antispoof-example-1": "Cuntrullari lu nomu utenti \"Cicciu\" cu l'AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Sautari li cuntrolli AntiSpoof (havi bisognu dû drittu <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/sco.json b/AntiSpoof/i18n/sco.json
new file mode 100644
index 00000000..ff516d33
--- /dev/null
+++ b/AntiSpoof/i18n/sco.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "John Reid",
+ "Sator",
+ "AmaryllisGardener"
+ ]
+ },
+ "antispoof-desc": "Blocks the creaution o accoonts wi mixt-screept, confusin n siclik uisernames",
+ "antispoof-conflict-top": "The name \"$1\" is ower siclik tae the follaein {{PLURAL:$2|uisername|uisernames}}:",
+ "antispoof-conflict-bottom": "Please chuise anither uisername.",
+ "antispoof-name-illegal": "The name \"$1\" is no alloued fer tae hinder confusin or spoofed uisernames: $2.\nPlease choose another name.",
+ "antispoof-badtype": "Bad data type",
+ "antispoof-empty": "Tuim string",
+ "antispoof-blacklisted": "Haes blaickleetit chairacter $1",
+ "antispoof-combining": "Begins wi combinin maurk $1",
+ "antispoof-unassigned": "Haes onassigned chairacter $1",
+ "antispoof-deprecated": "Haes depreecatit chairacter $1",
+ "antispoof-noletters": "Disna contain onie letters",
+ "antispoof-mixedscripts": "Contains oncompatible mixt screepts",
+ "antispoof-tooshort": "Canoneecalised name is ower short",
+ "antispoof-ignore": "Ignore spuifin checks",
+ "right-override-antispoof": "Owerride the spuifin checks",
+ "apihelp-antispoof-description": "Check ae uisername again AntiSpoof's normalisation checks.",
+ "apihelp-antispoof-param-username": "The uisername tae check again AntiSpoof.",
+ "apihelp-antispoof-example-1": "Check uisername \"Foo\" again AntiSpoof"
+}
diff --git a/AntiSpoof/i18n/sh.json b/AntiSpoof/i18n/sh.json
new file mode 100644
index 00000000..1840ee69
--- /dev/null
+++ b/AntiSpoof/i18n/sh.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kolega2357",
+ "OC Ripper"
+ ]
+ },
+ "antispoof-desc": "Blokira pravljenje računa sa miješanim slovima, zbunjujućim i sličnim korisničkim imenima",
+ "antispoof-conflict-top": "Ime \"$1\" je previše slično {{PLURAL:$2|slijedećem postojećem računu|sa slijedeća $2 postojeća računa|sa slijedećih $2 postojećih računa}}:",
+ "antispoof-conflict-bottom": "Molimo izaberite drugo ime.",
+ "antispoof-name-illegal": "Ime \"$1\" nije dopušteno da bi se izbjegla zbunjujuća ili slična korisnička imena: $2.\nMolimo Vas da odaberete drugo ime.",
+ "antispoof-badtype": "Krivi tip podataka",
+ "antispoof-empty": "Prazan unos",
+ "antispoof-blacklisted": "Sadrži nedozvoljeno slovo (karakter)",
+ "antispoof-combining": "Počinje sa znakom kombinacije",
+ "antispoof-unassigned": "Sadrži nedodijeljen ili zastarjeli znak (karakter)",
+ "antispoof-noletters": "Ne sadrži ni jedno slovo",
+ "antispoof-mixedscripts": "Nekompatibilna pisma - Некомпатибилна писма",
+ "antispoof-tooshort": "Normalizirano ime je prekratko",
+ "antispoof-ignore": "Ignoriraj provjeru nevaljanih imena (antispoof)",
+ "right-override-antispoof": "Zaobilaženje provjera korisničkog imena"
+}
diff --git a/AntiSpoof/i18n/shn.json b/AntiSpoof/i18n/shn.json
new file mode 100644
index 00000000..77060a1a
--- /dev/null
+++ b/AntiSpoof/i18n/shn.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khun Sar",
+ "Adolfsar",
+ "Saimawnkham"
+ ]
+ },
+ "antispoof-desc": "ဢဝ် mixed-script သေ တပ်ႉပႅတ်ႈၵၢၼ်သၢင်ႈ account၊ မီးလွင်ႈ ဢမ်ႇၸႅင်ႈလႅင်းလႄႈ မီးလွင်ႈဢၼ်ၸိုဝ်ႈသဵင်ငၢႆးမိူၼ်ၵၼ်ဝႆႉ",
+ "antispoof-conflict-top": "ၸိုဝ်ႈဢၼ်ဝႃႈ \"$1\"ၼႆႉ မၼ်းငၢႆးမိူၼ်တင်းၼင်ႇပႃႈတႂ်ႈၼႆႉပူၼ်ႉတီႈ",
+ "antispoof-conflict-bottom": "ၶႅၼ်းတေႃႇ လိူၵ်ႈဢဝ်ၸိုဝ်ႈ တၢင်ႇဢၼ်တႃႉ",
+ "antispoof-name-illegal": "ၸိုဝ်ႈသဵင်ႈ \"$1\"ၼႆႉ ဢမ်ႇၶႂၢင်းပၼ်ႁႂ်ႈၸႂ်ႉတိုဝ်း တႃႇတေဢမ်ႇပဵၼ် လွင်ႈငမ်းငဝ်းလႄႈ ဢၼ်ပွမ်ၸိုဝ်ႈၵၼ်: $2 ။ \nၶႅၼ်းတေႃႈ လိူၵ်ႈဢဝ်ၸိုဝ်ႈတၢင်ႇဢၼ်တႃႉ",
+ "antispoof-badtype": "ပဵၼ်ၶေႃႈမုၼ်း ဢၼ်ဢမ်ႇလီ",
+ "antispoof-empty": "သၢႆပဝ်ႇ",
+ "antispoof-blacklisted": "မီးဝႆႉ ၽၢင်ႁၢင်ႈ ပလႅၵ်ႉလိတ်ႉ $1",
+ "antispoof-combining": "တႄႇလူၺ်ႈႁူမ်ႈႁူမ်းပၼ်မၢႆ $1",
+ "antispoof-unassigned": "မီးဝႆႉပၵ်းၾၢင် ဢၼ်ဢမ်ႇလႆႈတၢင်ႇမၢႆၾၢင် $1",
+ "antispoof-deprecated": "မီးဝႆႉ တူဝ်လိၵ်ႈဢၼ်ဢမ်ႇၽွမ်ႉလႆႈၸႂ်ဝႆႉ $1",
+ "antispoof-noletters": "ဢမ်ႇမီးတူဝ်လိၵ်ႈသင်သေတူဝ်",
+ "antispoof-mixedscripts": "မီးဝႆႉတူဝ်လိၵ်ႈလေႃးလႄး ဢၼ်ဢမ်ႇၶဝ်ႈဢမ်ႇမႅၼ်ႈၵၼ်ဝႆႉ",
+ "antispoof-ignore": "ၶၢမ်ႈပႅတ်ႈၵၢၼ်ၵူတ်ႇထတ်း",
+ "right-override-antispoof": "တႅၼ်းတၢင်ပႅတ်ႈ ၵၢၼ်ၵူတ်ႇထတ်း ၸိုဝ်ႈမိူၼ်"
+}
diff --git a/AntiSpoof/i18n/si.json b/AntiSpoof/i18n/si.json
new file mode 100644
index 00000000..7cbf33a4
--- /dev/null
+++ b/AntiSpoof/i18n/si.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Singhalawap",
+ "Thameera123",
+ "පසිඳු කාවින්ද"
+ ]
+ },
+ "antispoof-desc": "අකුරු වර්ග මිශ්‍ර, ව්‍යාකූල සහ සමාන ලෙස පෙනෙන පරිශීලක නම් වාරණය කරයි",
+ "antispoof-conflict-top": "\"$1\" යන නම {{PLURAL:$2|දැනට පවතින ගිණුමට|පහත ගිණුම් $2 ට}} බෙහෙවින් සමානය:",
+ "antispoof-conflict-bottom": "කරුණාකර වෙනත් නමක් තෝරාගන්න",
+ "antispoof-name-illegal": "ව්‍යාකූල පරිශීලක නම් වැළැක්වීම සඳහා \"$1\" යන නමට අවසර දිය නොහැකිය: $2.",
+ "antispoof-badtype": "අවලංගු දත්ත වර්ගයකි",
+ "antispoof-empty": "හිස් ස්ට්‍රිංඑකකි",
+ "antispoof-blacklisted": "$1 අපලේඛනගත සංකේතය අඩංගු වේ",
+ "antispoof-combining": "$1 ඒකාබද්ධ සලකුණෙන් ආරම්භ වේ",
+ "antispoof-unassigned": "නොපවරන ලද $1 අක්ෂරය අඩංගු වේ",
+ "antispoof-deprecated": "$1 රැවටිලි සහිත අක්ෂරය අඩංගුයි",
+ "antispoof-noletters": "අකුරු කිසිවක් අඩංගු නොවේ",
+ "antispoof-mixedscripts": "නොගැළපෙන මිශ්‍ර විධානාවලි අඩංගු වේ",
+ "antispoof-tooshort": "ප්‍රමතකරණය කරන ලද නම කෙටි වැඩිය",
+ "antispoof-ignore": "අනවශ්‍ය පිරික්සුම් නොසළකා හරින්න",
+ "right-override-antispoof": "අනවශ්‍ය පිරික්සුම් ප්‍රතික්ෂේප කරන්න"
+}
diff --git a/AntiSpoof/i18n/sk.json b/AntiSpoof/i18n/sk.json
new file mode 100644
index 00000000..26e7759e
--- /dev/null
+++ b/AntiSpoof/i18n/sk.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84"
+ ]
+ },
+ "antispoof-desc": "Blokuje tvorbu účtov so zmiešanými písmami, mätúce a podobné mená.",
+ "antispoof-conflict-top": "Meno „$1” je príliš podobné {{PLURAL:$2|existujúcemu účtu|nasledovným $2 účtom}}:",
+ "antispoof-conflict-bottom": "Prosím, vyberte si iné meno.",
+ "antispoof-name-illegal": "Meno „$1“ nie je povolené, aby sa zabránilo náhodnému alebo zámernému pomýleniu mien používateľov: $2. Zvoľte si prosím iné meno.",
+ "antispoof-badtype": "Nesprávny typ dát",
+ "antispoof-empty": "Prázdny reťazec",
+ "antispoof-blacklisted": "Obsahuje znak zo zoznamu zakázaných $1",
+ "antispoof-combining": "Začína kombinačným znakom $1",
+ "antispoof-unassigned": "Obsahuje nepriradený znak $1",
+ "antispoof-deprecated": "Obsahuje zavrhovaný znak $1",
+ "antispoof-noletters": "Neobsahuje žiadne písmená",
+ "antispoof-mixedscripts": "Obsahuje nekompatibilné zmiešané písma",
+ "antispoof-tooshort": "Meno prevedené do kanonického tvaru je príliš krátke",
+ "antispoof-ignore": "Ignorovať kontroly klamania",
+ "right-override-antispoof": "Prekonať kontroly klamania"
+}
diff --git a/AntiSpoof/i18n/skr-arab.json b/AntiSpoof/i18n/skr-arab.json
new file mode 100644
index 00000000..da8e94b5
--- /dev/null
+++ b/AntiSpoof/i18n/skr-arab.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saraiki"
+ ]
+ },
+ "antispoof-conflict-bottom": "مہربانی کرتے ٻیا ورتݨ آلا ناں چُݨو",
+ "antispoof-badtype": "ڈیٹا ٹھیک کائنی",
+ "antispoof-empty": "خالی تار",
+ "antispoof-ignore": "بے تکیاں چیزاں ناں چیک کرو"
+}
diff --git a/AntiSpoof/i18n/sl.json b/AntiSpoof/i18n/sl.json
new file mode 100644
index 00000000..19cee648
--- /dev/null
+++ b/AntiSpoof/i18n/sl.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334",
+ "Irena Plahuta"
+ ]
+ },
+ "antispoof-desc": "Prepreči ustvarjanje računov z mešanimi pisavami ter begajočimi in podobnimi uporabniškimi imeni",
+ "antispoof-conflict-top": "Uporabniško ime »$1« je preveč podobno {{PLURAL:$2|spodnjemu $2 uporabniškemu imenu|spodnjima $2 uporabniškima imenoma|spodnjim $2 uporabniškim imenom}}:",
+ "antispoof-conflict-bottom": "Prosimo, izberite drugo uporabniško ime.",
+ "antispoof-name-illegal": "Uporabniško ime »$1« ni dovoljeno, saj se lahko zamenja oz. norčuje iz »$2«.\nProsimo, izberite drugo uporabniško ime.",
+ "antispoof-badtype": "Napačen podatkovni tip",
+ "antispoof-empty": "Prazen niz",
+ "antispoof-blacklisted": "Vsebuje znak $1, ki je na črni listi",
+ "antispoof-combining": "Začne se z združevalnim znakom $1",
+ "antispoof-unassigned": "Vsebuje nepripisan ali nedovoljen znak",
+ "antispoof-deprecated": "Vsebuje odsvetovan znak $1",
+ "antispoof-noletters": "Ne vsebuje nobenih črk",
+ "antispoof-mixedscripts": "Vsebuje nezdružljive mešane skripte",
+ "antispoof-tooshort": "Normalizirano ime je prekratko",
+ "antispoof-ignore": "Prezri preverjanja prevare",
+ "right-override-antispoof": "Preskoči preverjanja prevar"
+}
diff --git a/AntiSpoof/i18n/sq.json b/AntiSpoof/i18n/sq.json
new file mode 100644
index 00000000..d786efcd
--- /dev/null
+++ b/AntiSpoof/i18n/sq.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "FatosMorina",
+ "Olsi",
+ "Arianit"
+ ]
+ },
+ "antispoof-desc": "Bllokon krijimin e llogarive me shkrime të përziera, duke çrregulluar edhe emrat e ngjashëm të përdorusve",
+ "antispoof-conflict-top": "Emri \"$1\" është shumë i ngjashëm me {{PLURAL:$2||llogarinë|llogaritë}}:",
+ "antispoof-conflict-bottom": "Ju lutemi zgjidhni një emër përdoruesi tjetër.",
+ "antispoof-name-illegal": "Emri i përdoruesit \"$1\" nuk është i lejuar për të shmangur emra përdoruesish të ngatërrueshëm apo të rremë: $2.",
+ "antispoof-badtype": "Shtypje e keqe e të dhënave",
+ "antispoof-empty": "Fushë boshe",
+ "antispoof-blacklisted": "Përmban karakter të palejuar $1",
+ "antispoof-combining": "Fillon me shenjën e kombinuar $1",
+ "antispoof-unassigned": "Përmban karakter të papërcaktuar $1",
+ "antispoof-deprecated": "Përmban karakter të palejueshëm $1",
+ "antispoof-noletters": "Nuk përmban asnjë shkronjë",
+ "antispoof-mixedscripts": "Përmban shkrime të përziera të papajtueshme",
+ "antispoof-tooshort": "Emri i normlizuar shumë i shkurtër",
+ "antispoof-ignore": "Tejkaloni kontrollet për emra të rremë",
+ "right-override-antispoof": "Refuzoni kontrollet për emra të rremë"
+}
diff --git a/AntiSpoof/i18n/sr-ec.json b/AntiSpoof/i18n/sr-ec.json
new file mode 100644
index 00000000..577ebe48
--- /dev/null
+++ b/AntiSpoof/i18n/sr-ec.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Millosh",
+ "Rancher",
+ "Sasa Stefanovic",
+ "Јованвб",
+ "Жељко Тодоровић",
+ "Михајло Анђелковић",
+ "Milicevic01",
+ "Сербијана"
+ ]
+ },
+ "antispoof-desc": "Спречава отварање налога с мешаним писмима, збуњујућим и сличним корисничким именима",
+ "antispoof-conflict-top": "Корисничко име „$1“ је превише слично са следећим {{PLURAL:$2|корисничким именом|корисничким именима}}:",
+ "antispoof-conflict-bottom": "Изаберите друго име.",
+ "antispoof-name-illegal": "Корисничко име „$1“ није дозвољено да би се избегла збуњујућа или лажирана корисничка имена: $2.\nИзаберите друго корисничко име.",
+ "antispoof-bad-char": "„$1“ ($2)",
+ "antispoof-badtype": "Погрешна врста података",
+ "antispoof-empty": "Празна ниска",
+ "antispoof-blacklisted": "Садржи забрањени знак $1",
+ "antispoof-combining": "Почиње са саставним знаком $1",
+ "antispoof-unassigned": "Садржи недодељен знак $1",
+ "antispoof-deprecated": "Садржи застарели знак $1",
+ "antispoof-noletters": "Не садржи ниједно слово",
+ "antispoof-mixedscripts": "Садржи несагласна мешана писма",
+ "antispoof-tooshort": "Нормализовано име је прекратко",
+ "antispoof-ignore": "Занемари међусобно слична имена",
+ "right-override-antispoof": "заобилажење провера за међусобно слична имена"
+}
diff --git a/AntiSpoof/i18n/sr-el.json b/AntiSpoof/i18n/sr-el.json
new file mode 100644
index 00000000..e3e987cd
--- /dev/null
+++ b/AntiSpoof/i18n/sr-el.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michaello",
+ "Rancher",
+ "Жељко Тодоровић",
+ "Milicevic01"
+ ]
+ },
+ "antispoof-desc": "Sprečava otvaranje naloga s mešanim pismima, zbunjujućim i sličnim korisničkim imenima",
+ "antispoof-conflict-top": "Ime „$1“ je previše slično sa sledećim korisničkim {{PLURAL:$2|imenom|imenima}}:",
+ "antispoof-conflict-bottom": "Izaberite drugo ime.",
+ "antispoof-name-illegal": "Ime „$1“ nije dozvoljeno da bi se izbegla zbunjujuća ili lažirana korisnička imena: $2.\nIzaberite drugo ime.",
+ "antispoof-bad-char": "„$1“ ($2)",
+ "antispoof-badtype": "Pogrešna vrsta podataka",
+ "antispoof-empty": "Prazna niska",
+ "antispoof-blacklisted": "Sadrži zabranjeni znak $1",
+ "antispoof-combining": "Počinje sa sastavnim znakom $1",
+ "antispoof-unassigned": "Sadrži nedodeljen znak $1",
+ "antispoof-deprecated": "Sadrži zastareli znak $1",
+ "antispoof-noletters": "Ne sadrži nijedno slovo",
+ "antispoof-mixedscripts": "Sadrži nesaglasna mešana pisma",
+ "antispoof-tooshort": "Normalizovano ime je prekratko",
+ "antispoof-ignore": "Zanemari međusobno slična imena",
+ "right-override-antispoof": "zaobilaženje provera za međusobno slična imena"
+}
diff --git a/AntiSpoof/i18n/stq.json b/AntiSpoof/i18n/stq.json
new file mode 100644
index 00000000..87c14ea7
--- /dev/null
+++ b/AntiSpoof/i18n/stq.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Pyt"
+ ]
+ },
+ "antispoof-desc": "Ferhinnert dät Moakjen fon Benutserkonten mäd miskede Teekensatse, fertoogede un äänelke Benutsernoomen",
+ "antispoof-conflict-top": "Die Noome „$1“ is {{PLURAL:$2|dät existierjende Benutserkonto|do foulgjende $2 Benutserkonten}} tou äänelk:",
+ "antispoof-conflict-bottom": "Wääl n uur Noome.",
+ "antispoof-name-illegal": "Die wonskede Benutsernoome „$1“ is nit ferlööwed. Gruund: $2<br />Wääl n uur Benutsernoome.",
+ "antispoof-badtype": "Ungultigen Doatentyp",
+ "antispoof-empty": "Loos Fäild",
+ "antispoof-blacklisted": "Änthaalt nit tousteene Teekene.",
+ "antispoof-combining": "Kombinationsteeken toun Ounfang.",
+ "antispoof-unassigned": "Änthaalt nit tou-oardnede of nit wonskede Teekene.",
+ "antispoof-noletters": "Änthaalt neen Bouksteeuwe.",
+ "antispoof-mixedscripts": "Änthaalt Teekene fon uunglieke Skriftsysteme.",
+ "antispoof-tooshort": "Die kanonisierde Noome is tou kuut.",
+ "antispoof-ignore": "Ignorierje Äänelkhaidswröich",
+ "right-override-antispoof": "Buute Kraft sätten fon ju Benutsernoome-Äänelkhaidswröige"
+}
diff --git a/AntiSpoof/i18n/su.json b/AntiSpoof/i18n/su.json
new file mode 100644
index 00000000..6822e3bf
--- /dev/null
+++ b/AntiSpoof/i18n/su.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Irwangatot",
+ "Kandar"
+ ]
+ },
+ "antispoof-desc": "Peungpeuk dijieunna akun anu sandiasma skrip campuran, ngaco, atawa sarupa",
+ "antispoof-conflict-top": "Ngaran \"$1\" mirip teuing jeung {{PLURAL:$2|sandiasma|sandiasma}}:",
+ "antispoof-conflict-bottom": "Mangga pilih ngaran séjén.",
+ "antispoof-name-illegal": "Sandiasma \"$1\" teu diwenangkeun ngarah teu pahili jeung sandiasma: $2. Pilih sandiasma séjénna.",
+ "antispoof-badtype": "Tipeu datana awon",
+ "antispoof-empty": "String kosong",
+ "antispoof-blacklisted": "Ngandung karakter nu dipahing $1",
+ "antispoof-combining": "Dimimitian ku tanda gabungan $1",
+ "antispoof-unassigned": "Ngandung karakter anu teu dipaké $1",
+ "antispoof-noletters": "Kosong",
+ "antispoof-mixedscripts": "Ngandung tulisan campuran nu teu kompatibel",
+ "antispoof-tooshort": "Sandiasma pondok teuing",
+ "right-override-antispoof": "Abeykeun pangecekan panipuan ngaran pamaké"
+}
diff --git a/AntiSpoof/i18n/sv.json b/AntiSpoof/i18n/sv.json
new file mode 100644
index 00000000..e77a80ea
--- /dev/null
+++ b/AntiSpoof/i18n/sv.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boivie",
+ "Lejonel",
+ "Lokal Profil",
+ "M.M.S.",
+ "Skalman",
+ "Jopparn",
+ "WikiPhoenix"
+ ]
+ },
+ "antispoof-desc": "Förhindrar registreringen av konton med förvirrande eller liknande namn samt användarnamn som innehåller blandade skriftsystem.",
+ "antispoof-conflict-top": "Namnet \"$1\" är för likt {{PLURAL:$2|följande användarnamn|de följande användarnamnen}}:",
+ "antispoof-conflict-bottom": "Välj ett annat användarnamn.",
+ "antispoof-name-illegal": "För att förhindra förvirrande eller falska användarnamn, är namnet \"$1\" inte tillåtet. Anledning: $2\nVälj ett annat namn istället.",
+ "antispoof-badtype": "Felaktig datatyp",
+ "antispoof-empty": "Tom sträng",
+ "antispoof-blacklisted": "Innehåller det svartlistade tecknet $1",
+ "antispoof-combining": "Börjar med kombinationstecknet $1",
+ "antispoof-unassigned": "Innehåller det icke-tilldelade tecknet $1",
+ "antispoof-deprecated": "Innehåller det utfasade tecknet $1",
+ "antispoof-noletters": "Innehåller inga bokstäver",
+ "antispoof-mixedscripts": "Innehåller flera inkompatibla skriftsystem",
+ "antispoof-tooshort": "Det kanoniserade namnet är för kort",
+ "antispoof-ignore": "Ignorera missbrukskontroller",
+ "antispoof-ignore-help": "Tillåter användare med tillräckliga behörigheter att skapa ett konto, även om dess namn är liknande namnet på ett befintligt konto.",
+ "right-override-antispoof": "Slipper kontroller mot förvirrande användarnamn",
+ "apihelp-antispoof-description": "Kontrollera ett användarnamn mot AntiSpoofs normaliseringskontroller.",
+ "apihelp-antispoof-param-username": "Det användarnamn som ska kontrolleras mot AntiSpoof.",
+ "apihelp-antispoof-example-1": "Kontrollera användarnamn \"Foo\" mot AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ignorera missbrukskontroller (kräver <code>override-antispoof</code>-rättigheten)."
+}
diff --git a/AntiSpoof/i18n/sw.json b/AntiSpoof/i18n/sw.json
new file mode 100644
index 00000000..2dea3f6b
--- /dev/null
+++ b/AntiSpoof/i18n/sw.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephenwanjau"
+ ]
+ },
+ "antispoof-conflict-bottom": "Tafadhali chagua jina lingine.",
+ "antispoof-badtype": "Aina mbaya ya takwimu",
+ "antispoof-empty": "Utungo ni tupu",
+ "antispoof-noletters": "Haina herufi zozote"
+}
diff --git a/AntiSpoof/i18n/szl.json b/AntiSpoof/i18n/szl.json
new file mode 100644
index 00000000..c4c48dca
--- /dev/null
+++ b/AntiSpoof/i18n/szl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Przemub"
+ ]
+ },
+ "antispoof-badtype": "Felerny typ danych"
+}
diff --git a/AntiSpoof/i18n/ta.json b/AntiSpoof/i18n/ta.json
new file mode 100644
index 00000000..aaded485
--- /dev/null
+++ b/AntiSpoof/i18n/ta.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Karthi.dr",
+ "Shanmugamp7",
+ "TRYPPN",
+ "ElangoRamanujam"
+ ]
+ },
+ "antispoof-desc": "கலப்பு படிவம், குழப்பமான மற்றும் ஒரேமாதிரியான பயனர்பெயர்களை கொண்ட கணக்குகளை உருவாக்குவதை தடுக்கும்.",
+ "antispoof-conflict-top": "இந்தப் பயனர் பெயர் \"$1\" ஆனது கீழ்க்கண்டதை ஒத்ததாக உள்ளது {{PLURAL:$2|பயனர் பெயர்|பயனர் பெயர்கள்}}:",
+ "antispoof-conflict-bottom": "அருள்கூர்ந்து மற்றொரு பயனர் பெயரைத் தேர்ந்தெடுக்கவும்.",
+ "antispoof-name-illegal": "இந்தப் பயனர் பெயர் ''$1'' அனுமதிக்கப்படவில்லை ஏனெனில் குழப்பமான அல்லது போலியான பயனர்பெயர்களை தடுப்பதற்காக: $2\nஅருள்கூர்ந்து வேறு பயனர் பெயரைத் தேர்ந்தெடுக்கவும்.",
+ "antispoof-badtype": "மோசமான தரவு வகை",
+ "antispoof-empty": "வெற்றுச் சொற்றொடர்",
+ "antispoof-blacklisted": "தடுக்கப்பட்ட எழுத்து உள்ளது $1",
+ "antispoof-combining": "ஒருங்கிணைக்கும் குறியுடன் ஆரம்பிக்கும் $1",
+ "antispoof-unassigned": "வகுத்தமைக்கப்படாத அல்லது நீக்கப்பட்ட எழுத்தை கொண்டுள்ளது $1",
+ "antispoof-deprecated": "நீக்கப்பட்ட எழுத்தைக் கொண்டுள்ளது $1",
+ "antispoof-noletters": "எந்த எழுத்தையும் கொண்டிருக்கவில்லை",
+ "antispoof-mixedscripts": "பொருந்தாத கலந்த உரையை (scripts) கொண்டுள்ளது",
+ "antispoof-tooshort": "Normalized பெயர் மிக குறுகியதாக உள்ளது.",
+ "antispoof-ignore": "ஏமாற்றுதல் சரிபார்த்தலை புறக்கணி.",
+ "right-override-antispoof": "ஏமாற்றுதல் சரிபார்த்தலை ரத்துசெய்"
+}
diff --git a/AntiSpoof/i18n/tay.json b/AntiSpoof/i18n/tay.json
new file mode 100644
index 00000000..4fb559bf
--- /dev/null
+++ b/AntiSpoof/i18n/tay.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hitaypayan"
+ ]
+ },
+ "antispoof-empty": "Ungat ana nanu’ quw ppinslhingan biru’",
+ "antispoof-ignore": "Siy laxiy kya quw snayqruw niya’ maha kta’"
+}
diff --git a/AntiSpoof/i18n/te.json b/AntiSpoof/i18n/te.json
new file mode 100644
index 00000000..5a24cc6d
--- /dev/null
+++ b/AntiSpoof/i18n/te.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chaduvari",
+ "Mpradeep",
+ "Veeven",
+ "వైజాసత్య"
+ ]
+ },
+ "antispoof-desc": "మిశ్రమ లిపులతో, అయోమయపు మరియు సామీప్యపు పేర్లతో ఖాతాలను సృష్టించడాన్ని నిరోధిస్తుంది",
+ "antispoof-conflict-top": "\"$1\" అన్న పేరు కింది {{PLURAL:$2|వాడుకరి పేరుకు|వాడుకరి పేర్లకు}} మరీ దగ్గరగా ఉంది:",
+ "antispoof-conflict-bottom": "దయచేసి మరో పేరుని ఎంచుకోండి.",
+ "antispoof-name-illegal": "\"$1\" అనే పేరును అనుమతించము; అయోమయాన్ని, ఎగతాళి చేయడాన్ని నివారించేందుకు: $2. దయచేసి మరో పేరును ఎంచుకోండి.",
+ "antispoof-badtype": "తప్పుడు డాటా రకం",
+ "antispoof-empty": "ఖాళీ వాక్యం",
+ "antispoof-blacklisted": "$1 అనే నిషేదిత అక్షరాన్ని కలిగి ఉంది",
+ "antispoof-combining": "$1 సంయుక్త చిహ్నంతో మొదలయ్యింది",
+ "antispoof-unassigned": "ఇంతవరకూ ఆపాదించబడని వర్ణం $1 ని కలిగి ఉంది",
+ "antispoof-deprecated": "వినియోగం నుండి తీసేసిన వర్ణం $1 ని కలిగి ఉంది",
+ "antispoof-noletters": "ఎటువంటి అక్షరాలూ లేవు",
+ "antispoof-mixedscripts": "అసంగత మిశ్రమ లిపులు ఉన్నాయి",
+ "antispoof-tooshort": "విహితమైన పేరు మరీ చిన్నగా ఉంది",
+ "right-override-antispoof": "స్పూఫింగ్ తనిఖీలను అధిక్రమించు"
+}
diff --git a/AntiSpoof/i18n/tg-cyrl.json b/AntiSpoof/i18n/tg-cyrl.json
new file mode 100644
index 00000000..577d5220
--- /dev/null
+++ b/AntiSpoof/i18n/tg-cyrl.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim"
+ ]
+ },
+ "antispoof-desc": "Аз эҷоди ҳисобҳои корбарӣ бо ҳуруфҳои гиҷкунанда ё мушобеҳ бо дигар ҳисобҳои корбарӣ ҷилавгирӣ мекунад.",
+ "antispoof-name-illegal": "Номи \"$1\" ба далели ҷилавгирӣ аз номҳои корбарии сардардкунанда ё масхара миҷоз нест: $2. Лутфан номи дигареро интихоб кунед.",
+ "antispoof-badtype": "Навъи додаи номуносиб",
+ "antispoof-empty": "Риштаи холӣ",
+ "antispoof-blacklisted": "Аломатҳои дар феҳристи сиёҳ қарордоштаро дар бар мегирад",
+ "antispoof-combining": "Бо аломати ҷамъ шурӯъ мешавад.",
+ "antispoof-unassigned": "Аломати таъйиннашуда ё номуносиб аст",
+ "antispoof-noletters": "Ягон ҳарфҳо надорад",
+ "antispoof-mixedscripts": "Скриптҳои омехтаи носозгарро дар бар мегирад",
+ "antispoof-tooshort": "Номи мӯътариф хеле кӯтоҳ аст"
+}
diff --git a/AntiSpoof/i18n/tg-latn.json b/AntiSpoof/i18n/tg-latn.json
new file mode 100644
index 00000000..6c8f8bf7
--- /dev/null
+++ b/AntiSpoof/i18n/tg-latn.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent"
+ ]
+ },
+ "antispoof-desc": "Az eçodi hisobhoi korbarī bo hurufhoi giçkunanda jo muşobeh bo digar hisobhoi korbarī çilavgirī mekunad.",
+ "antispoof-name-illegal": "Nomi \"$1\" ba daleli çilavgirī az nomhoi korbariji sardardkunanda jo masxara miçoz nest: $2. Lutfan nomi digarero intixob kuned.",
+ "antispoof-badtype": "Nav'i dodai nomunosib",
+ "antispoof-empty": "Riştai xolī",
+ "antispoof-blacklisted": "Alomathoi dar fehristi sijoh qarordoştaro dar bar megirad",
+ "antispoof-combining": "Bo alomati çam' şurū' meşavad.",
+ "antispoof-unassigned": "Alomati ta'jinnaşuda jo nomunosib ast",
+ "antispoof-noletters": "Jagon harfho nadorad",
+ "antispoof-mixedscripts": "Skripthoi omextai nosozgarro dar bar megirad",
+ "antispoof-tooshort": "Nomi mū'tarif xele kūtoh ast"
+}
diff --git a/AntiSpoof/i18n/tk.json b/AntiSpoof/i18n/tk.json
new file mode 100644
index 00000000..ec370356
--- /dev/null
+++ b/AntiSpoof/i18n/tk.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hanberke"
+ ]
+ },
+ "antispoof-desc": "Garyşyk şriftli, bulaşyklyk dörediji we çalymdaş ulanyjy atlarynyň döredilmegini blokirleýär.",
+ "antispoof-conflict-top": "\"$1\" diýen at {{PLURAL:$2|bar bolan şu hasaba|aşakdaky $2 hasaba}} örän çalymdaş:",
+ "antispoof-conflict-bottom": "Başga bir at saýlaň.",
+ "antispoof-name-illegal": "Ulanyjy atlarynyň garjaşmagynyň ýa-da bulaşdyrylmagynyň öňüni almak \"$1\" adyna rugsat berilmeýär: $2. Başga bir ulanyjy adyny saýlaň.",
+ "antispoof-badtype": "Näsaz maglumat tipi",
+ "antispoof-empty": "Boş setir",
+ "antispoof-blacklisted": "Gara sanawa goşulan simwoly öz içine alýar",
+ "antispoof-combining": "Birleşdiriş belligi bilen başlaýar",
+ "antispoof-unassigned": "Bellenilmedik ýa-da tassyklanmadyk simwoly öz içine alýar",
+ "antispoof-noletters": "Hiç hili harpy ýok",
+ "antispoof-mixedscripts": "Laýyk däl garjaşyk şriftleri öz içine alýar",
+ "antispoof-tooshort": "Kadalaşdyrylan at örän gysga",
+ "antispoof-ignore": "Bulaşyklyk barlaglaryna üns berme",
+ "right-override-antispoof": "Bulaşyklyk barlagyny pisint etme"
+}
diff --git a/AntiSpoof/i18n/tl.json b/AntiSpoof/i18n/tl.json
new file mode 100644
index 00000000..4dd958aa
--- /dev/null
+++ b/AntiSpoof/i18n/tl.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw",
+ "Sky Harbor",
+ "Jojit fb",
+ "Umherirrender"
+ ]
+ },
+ "antispoof-desc": "Humaharang sa paglikha ng mga kuwentang may pinaghalong panitik, nakakalito at magkakatulad na mga pangalan ng tagagamit",
+ "antispoof-conflict-top": "Ang pangalang \"$1\" labis na magkatulad sa {{PLURAL:$2|sumusunod na account|mga sumusunod na account}}:",
+ "antispoof-conflict-bottom": "Mangyaring pumili lamang ng iba pang pangalan.",
+ "antispoof-name-illegal": "Hindi pinapayagan ang pangalang \"$1\" upang maiwasan ang nakalilito o mapanlilang na mga pangalan ng tagagamit: $2.\nMangyaring pumili ng iba pang pangalan.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "Masamang uri ng dato",
+ "antispoof-empty": "Bagting (''string'') na walang laman",
+ "antispoof-blacklisted": "Naglalaman ng nakalistang ipinagbabawal na panitik na $1",
+ "antispoof-combining": "Nagsisimula sa panandang pambuklod na $1",
+ "antispoof-unassigned": "Naglalaman ng hindi nakatakdang panitik na $1",
+ "antispoof-deprecated": "Naglalaman ng tinutulang panitik na $1",
+ "antispoof-noletters": "Hindi naglalaman ng anumang mga titik",
+ "antispoof-mixedscripts": "Naglalaman ng hindi magkakatugmang pinaghalong mga panitik",
+ "antispoof-tooshort": "Napakamaikli ng naging panuntunang pangalan",
+ "antispoof-ignore": "Balewalain ang mga pagsusuring pangpanlilinlang (spoof)",
+ "right-override-antispoof": "Daigin ang mga pagsusuring pangpanlilinlang (''spoof'')"
+}
diff --git a/AntiSpoof/i18n/to.json b/AntiSpoof/i18n/to.json
new file mode 100644
index 00000000..477888e7
--- /dev/null
+++ b/AntiSpoof/i18n/to.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tauʻolunga"
+ ]
+ },
+ "antispoof-name-illegal": "Ko e hingoa \"$1\" ʻoku ʻikai ngofua ia koeʻuhi ko e \"$2\" ʻoku loi. Fakamolemole fili ha hingoa kehe.",
+ "antispoof-empty": "ʻOtutohi maha"
+}
diff --git a/AntiSpoof/i18n/tr.json b/AntiSpoof/i18n/tr.json
new file mode 100644
index 00000000..febb8933
--- /dev/null
+++ b/AntiSpoof/i18n/tr.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Incelemeelemani",
+ "Joseph",
+ "Srhat",
+ "Arystanbek"
+ ]
+ },
+ "antispoof-desc": "Karışık-betikli, kafa karıştırıcı ve benzer kullanıcı adlarıyla hesap oluşturulmasını engeller",
+ "antispoof-conflict-top": "\"$1\" adı, şu {{PLURAL:$2|kullanıcı adına|kullanıcı adlarına}} çok benziyor:",
+ "antispoof-conflict-bottom": "Lütfen başka bir isim seçin.",
+ "antispoof-name-illegal": "$2 hesabıyla karışmaması için \"$1\" ismine izin verilmemektedir. Lütfen başka bir kullanıcı adı seçiniz.",
+ "antispoof-badtype": "Bozuk veri tipi",
+ "antispoof-empty": "Boş dizi",
+ "antispoof-blacklisted": "$1 Kara listeye karakteri içeriyor",
+ "antispoof-combining": "$1 Kaynaştırma işaretiyle başlıyor",
+ "antispoof-unassigned": "$1 Atanmamış ya da onaylanmamış karakter içeriyor",
+ "antispoof-deprecated": "$1 eski karakterini içeriyor",
+ "antispoof-noletters": "Hiç harf içermez",
+ "antispoof-mixedscripts": "Uyumsuz karışık betikler içeriyor",
+ "antispoof-tooshort": "Standartlaştırılmış isim çok kısa",
+ "antispoof-ignore": "Aldatıcı kontrolleri ihmal et",
+ "right-override-antispoof": "Aldatıcı kontrolleri gerçersiz kıl",
+ "apihelp-antispoof-description": "AntiSpoof bu normalleşme denetler karşı bir kullanıcı adı kontrol edin.",
+ "apihelp-antispoof-param-username": "Kullanıcı adı AntiSpoof karşı kontrol edin.",
+ "apihelp-antispoof-example-1": "Onay \"\" karşı AntiSpoof Foo kullanıcı adı"
+}
diff --git a/AntiSpoof/i18n/tzm.json b/AntiSpoof/i18n/tzm.json
new file mode 100644
index 00000000..7d979484
--- /dev/null
+++ b/AntiSpoof/i18n/tzm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Tifinaghes"
+ ]
+ },
+ "antispoof-bad-char": "\"$1\" ($2)"
+}
diff --git a/AntiSpoof/i18n/ug-arab.json b/AntiSpoof/i18n/ug-arab.json
new file mode 100644
index 00000000..0182f9ac
--- /dev/null
+++ b/AntiSpoof/i18n/ug-arab.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arlin",
+ "Sahran"
+ ]
+ },
+ "antispoof-desc": "ئىشلەتكۈچى ئاتىغا ئارىلاش قوليازما ئىشلىتىش، ئاسان ئارىلىشىپ كېتىدىغان ۋە مەۋجۇت ئىشلەتكۈچى ئاتى بىلەن بەك ئوخشاپ كېتىدىغان ھېسابات ئىشلىتىش چەكلىنىدۇ",
+ "antispoof-conflict-top": "\"$1\" ئىشلەتكۈچى ئاتى بىلەن {{PLURAL:$2|مەۋجۇت ھېسابات|تۆۋەندىكى $2 ھېسابات}} بەت ئوخشايدىكەن:",
+ "antispoof-conflict-bottom": "باشقا ئات تاللاڭ.",
+ "antispoof-name-illegal": "ئىشلەتكۈچى ئاتى $2 نى ئارىلاشتۇرۇۋېتىش ياكى قاقتى-سوقتى خاراكتىرىدە ئىشلىتىشنىڭ ئالدىنى ئېلىش ئۈچۈن ئىشلەتكۈچى ئاتى \"$1\" نى ئىشلىتىش چەكلەندى.\nباشقا ئىشلەتكۈچى ئىسمىنى ئىشلىتىڭ.",
+ "antispoof-bad-char": "\"$1\" ($2)",
+ "antispoof-badtype": "خاتا سانلىق مەلۇمات تىپى",
+ "antispoof-empty": "قۇرۇق تىزىقى",
+ "antispoof-blacklisted": "قارا تىزىملىكتىكى ھەرپ $1 نى ئۆز ئىچىگە ئالغان",
+ "antispoof-combining": "بىرلەشمە بەلگە $1 دىن باشلىنىدۇ",
+ "antispoof-unassigned": "ئىمزا قويۇلمىغان ھەرپ $1 نى ئۆز ئىچىگە ئالىدۇ",
+ "antispoof-deprecated": "تاشلىۋەتكەن ھەرپ $1 نى ئۆز ئىچىگە ئالىدۇ",
+ "antispoof-noletters": "ھېچقانداق ھەرپنى ئۆز ئىچىگە ئالمايدۇ",
+ "antispoof-mixedscripts": "ماسلاشمايدىغان بىرىكمە قوليازمىنى ئۆز ئىچىگە ئالىدۇ",
+ "antispoof-tooshort": "ئۆلچەملەشتۈرۈلگەندىن كېيىنكى ئىسىم بەك قىسقا",
+ "antispoof-ignore": "قاقتى-سوقتى تەكشۈرۈشكە پەرۋا قىلما",
+ "right-override-antispoof": "قاقتى-سوقتى تەكشۈرۈشنى قاپلا"
+}
diff --git a/AntiSpoof/i18n/uk.json b/AntiSpoof/i18n/uk.json
new file mode 100644
index 00000000..916568f1
--- /dev/null
+++ b/AntiSpoof/i18n/uk.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "A1",
+ "AS",
+ "Ahonc",
+ "Andriykopanytsia",
+ "Piramidion",
+ "Ата",
+ "Base"
+ ]
+ },
+ "antispoof-desc": "Забороняє створення облікових записів з іменами, подібними або схожими на імена інших облікових записів, та іменами, що містять символи з різних систем письма.",
+ "antispoof-conflict-top": "Ім'я користувача «$1» дуже схоже на {{PLURAL:$2|1=таке ім'я|такі імена}}:",
+ "antispoof-conflict-bottom": "Будь ласка, оберіть інше ім'я користувача.",
+ "antispoof-name-illegal": "Не дозволене використання імені користувача «$1» з метою запобігання плутанню із занадто схожими на нього іменами: $2. Будь ласка, виберіть інше ім'я користувача.",
+ "antispoof-badtype": "Невірний тип даних",
+ "antispoof-empty": "Порожній рядок",
+ "antispoof-blacklisted": "Містить заборонений символ: $1",
+ "antispoof-combining": "Починається з символу $1",
+ "antispoof-unassigned": "Містить неприпустимий символ: $1",
+ "antispoof-deprecated": "Містить заборонений символ: $1",
+ "antispoof-noletters": "Не містить жодної літери",
+ "antispoof-mixedscripts": "Використовуються несумісні системи письма",
+ "antispoof-tooshort": "Канонічне ім'я надто коротке",
+ "antispoof-ignore": "Ігнорувати перевірки на схожі імена",
+ "antispoof-ignore-help": "Дозволяє користувачам з достатніми правами створити обліковий запис навіть якщо його ім'я є схожим до імені дійсного облікового запису.",
+ "right-override-antispoof": "ігнорування перевірок на схожі імена",
+ "apihelp-antispoof-description": "Перевірите ім'я користувача через перевірку нормалізації AntiSpoof.",
+ "apihelp-antispoof-summary": "Перевірите ім'я користувача через перевірку нормалізації AntiSpoof.",
+ "apihelp-antispoof-param-username": "Ім'я користувача для перевірки через AntiSpoof.",
+ "apihelp-antispoof-example-1": "Перевірити ім'я користувача «Foo» через AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Ігнорувати перевірки підмін (вимагає права <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/ur.json b/AntiSpoof/i18n/ur.json
new file mode 100644
index 00000000..50696eae
--- /dev/null
+++ b/AntiSpoof/i18n/ur.json
@@ -0,0 +1,16 @@
+{
+ "@metadata": {
+ "authors": [
+ "පසිඳු කාවින්ද",
+ "Muhammad Shuaib",
+ "Saraiki"
+ ]
+ },
+ "antispoof-conflict-bottom": "براہ مہربانی اور صارف کا نام انتخاب کریں ۔",
+ "antispoof-badtype": "برا اعداد و شمار کی قسم",
+ "antispoof-empty": "خالی تار",
+ "antispoof-noletters": "نہیں کسی بھی حروف پر مشتمل",
+ "antispoof-mixedscripts": "مطابقت مخلوط سکرپٹ پر مشتمل ہے",
+ "antispoof-ignore": "فریب کاری کی جانچ کو نظر انداز کریں",
+ "right-override-antispoof": "فریب کاری کی جانچ کی منسوخی"
+}
diff --git a/AntiSpoof/i18n/vec.json b/AntiSpoof/i18n/vec.json
new file mode 100644
index 00000000..723af90e
--- /dev/null
+++ b/AntiSpoof/i18n/vec.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Candalua",
+ "GatoSelvadego"
+ ]
+ },
+ "antispoof-desc": "Inpedisse la creazion de account con carateri missià, nomi utente che genera confusion o che se someja massa tra de lori.",
+ "antispoof-conflict-top": "El nome \"$1\" el xe someja massa {{PLURAL:$2|a l'utensa esistente|a le seguenti $2 utense}}:",
+ "antispoof-conflict-bottom": "Sièglite n'antro nome.",
+ "antispoof-name-illegal": "El nome \"$1\" no'l xe mìa permesso, par evitar confusion o utilizi fraudolenti: $2.\nSiegli n'altro nome, par piaser.",
+ "antispoof-badtype": "Tipo de dati mìa giusto.",
+ "antispoof-empty": "Stringa voda",
+ "antispoof-blacklisted": "Contien el caratere mìa consentio $1",
+ "antispoof-combining": "Scuminsia có ła conbinasion de carateri $1",
+ "antispoof-unassigned": "Contien el caratere nó asegnà $1",
+ "antispoof-deprecated": "Contien el caratere deprecà $1",
+ "antispoof-noletters": "No ghe xe letere",
+ "antispoof-mixedscripts": "Conbinazion de sistemi de scritura mìa conpatibili",
+ "antispoof-tooshort": "Nome in forma canonica massa curto",
+ "antispoof-ignore": "Ignora i contròli del spoofing",
+ "right-override-antispoof": "Ignora le verifiche de spoofing"
+}
diff --git a/AntiSpoof/i18n/vep.json b/AntiSpoof/i18n/vep.json
new file mode 100644
index 00000000..0301d818
--- /dev/null
+++ b/AntiSpoof/i18n/vep.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "antispoof-conflict-bottom": "Olgat hüväd, valikat toine nimi.",
+ "antispoof-badtype": "Vär andmusidentip",
+ "antispoof-empty": "Pall'az rivi"
+}
diff --git a/AntiSpoof/i18n/vi.json b/AntiSpoof/i18n/vi.json
new file mode 100644
index 00000000..00485ca6
--- /dev/null
+++ b/AntiSpoof/i18n/vi.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran",
+ "Quenhitran"
+ ]
+ },
+ "antispoof-desc": "Cấm không được mở tài khoản dưới tên người dùng sử dụng hơn một hệ thống chữ viết, gây nhầm lẫn, và tương tự với tên người dùng khác",
+ "antispoof-conflict-top": "Tên người dùng “$1” quá giống {{PLURAL:$2|tên|các tên}} người dùng sau:",
+ "antispoof-conflict-bottom": "Xin hãy chọn tên người dùng khác.",
+ "antispoof-name-illegal": "Không được phép dùng tên người dùng “$1” vì có thể gây nhầm lẫn hoặc lừa đảo: $2. Xin hãy chọn tên người dùng khác.",
+ "antispoof-bad-char": "“$1” ($2)",
+ "antispoof-badtype": "Kiểu dữ liệu không hợp lệ",
+ "antispoof-empty": "Chuỗi trống",
+ "antispoof-blacklisted": "Có chứa ký tự bị cấm $1",
+ "antispoof-combining": "Bắt đầu bằng dấu kết hợp $1",
+ "antispoof-unassigned": "Có chứa ký tự chưa gán hoặc ký tự bị phản đối",
+ "antispoof-deprecated": "Có chứa ký tự bị phản đối $1",
+ "antispoof-noletters": "Không có bất kỳ chữ nào",
+ "antispoof-mixedscripts": "Có trộn lẫn hệ thống viết không tương thích",
+ "antispoof-tooshort": "Tên chuẩn hóa quá ngắn",
+ "antispoof-ignore": "Không kiểm tra tên có gây nhầm lẫn",
+ "antispoof-ignore-help": "Cho phép những người dùng có đủ quyền tạo tài khoản có tên tương tự với một tài khoản đã tồn tại.",
+ "right-override-antispoof": "Bỏ qua kiểm tra tên",
+ "apihelp-antispoof-description": "Kiểm tra tên người dùng qua quá trình chuẩn hóa của AntiSpoof.",
+ "apihelp-antispoof-param-username": "Tên người dùng để kiểm tra qua AntiSpoof.",
+ "apihelp-antispoof-example-1": "Kiểm tra tên người dùng “Foo” qua AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "Bỏ qua các kiểm tra lừa gạt (cần quyền <code>override-antispoof</code>)."
+}
diff --git a/AntiSpoof/i18n/vo.json b/AntiSpoof/i18n/vo.json
new file mode 100644
index 00000000..b1186e01
--- /dev/null
+++ b/AntiSpoof/i18n/vo.json
@@ -0,0 +1,22 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Smeira"
+ ]
+ },
+ "antispoof-desc": "Blokön jafi kalas labü gebananems kofudik, tu sümiks u labü lafabs distik",
+ "antispoof-conflict-top": "Nem: \"$1\" binon tu sümik äs {{PLURAL:$1|nem kala ya dabinöla|nems kalas ya dabinölas}}:",
+ "antispoof-conflict-bottom": "Välolös nemi votik.",
+ "antispoof-name-illegal": "Nem: „$1“ no padälon, ad vitön gebananemis kofudik u smilöfikis: $2. Välolös, begö! nemi votik.",
+ "antispoof-badtype": "Nünasot badik",
+ "antispoof-empty": "Vödem vagik",
+ "antispoof-blacklisted": "Keninükon malatis no pedälölis.",
+ "antispoof-combining": "Primon me malat kobüköl",
+ "antispoof-unassigned": "Keninükon malatis no lonöfölis u vorädikis",
+ "antispoof-noletters": "No ninädon tonatis alseimik",
+ "antispoof-mixedscripts": "Keninükon migi penamasitas no balabikas",
+ "antispoof-tooshort": "Nem valemik tu brefik",
+ "antispoof-ignore": "Nedemön sümikontrolis",
+ "right-override-antispoof": "Nefägükon sümikontrolis"
+}
diff --git a/AntiSpoof/i18n/war.json b/AntiSpoof/i18n/war.json
new file mode 100644
index 00000000..411030b1
--- /dev/null
+++ b/AntiSpoof/i18n/war.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "JinJian"
+ ]
+ },
+ "antispoof-conflict-bottom": "Alayon pagpili hin iba nga ngaran."
+}
diff --git a/AntiSpoof/i18n/wuu.json b/AntiSpoof/i18n/wuu.json
new file mode 100644
index 00000000..412278c6
--- /dev/null
+++ b/AntiSpoof/i18n/wuu.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "飞舞回堂前"
+ ]
+ },
+ "antispoof-name-illegal": "为著防止混淆或欺诈性使用用户名“$2”,用户名“$1”禁止使用。请选择别个用户名。",
+ "antispoof-badtype": "错误个数据类型"
+}
diff --git a/AntiSpoof/i18n/yi.json b/AntiSpoof/i18n/yi.json
new file mode 100644
index 00000000..899508ff
--- /dev/null
+++ b/AntiSpoof/i18n/yi.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "antispoof-desc": "בלאקירט שאפֿן קאנטעס מיט געמישטע שריפֿטן, פֿארפלאנטערטע און ענלעכע באניצער נעמען",
+ "antispoof-conflict-top": "דער באניצער־נאָמען \"$1\" איז צו ענלעך צו {{PLURAL:$2|דעם פֿאלגנדעם באניצער נאמען|די פֿאלגנדע באניצער נעמען}}:",
+ "antispoof-conflict-bottom": "ביטע קלויבט אויס אן אנדער באניצער־נאָמען.",
+ "antispoof-badtype": "שלעכטער דאַטן טיפ",
+ "antispoof-empty": "ליידיג שנירל",
+ "antispoof-blacklisted": "כולל דעם געאסר'טן צייכן $1",
+ "antispoof-combining": "הייבט אן מיטן קאמבינאציע צייכן $1",
+ "antispoof-unassigned": "כולל א נישט געניצטער אדער אלטלעכער צייכן",
+ "antispoof-deprecated": "אנטהאלט פארעלטערטן כאראקטער $1",
+ "antispoof-noletters": "אַנטהאַלט ניט קײַן בוכשטאַבן.",
+ "antispoof-tooshort": "נאמען צו קורץ"
+}
diff --git a/AntiSpoof/i18n/yo.json b/AntiSpoof/i18n/yo.json
new file mode 100644
index 00000000..090c0789
--- /dev/null
+++ b/AntiSpoof/i18n/yo.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Demmy"
+ ]
+ },
+ "antispoof-conflict-top": "Orúkọ ''$1'' jọ {{PLURAL:$2|àpamọ́ tó wà yìí|àwọn àpamọ́ $2 wọ̀nyí}} jù:",
+ "antispoof-conflict-bottom": "Ẹ jọ̀wọ́ ẹ yan orúkọ míràn.",
+ "antispoof-name-illegal": "Orúkọ ''$1'' kò ṣe é gbà ní àyè láti dínà ìdojúrú tàbí ìtànjẹ orúkọ oníṣe: $2.\nẸ jọ̀wọ́ ẹ yan orúkọ míràn.",
+ "antispoof-badtype": "Irú dátà burúkú",
+ "antispoof-noletters": "Kò ní lẹ́tà kankan nínú"
+}
diff --git a/AntiSpoof/i18n/yue.json b/AntiSpoof/i18n/yue.json
new file mode 100644
index 00000000..74ac73ed
--- /dev/null
+++ b/AntiSpoof/i18n/yue.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Antonytse",
+ "CRCHF",
+ "Yueman",
+ "Ktchankt"
+ ]
+ },
+ "antispoof-desc": "封鎖一啲對於有混合程序、混淆同埋相似嘅用戶名嘅開戶口動作",
+ "antispoof-conflict-top": "由於戶口”$1“同以下呢啲戶口嘅名太似:\n{{PLURAL:$2|username|usernames}}",
+ "antispoof-conflict-bottom": "請揀第個名",
+ "antispoof-name-illegal": "呢個名\"$1\"唔畀用,以預防撈亂或者冒充:\"$2\"。請揀過個名。",
+ "antispoof-badtype": "錯誤嘅資料類型",
+ "antispoof-empty": "空白字串",
+ "antispoof-blacklisted": "有列喺黑名單度嘅字符「$1」",
+ "antispoof-combining": "從結合標記$1開始",
+ "antispoof-unassigned": "有未指定嘅字符「$1」",
+ "antispoof-deprecated": "有列喺黑名單度嘅字符「$1」",
+ "antispoof-noletters": "唔包含任何字元",
+ "antispoof-mixedscripts": "包含唔相容嘅混合碼",
+ "antispoof-tooshort": "正規化嘅名太短",
+ "antispoof-ignore": "略過欺詐檢查",
+ "antispoof-ignore-help": "畀有特定權限嘅用戶去開同現有戶口個名相似嘅新戶口。",
+ "right-override-antispoof": "無視欺詐檢查",
+ "apihelp-antispoof-description": "正常檢查一個戶口係咪有網絡釣魚嘅嘢。",
+ "apihelp-antispoof-param-username": "呢個用戶名懷疑有網絡釣魚",
+ "apihelp-antispoof-example-1": "查到“Foo”呢個戶口有網絡釣魚嘅嘢",
+ "apihelp-createaccount-param-ignoreantispoof": "略過欺詐檢查(需要 <code>override-antispoof</code> 權限)。"
+}
diff --git a/AntiSpoof/i18n/zea.json b/AntiSpoof/i18n/zea.json
new file mode 100644
index 00000000..a84b038a
--- /dev/null
+++ b/AntiSpoof/i18n/zea.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "NJ",
+ "Ooswesthoesbes"
+ ]
+ },
+ "antispoof-desc": "Blokkeer 't anmaeken van gebrukers mie meêdere schriffen, verwarr'nde en heliekende gebrukersnaemen",
+ "antispoof-name-illegal": "De naem \"$1\" is nie toehestaen om verwarrieng of gefinheerde gebrukersnaemen te voorkomm'n: $2. Kies asjeblieft een aore naem.",
+ "antispoof-badtype": "Verkeêrd datatype",
+ "antispoof-empty": "Lehe strieng",
+ "antispoof-blacklisted": "Bevat verbood'n karakter",
+ "antispoof-combining": "Behun mie een hecombineerd merkteêken",
+ "antispoof-unassigned": "Bevat nie toehewezen of verouwerd karakter",
+ "antispoof-noletters": "Bevat hin letters",
+ "antispoof-mixedscripts": "Bevat nie compatibele schriffen",
+ "antispoof-tooshort": "Afekorte naem te kort",
+ "antispoof-ignore": "Controle op geliekende gebrukersnaemen negeren"
+}
diff --git a/AntiSpoof/i18n/zh-hans.json b/AntiSpoof/i18n/zh-hans.json
new file mode 100644
index 00000000..e2149716
--- /dev/null
+++ b/AntiSpoof/i18n/zh-hans.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gzdavidwong",
+ "Hzy980512",
+ "Jimmy xu wrk",
+ "Liangent",
+ "PhiLiP",
+ "Xiaomingyan",
+ "Yfdyh000",
+ "Liuxinyu970226",
+ "范"
+ ]
+ },
+ "antispoof-desc": "禁止使用混合文字、容易混淆或与已存在用户名过于相似的用户名创建帐户",
+ "antispoof-conflict-top": "用户名“$1”与以下{{PLURAL:$2|用户名}}过于相似:",
+ "antispoof-conflict-bottom": "请选择其它用户名。",
+ "antispoof-name-illegal": "为防止混淆或欺诈性用户名,用户名“$1”不允许使用:$2。请选择其他用户名。",
+ "antispoof-badtype": "错误的数据类型",
+ "antispoof-empty": "空白字串",
+ "antispoof-blacklisted": "包含已列入黑名单的字符 $1",
+ "antispoof-combining": "以组合标记开始 $1",
+ "antispoof-unassigned": "包含未分配的字符 $1",
+ "antispoof-deprecated": "包含不赞成使用的字符 $1",
+ "antispoof-noletters": "未包含任何字符",
+ "antispoof-mixedscripts": "包含不兼容的混合文字",
+ "antispoof-tooshort": "标准化的名字过短",
+ "antispoof-ignore": "忽略欺诈检查",
+ "antispoof-ignore-help": "允许有足够特权的用户创建账户,即便其用户名与现有账户相似。",
+ "right-override-antispoof": "无视欺诈检查",
+ "apihelp-antispoof-description": "检查用户名是否触犯AntiSpoof的常规检查。",
+ "apihelp-antispoof-summary": "检查用户名是否触犯AntiSpoof的常规检查。",
+ "apihelp-antispoof-param-username": "要检查是否触犯AntiSpoof的用户名。",
+ "apihelp-antispoof-example-1": "检查用户名“Foo”是否触犯AntiSpoof",
+ "apihelp-createaccount-param-ignoreantispoof": "忽略欺骗检查(需要<code>override-antispoof</code>权限)。"
+}
diff --git a/AntiSpoof/i18n/zh-hant.json b/AntiSpoof/i18n/zh-hant.json
new file mode 100644
index 00000000..e3e1ba2b
--- /dev/null
+++ b/AntiSpoof/i18n/zh-hant.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gzdavidwong",
+ "Justincheng12345",
+ "Liangent",
+ "Mark85296341",
+ "Simon Shek",
+ "Waihorace",
+ "Wrightbus",
+ "LNDDYL",
+ "Cwlin0416",
+ "Arthur2e5",
+ "A2093064"
+ ]
+ },
+ "antispoof-desc": "禁止使用混合 Script、容易混淆或與既有使用者名稱過於相似的使用者名稱建立帳號",
+ "antispoof-conflict-top": "使用者名稱 \"$1\" 與以下{{PLURAL:$2|使用者|$2 個使用者}}過於相似:",
+ "antispoof-conflict-bottom": "請選擇其他名稱。",
+ "antispoof-name-illegal": "已禁止使用名稱 \"$1\" 以避免混淆或欺騙使用者名稱:$2。\n請使用其他名稱。",
+ "antispoof-badtype": "錯誤的資料類型",
+ "antispoof-empty": "空字串",
+ "antispoof-blacklisted": "含有已列入黑名單的字元 $1",
+ "antispoof-combining": "以組合符號開頭 $1",
+ "antispoof-unassigned": "含有未分配的字元 $1",
+ "antispoof-deprecated": "含有不建議使用的字元 $1",
+ "antispoof-noletters": "未含有任何字母",
+ "antispoof-mixedscripts": "包含不兼容的混合文字",
+ "antispoof-tooshort": "標準化後的使用者名稱過短",
+ "antispoof-ignore": "忽略欺騙檢查",
+ "antispoof-ignore-help": "允許有特定權限的用戶創建與現有帳戶名相似的新帳戶。",
+ "right-override-antispoof": "覆蓋欺騙檢查",
+ "apihelp-antispoof-description": "檢查使用者名稱是否違反 AntiSpoof 的常態檢查。",
+ "apihelp-antispoof-param-username": "檢查使用者名稱是否違反 AntiSpoof。",
+ "apihelp-antispoof-example-1": "檢查使用者名稱 \"Foo\" 是否違反 AntiSpoof。",
+ "apihelp-createaccount-param-ignoreantispoof": "忽略詐欺攻擊檢查 (需要 <code>override-antispoof</code> 權限)。"
+}
diff --git a/AntiSpoof/maintenance/BatchAntiSpoofClass.php b/AntiSpoof/maintenance/BatchAntiSpoofClass.php
new file mode 100644
index 00000000..c4092ee5
--- /dev/null
+++ b/AntiSpoof/maintenance/BatchAntiSpoofClass.php
@@ -0,0 +1,83 @@
+<?php
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../../..';
+}
+require_once "$IP/maintenance/Maintenance.php";
+
+/**
+ * Go through all usernames and calculate and record spoof thingies
+ */
+class BatchAntiSpoof extends Maintenance {
+
+ public function __construct() {
+ parent::__construct();
+
+ $this->requireExtension( 'AntiSpoof' );
+ }
+
+ /**
+ * @param $items array
+ */
+ protected function batchRecord( $items ) {
+ SpoofUser::batchRecord( $this->getDB( DB_MASTER ), $items );
+ }
+
+ /**
+ * @return string
+ */
+ protected function getTableName() {
+ return 'user';
+ }
+
+ /**
+ * @return string
+ */
+ protected function getUserColumn() {
+ return 'user_name';
+ }
+
+ /**
+ * @param $name string
+ * @return SpoofUser
+ */
+ protected function makeSpoofUser( $name ) {
+ return new SpoofUser( $name );
+ }
+
+ protected function waitForSlaves() {
+ wfWaitForSlaves();
+ }
+
+ /**
+ * Do the actual work. All child classes will need to implement this
+ */
+ public function execute() {
+ $dbw = $this->getDB( DB_MASTER );
+
+ $batchSize = 1000;
+
+ $this->output( "Creating username spoofs...\n" );
+ $userCol = $this->getUserColumn();
+ $result = $dbw->select( $this->getTableName(), $userCol, null, __FUNCTION__ );
+ $n = 0;
+ $items = [];
+ foreach ( $result as $row ) {
+ if ( $n++ % $batchSize == 0 ) {
+ $this->output( "...$n\n" );
+ }
+
+ $items[] = $this->makeSpoofUser( $row->$userCol );
+
+ if ( $n % $batchSize == 0 ) {
+ $this->batchRecord( $items );
+ $items = [];
+ $this->waitForSlaves();
+ }
+ }
+
+ $this->batchRecord( $items );
+ $this->output( "$n user(s) done.\n" );
+ }
+}
diff --git a/AntiSpoof/maintenance/Makefile b/AntiSpoof/maintenance/Makefile
new file mode 100644
index 00000000..6d6b958f
--- /dev/null
+++ b/AntiSpoof/maintenance/Makefile
@@ -0,0 +1,16 @@
+
+equivset.txt equivset.php equivset.ser: equivset.in
+ php generateEquivset.php
+ cp equivset.ser ../equivset.ser
+ cp equivset.php ../equivset.php
+
+equivset.in: equivset.head equivset_1 equivset_2 equivset_3
+ cat equivset.head > equivset.in
+ grep -v -h "^</*pre>" equivset_1 equivset_2 equivset_3 >> equivset.in
+ echo "Regenerated $@. Remember to run 'git diff equivset.in' before commiting"
+
+equivset_%:
+ wget --user-agent="Extension AntiSpoof equivset.in rebuild" -O $@ "https://www.mediawiki.org/w/index.php?action=raw&title=Extension:AntiSpoof/Equivalence_sets/$@"
+
+clean:
+ rm -f equivset.in equivset_1 equivset_2 equivset_3 equivset.txt equivset.php equivset.ser
diff --git a/AntiSpoof/maintenance/batchAntiSpoof.php b/AntiSpoof/maintenance/batchAntiSpoof.php
new file mode 100644
index 00000000..402269e1
--- /dev/null
+++ b/AntiSpoof/maintenance/batchAntiSpoof.php
@@ -0,0 +1,5 @@
+<?php
+require_once "BatchAntiSpoofClass.php";
+
+$maintClass = "BatchAntiSpoof";
+require_once DO_MAINTENANCE;
diff --git a/AntiSpoof/maintenance/equivset.head b/AntiSpoof/maintenance/equivset.head
new file mode 100644
index 00000000..739a33a5
--- /dev/null
+++ b/AntiSpoof/maintenance/equivset.head
@@ -0,0 +1,34 @@
+# There is a publically editable copy of this file at
+# http://www.mediawiki.org/wiki/AntiSpoof/Equivalence_sets
+
+# This is the input file for generateEquivset.php
+# The format is:
+#
+# <hexadecimal codepoint> <character> => [<hexadecimal codepoint>] <character>
+#
+# If the codepoint is given, it must match the character, or else a warning
+# will be issued and the line will be ignored.
+#
+# The effect of such a line is to conflate the two identified character, i.e.
+# to put them in the same set. If two sets share a member, then they will be
+# merged into a single larger set.
+#
+# We have attempted to include the following types of equivalence:
+# * Case folding. Although letters of different cases are often visually
+# distinct, they can easily be confused by people who are familiar with
+# the alphabet. Two words with a different case may be read as the same
+# word. This is a popular technique for impersonation.
+#
+# * Visually similar characters. Cross-script pairs are included, but these
+# tend to produce false conflations within scripts, and so should be
+# avoided. The software implements a blanket restriction against cross-
+# script strings, which makes cross-script pairs mostly redundant.
+#
+# * Chinese Simplified/Traditional pairs.
+#
+# The list is based on one by Neil Harris, which was derived by unknown methods.
+# That list also contained transliteration pairs, which we considered excessive
+# and have attempted to remove. For example, the latin E and H were considered
+# equivalent, because the latin transliteration of the cyrillic "Н" (which
+# looks like latin H) is "E".
+
diff --git a/AntiSpoof/maintenance/equivset.in b/AntiSpoof/maintenance/equivset.in
new file mode 100644
index 00000000..82e3c8d9
--- /dev/null
+++ b/AntiSpoof/maintenance/equivset.in
@@ -0,0 +1,5613 @@
+# There is a publically editable copy of this file at
+# http://www.mediawiki.org/wiki/AntiSpoof/Equivalence_sets
+
+# This is the input file for generateEquivset.php
+# The format is:
+#
+# <hexadecimal codepoint> <character> => [<hexadecimal codepoint>] <character>
+#
+# If the codepoint is given, it must match the character, or else a warning
+# will be issued and the line will be ignored.
+#
+# The effect of such a line is to conflate the two identified character, i.e.
+# to put them in the same set. If two sets share a member, then they will be
+# merged into a single larger set.
+#
+# We have attempted to include the following types of equivalence:
+# * Case folding. Although letters of different cases are often visually
+# distinct, they can easily be confused by people who are familiar with
+# the alphabet. Two words with a different case may be read as the same
+# word. This is a popular technique for impersonation.
+#
+# * Visually similar characters. Cross-script pairs are included, but these
+# tend to produce false conflations within scripts, and so should be
+# avoided. The software implements a blanket restriction against cross-
+# script strings, which makes cross-script pairs mostly redundant.
+#
+# * Chinese Simplified/Traditional pairs.
+#
+# The list is based on one by Neil Harris, which was derived by unknown methods.
+# That list also contained transliteration pairs, which we considered excessive
+# and have attempted to remove. For example, the latin E and H were considered
+# equivalent, because the latin transliteration of the cyrillic "Н" (which
+# looks like latin H) is "E".
+
+24 $ => 53 S
+30 0 => 4F O
+31 1 => 49 I
+33 3 => 45 E
+34 4 => 41 A
+35 5 => 53 S
+36 6 => 47 G
+40 @ => 41 A
+61 a => 41 A
+62 b => 42 B
+63 c => 43 C
+64 d => 44 D
+65 e => 45 E
+66 f => 46 F
+67 g => 47 G
+68 h => 48 H
+69 i => 49 I
+6A j => 4A J
+6B k => 4B K
+6C l => 4C L
+6D m => 4D M
+6E n => 4E N
+6F o => 4F O
+70 p => 50 P
+71 q => 51 Q
+72 r => 52 R
+73 s => 53 S
+74 t => 54 T
+75 u => 55 U
+76 v => 56 V
+77 w => 57 W
+78 x => 58 X
+79 y => 59 Y
+7A z => 5A Z
+7C | => 31 1
+A2 ¢ => 43 C
+A3 £ => 4C L
+AE ® => 52 R
+C0 À => 41 A
+C1 Á => 41 A
+C2 Â => 41 A
+C3 Ã => 41 A
+C4 Ä => 41 A
+C5 Å => 41 A
+D0 Ð => 44 D
+D8 Ø => 4F O
+DE Þ => 50 P
+DF ß => 42 B
+E0 à => 41 A
+E1 á => 41 A
+E2 â => 41 A
+E3 ã => 41 A
+E4 ä => 41 A
+E5 å => 41 A
+E6 æ => C6 Æ
+E7 ç => 43 C
+E8 è => 45 E
+E9 é => 45 E
+EA ê => 45 E
+EB ë => 45 E
+EC ì => 49 I
+ED í => 49 I
+EE î => 49 I
+EF ï => 49 I
+F0 ð => 44 D
+F1 ñ => 4E N
+F2 ò => 4F O
+F3 ó => 4F O
+F4 ô => 4F O
+F5 õ => 4F O
+F6 ö => 4F O
+F8 ø => 4F O
+F9 ù => 55 U
+FA ú => 55 U
+FB û => 55 U
+FC ü => 55 U
+FD ý => 59 Y
+FE þ => 50 P
+FF ÿ => 59 Y
+100 Ā => 41 A
+101 ā => 41 A
+102 Ă => 41 A
+103 ă => 41 A
+104 Ą => 41 A
+105 ą => 41 A
+107 ć => 43 C
+109 ĉ => 43 C
+109 ĉ => 43 C
+10B ċ => 43 C
+10D č => 43 C
+10F ď => 44 D
+110 Đ => 44 D
+111 đ => 44 D
+113 ē => 45 E
+115 ĕ => 45 E
+117 ė => 45 E
+119 ę => 45 E
+11B ě => 45 E
+11D ĝ => 47 G
+11F ğ => 47 G
+121 ġ => 47 G
+123 ģ => 47 G
+125 ĥ => 48 H
+126 Ħ => 48 H
+127 ħ => 48 H
+129 ĩ => 49 I
+12B ī => 49 I
+12D ĭ => 49 I
+12F į => 49 I
+131 ı => 31 1
+133 ij => 132 IJ
+137 ķ => 4B K
+138 ĸ => 4B K
+139 Ĺ => 4C L
+13A ĺ => 4C L
+13B Ļ => 4C L
+13C ļ => 4C L
+13D Ľ => 4C L
+13E ľ => 4C L
+13F Ŀ => 4C L
+140 ŀ => 4C L
+141 Ł => 4C L
+142 ł => 4C L
+144 ń => 4E N
+145 Ņ => 4E N
+146 ņ => 4E N
+148 ň => 4E N
+14D ō => 4F O
+14F ŏ => 4F O
+151 ő => 4F O
+153 œ => 152 Œ
+154 Ŕ => 52 R
+155 ŕ => 52 R
+156 Ŗ => 52 R
+157 ŗ => 52 R
+158 Ř => 52 R
+159 ř => 52 R
+15A Ś => 53 S
+15B ś => 53 S
+15C Ŝ => 53 S
+15D ŝ => 53 S
+15E Ş => 53 S
+15F ş => 53 S
+160 Š => 53 S
+161 š => 53 S
+162 Ţ => 54 T
+163 ţ => 54 T
+164 Ť => 54 T
+165 ť => 54 T
+166 Ŧ => 54 T
+167 ŧ => 54 T
+169 ũ => 55 U
+16B ū => 55 U
+16D ŭ => 55 U
+16F ů => 55 U
+171 ű => 55 U
+173 ų => 55 U
+175 ŵ => 57 W
+177 ŷ => 59 Y
+17A ź => 5A Z
+17C ż => 5A Z
+17E ž => 5A Z
+180 ƀ => 62 b
+181 Ɓ => 42 B
+182 Ƃ => 62 b
+183 ƃ => 62 b
+184 Ƅ => 62 b
+185 ƅ => 62 b
+187 Ƈ => 43 C
+188 ƈ => 43 C
+189 Ɖ => 44 D
+18A Ɗ => 44 D
+18B Ƌ => 64 d
+18C ƌ => 64 d
+18F Ə => 1DD ǝ
+190 Ɛ => 45 E
+191 Ƒ => 46 F
+192 ƒ => 66 f
+193 Ɠ => 47 G
+196 Ɩ => 6C l
+197 Ɨ => 6C l
+198 Ƙ => 4B K
+199 ƙ => 4B K
+19A ƚ => 6C l
+19D Ɲ => 4E N
+1A1 ơ => 1A0 Ơ
+1A4 Ƥ => 50 P
+1A5 ƥ => 70 p
+1A6 Ʀ => 52 R
+1A7 Ƨ => 32 2
+1A8 ƨ => 32 2
+1AB ƫ => 54 T
+1AC Ƭ => 54 T
+1AD ƭ => 54 T
+1AE Ʈ => 54 T
+1B1 Ʊ => 55 U
+1B2 Ʋ => 55 U
+1B3 Ƴ => 59 Y
+1B4 ƴ => 79 y
+1B5 Ƶ => 5A Z
+1B6 ƶ => 5A Z
+1B7 Ʒ => 33 3
+1BC Ƽ => 35 5
+1BD ƽ => 35 5
+1BF ƿ => 50 P
+1C0 ǀ => 7C |
+1C3 ǃ => 49 I
+1C4 DŽ => 1F1 DZ
+1C6 dž => 1F3 dz
+1C9 lj => 1C7 LJ
+1CC nj => 1CA NJ
+1CD Ǎ => 41 A
+1D0 ǐ => 49 I
+1D2 ǒ => 4F O
+1D4 ǔ => 55 U
+1D6 ǖ => 55 U
+1D8 ǘ => 55 U
+1DA ǚ => 55 U
+1DC ǜ => 55 U
+1DE Ǟ => 41 A
+1DF ǟ => 41 A
+1E1 ǡ => 41 A
+1E4 Ǥ => 47 G
+1E0 Ǡ => 41 A
+1E5 ǥ => 47 G
+1E7 ǧ => 47 G
+1EB ǫ => 4F O
+1F3 dz => 1F1 DZ
+1F5 ǵ => 47 G
+1F7 Ƿ => 50 P
+1FA Ǻ => 41 A
+1FB ǻ => 41 A
+1FE Ǿ => 4F O
+1FF ǿ => 4F O
+200 Ȁ => 41 A
+201 ȁ => 41 A
+202 Ȃ => 41 A
+205 ȅ => 45 E
+207 ȇ => 45 E
+210 Ȑ => 52 R
+211 ȑ => 52 R
+212 Ȓ => 52 R
+213 ȓ => 52 R
+21A Ț => 54 T
+21B ț => 54 T
+21C Ȝ => 33 3
+21D ȝ => 33 3
+21E Ȟ => 48 H
+220 Ƞ => 6E n
+222 Ȣ => 38 8
+223 ȣ => 38 8
+224 Ȥ => 5A Z
+225 ȥ => 5A Z
+226 Ȧ => 41 A
+228 Ȩ => 45 E
+229 ȩ => 45 E
+232 Ȳ => 59 Y
+233 ȳ => 79 y
+24A Ɋ => 51 Q
+251 ɑ => 41 A
+253 ɓ => 42 B
+256 ɖ => 44 D
+257 ɗ => 44 D
+258 ɘ => 1DD ǝ
+259 ə => 1DD ǝ
+259 ə => 45 E
+25A ɚ => 1DD ǝ
+25B ɛ => 45 E
+25C ɜ => 33 3
+260 ɠ => 47 G
+261 ɡ => 47 G
+262 ɢ => 47 G
+266 ɦ => 48 H
+268 ɨ => 49 I
+269 ɩ => 49 I
+26B ɫ => 49 I
+26D ɭ => 49 I
+26F ɯ => 57 W
+26F ɯ => 4D M
+271 ɱ => 4D M
+272 ɲ => 4E N
+273 ɳ => 4E N
+275 ɵ => 4F O
+27C ɼ => 52 R
+27D ɽ => 52 R
+280 ʀ => 52 R
+282 ʂ => 35 5
+283 ʃ => 43 C
+288 ʈ => 54 T
+28A ʊ => 1B1 Ʊ
+28A ʊ => 59 Y
+28B ʋ => 55 U
+28F ʏ => 59 Y
+290 ʐ => 5A Z
+292 ʒ => 33 3
+294 ʔ => 3F ?
+298 ʘ => 4F O
+299 ʙ => 42 B
+29C ʜ => 48 H
+2A0 ʠ => 51 Q
+2B0 ʰ => 48 H
+2B1 ʱ => 48 H
+2B3 ʳ => 52 R
+2B4 ʴ => 52 R
+2B5 ʵ => 52 R
+2B6 ʶ => 52 R
+2B8 ʸ => 59 Y
+38E Ύ => 59 Y
+391 Α => 41 A
+392 Β => 42 B
+393 Γ => 52 R
+395 Ε => 45 E
+396 Ζ => 5A Z
+397 Η => 48 H
+398 Θ => 30 0
+399 Ι => 31 1
+39A Κ => 4B K
+39C Μ => 4D M
+39D Ν => 4E N
+39F Ο => 30 0
+3A1 Ρ => 50 P
+3A4 Τ => 54 T
+3A5 Υ => 59 Y
+3A6 Φ => 278 ɸ
+3A7 Χ => 58 X
+3AC ά => 41 A
+3AE ή => 48 H
+3B1 α => 61 a
+3B2 β => 42 B
+3B3 γ => 59 Y
+3B4 δ => 394 Δ
+3B5 ε => 45 E
+3B7 η => 4E N
+3B8 θ => 4F O
+3B9 ι => 49 I
+3BA κ => 4B K
+3BB λ => 39B Λ
+3BC μ => 4D M
+3BD ν => 4E N
+3BE ξ => 39E Ξ
+3BF ο => 4F O
+3C0 π => 3A0 Π
+3C1 ρ => 50 P
+3C2 ς => 43 C
+3C3 σ => 4F O
+3C4 τ => 54 T
+3C5 υ => 55 U
+3C5 υ => 59 Y
+3C6 φ => 278 ɸ
+3C7 χ => 58 X
+3C8 ψ => 3A8 Ψ
+3C9 ω => 77 w
+3CB ϋ => 59 Y
+3CC ό => 4F O
+3CD ύ => 59 Y
+3D2 ϒ => 59 Y
+3D3 ϓ => 59 Y
+3D5 ϕ => 278 ɸ
+3DC Ϝ => 46 F
+3DD ϝ => 46 F
+3E8 Ϩ => 32 2
+3E9 ϩ => 32 2
+3F2 ϲ => 43 C
+3F3 ϳ => 6A j
+3F4 ϴ => 4F O
+3F9 Ϲ => 43 C
+404 Є => 45 E
+405 Ѕ => 35 5
+406 І => 31 1
+408 Ј => 4A J
+40B Ћ => 48 H
+410 А => 41 A
+411 Б => 36 6
+412 В => 42 B
+413 Г => 52 R
+415 Е => 45 E
+417 З => 33 3
+41A К => 4B K
+41C М => 4D M
+41D Н => 48 H
+41E О => 30 0
+41F П => 3A0 Π
+420 Р => 50 P
+421 С => 43 C
+422 Т => 54 T
+423 У => 79 y
+424 Ф => 278 ɸ
+425 Х => 58 X
+427 Ч => 34 4
+42A Ъ => 42 B
+42C Ь => 42 B
+430 а => 41 A
+431 б => 36 6
+431 б => 42 B
+432 в => 42 B
+433 г => 52 R
+435 е => 45 E
+436 ж => 416 Ж
+437 з => 33 3
+438 и => 418 И
+43A к => 4B K
+43B л => 41B Л
+43C м => 4D M
+43D н => 48 H
+43E о => 4F O
+43F п => 3A0 Π
+440 р => 50 P
+441 с => 43 C
+442 т => 54 T
+443 у => 59 Y
+444 ф => 278 ɸ
+445 х => 58 X
+446 ц => 55 U
+447 ч => 34 4
+44A ъ => 42 B
+44B ы => 42B Ы
+44C ь => 42 B
+44F я => 42F Я
+44F я => 52 R
+454 є => 45 E
+455 ѕ => 53 S
+456 і => 49 I
+457 ї => 49 I
+458 ј => 4A J
+45A њ => 48 H
+45B ћ => 48 H
+45C ќ => 4B K
+45E ў => 79 y
+462 Ѣ => 42 B
+463 ѣ => 42 B
+472 Ѳ => 4F O
+473 ѳ => 4F O
+474 Ѵ => 56 V
+475 ѵ => 76 v
+47D ѽ => 47C Ѽ
+48A Ҋ => 418 И
+48B ҋ => 418 И
+48C Ҍ => 62 b
+48D ҍ => 62 b
+491 ґ => 490 Ґ
+492 Ғ => 46 F
+493 ғ => 46 F
+496 Җ => 416 Ж
+497 җ => 416 Ж
+498 Ҙ => 33 3
+499 ҙ => 33 3
+49A Қ => 4B K
+49B қ => 4B K
+49D ҝ => 4B K
+49E Ҟ => 4B K
+49F ҟ => 4B K
+4A1 ҡ => 4B K
+4A2 Ң => 48 H
+4A3 ң => 48 H
+4AA Ҫ => 43 C
+4AB ҫ => 43 C
+4AC Ҭ => 54 T
+4AD ҭ => 54 T
+4AE Ү => 59 Y
+4AF ү => 59 Y
+4B0 Ұ => 59 Y
+4B1 ұ => 59 Y
+4B2 Ҳ => 58 X
+4B3 ҳ => 58 X
+4B6 Ҷ => 79 y
+4B7 ҷ => 79 y
+4BA Һ => 68 h
+4BB һ => 68 h
+4BD ҽ => 4BC Ҽ
+4BE Ҿ => 4BC Ҽ
+4BF ҿ => 4BC Ҽ
+4C0 Ӏ => 31 1
+4C4 ӄ => 4B K
+4C5 Ӆ => 41B Л
+4C6 ӆ => 41B Л
+4C7 Ӈ => 48 H
+4C8 ӈ => 48 H
+4C9 Ӊ => 48 H
+4CA ӊ => 48 H
+4CB Ӌ => 79 y
+4CC ӌ => 79 y
+4CD Ӎ => 4D M
+4CE ӎ => 4D M
+4D4 Ӕ => C6 Æ
+4D5 ӕ => C6 Æ
+4D8 Ә => 1DD ǝ
+4D9 ә => 1DD ǝ
+4E0 Ӡ => 33 3
+4E1 ӡ => 33 3
+4E7 ӧ => 4F O
+4E8 Ө => 4F O
+4E9 ө => 4F O
+4EB ӫ => 4F O
+4EF ӯ => 79 y
+4F1 ӱ => 79 y
+4F3 ӳ => 79 y
+500 Ԁ => 64 d
+501 ԁ => 64 d
+50B ԋ => 48 H
+50C Ԍ => 47 G
+50D ԍ => 47 G
+531 Ա => 561 ա
+531 Ա => 55 U
+532 Բ => 562 բ
+533 Գ => 563 գ
+533 Գ => 71 q
+534 Դ => 564 դ
+535 Ե => 565 ե
+536 Զ => 566 զ
+537 Է => 567 է
+538 Ը => 568 ը
+539 Թ => 569 թ
+53A Ժ => 56A ժ
+53B Ի => 56B ի
+53C Լ => 56C լ
+53D Խ => 56D խ
+53E Ծ => 56E ծ
+53F Կ => 56F կ
+540 Հ => 570 հ
+541 Ձ => 571 ձ
+542 Ղ => 572 ղ
+543 Ճ => 573 ճ
+544 Մ => 574 մ
+544 Մ => 55 U
+545 Յ => 575 յ
+545 Յ => 33 3
+546 Ն => 576 ն
+547 Շ => 577 շ
+548 Ո => 578 ո
+549 Չ => 579 չ
+54A Պ => 57A պ
+54B Ջ => 57B ջ
+54C Ռ => 57C ռ
+54D Ս => 57D ս
+54D Ս => 55 U
+54E Վ => 57E վ
+54F Տ => 57F տ
+550 Ր => 580 ր
+551 Ց => 581 ց
+552 Ւ => 582 ւ
+553 Փ => 583 փ
+554 Ք => 584 ք
+555 Օ => 585 օ
+555 Օ => 30 0
+556 Ֆ => 586 ֆ
+563 գ => 71 q
+566 զ => 71 q
+570 հ => 68 h
+575 յ => 6A j
+578 ո => 6E n
+57C ռ => 6E n
+57D ս => 75 u
+581 ց => 67 g
+584 ք => 70 p
+585 օ => 6F o
+589 ։ => 3A :
+59C ֜ => 301 ́
+5AF ֯ => 30A ̊
+5B9 ֹ => 307 ̇
+5C1 ׁ => 307 ̇
+5C2 ׂ => 307 ̇
+5C3 ׃ => 3A :
+5C4 ׄ => 307 ̇
+5F3 ׳ => 27 '
+5F4 ״ => 22 "
+639 ع => 45 E
+64A ي => 649 ى
+64F ُ => 313 ̓
+669 ٩ => 41 A
+66C ٬ => 60C ،
+674 ٴ => 654 ٔ
+6A0 ڠ => 45 E
+6A9 ک => 643 ك
+6BB ڻ => 679 ٹ
+6BE ھ => 647 ه
+6C1 ہ => 647 ه
+6CC ی => 649 ى
+6D0 ې => 67B ٻ
+6D5 ە => 647 ه
+6E7 ۧ => 6E6 ۦ
+6EC ۬ => 6DF ۟
+6F0 ۰ => 660 ٠
+6F1 ۱ => 661 ١
+6F2 ۲ => 662 ٢
+6F3 ۳ => 663 ٣
+6F7 ۷ => 667 ٧
+6F8 ۸ => 668 ٨
+6F9 ۹ => 669 ٩
+702 ܂ => 2E .
+741 ݁ => 307 ̇
+742 ݂ => 73C ܼ
+747 ݇ => 301 ́
+902 ं => 307 ̇
+93C ़ => 323 ̣
+952 ॒ => 320 ̠
+953 ॓ => 300 ̀
+954 ॔ => 301 ́
+966 ० => 30 0
+9BC ় => 323 ̣
+9E6 ০ => 30 0
+9EA ৪ => 38 8
+9ED ৭ => 39 9
+A02 ਂ => 307 ̇
+A03 ਃ => 983 ঃ
+A3C ਼ => 323 ̣
+A4B ੋ => 946 ॆ
+A4D ੍ => 94D ्
+A66 ੦ => 30 0
+A67 ੧ => 39 9
+A6A ੪ => 38 8
+A82 ં => 307 ̇
+ABC ઼ => 323 ̣
+ABD ઽ => 93D ऽ
+AC1 ુ => 941 ु
+AC2 ૂ => 942 ू
+ACD ્ => 94D ्
+AE6 ૦ => 30 0
+AE8 ૨ => 968 २
+AE9 ૩ => 969 ३
+AEA ૪ => 96A ४
+AEE ૮ => 96E ८
+B03 ଃ => 38 8
+B3C ଼ => 323 ̣
+B66 ୦ => 30 0
+B68 ୨ => 39 9
+B82 ஂ => 30A ̊
+B9C ஜ => B90 ஐ
+BB0 ர => B88 ஈ
+BBE ா => B88 ஈ
+BC8 ை => BA9 ன
+BCD ் => 307 ̇
+BD7 ௗ => BB3 ள
+BE6 ௦ => 30 0
+BE7 ௧ => B95 க
+BE8 ௨ => B89 உ
+BEA ௪ => B9A ச
+BED ௭ => B8E எ
+BEE ௮ => B85 அ
+BF0 ௰ => BAF ய
+BF5 ௵ => BF3 ௳
+BF8 ௸ => BB7 ஷ
+C02 ం => 30 0
+C03 ః => 983 ঃ
+C22 ఢ => C21 డ
+C2D భ => C2C బ
+C37 ష => C35 వ
+C66 ౦ => 30 0
+C82 ಂ => 30 0
+C83 ಃ => 983 ঃ
+C85 ಅ => C05 అ
+C86 ಆ => C06 ఆ
+C87 ಇ => C07 ఇ
+C92 ಒ => C12 ఒ
+C93 ಓ => C13 ఓ
+C94 ಔ => C14 ఔ
+C9C ಜ => C1C జ
+C9E ಞ => C1E ఞ
+CA3 ಣ => C23 ణ
+CAF ಯ => C2F య
+CB1 ಱ => C31 ఱ
+CB2 ಲ => C32 ల
+CE6 ೦ => 30 0
+CE7 ೧ => C67 ౧
+CE8 ೨ => C68 ౨
+CEF ೯ => C6F ౯
+D02 ം => 30 0
+D09 ഉ => B89 உ
+D1C ജ => B90 ஐ
+D20 ഠ => 30 0
+D23 ണ => BA3 ண
+D31 റ => D30 ര
+D34 ഴ => BB4 ழ
+D36 ശ => BB6 ஶ
+D3F ി => BBF ி
+D40 ീ => BBF ி
+D41 ു => BC2 ூ
+D42 ൂ => BC2 ூ
+D43 ൃ => BC2 ூ
+D61 ൡ => D1E ഞ
+E03 ฃ => E02 ข
+E0B ซ => E0A ช
+E0F ฏ => E0E ฎ
+E14 ด => E04 ค
+E15 ต => E04 ค
+E17 ท => E11 ฑ
+E21 ม => E06 ฆ
+E3F ฿ => 42 B
+E45 ๅ => E32 า
+E4D ํ => 30A ̊
+E50 ๐ => 30 0
+E88 ຈ => E08 จ
+E8D ຍ => E22 ย
+E9A ບ => E1A บ
+E9B ປ => E1B ป
+E9D ຝ => E1D ฝ
+E9E ພ => E1E พ
+E9F ຟ => E1F ฟ
+EB8 ຸ => E38 ุ
+EB9 ູ => E39 ู
+EC8 ່ => E48 ่
+EC9 ້ => E49 ้
+ECA ໊ => E4A ๊
+ECB ໋ => E4B ๋
+ECD ໍ => 30A ̊
+ED0 ໐ => 30 0
+F0C ༌ => F0B ་
+101D ဝ => 30 0
+1036 ံ => 30A ̊
+1040 ၀ => 30 0
+10E7 ყ => 79 y
+10F3 ჳ => 33 3
+13A1 Ꭱ => 52 R
+13A5 Ꭵ => 31 1
+13A9 Ꭹ => 59 Y
+13AA Ꭺ => 41 A
+13AB Ꭻ => 4A J
+13AC Ꭼ => 45 E
+13B1 Ꮁ => 52 R
+13B3 Ꮃ => 57 W
+13B7 Ꮇ => 4D M
+13BB Ꮋ => 48 H
+13BD Ꮍ => 79 y
+13BE Ꮎ => 4F O
+13C0 Ꮐ => 47 G
+13C2 Ꮒ => 68 h
+13C3 Ꮓ => 5A Z
+13CE Ꮞ => 34 4
+13CF Ꮟ => 62 b
+13D2 Ꮢ => 52 R
+13D4 Ꮤ => 57 W
+13D5 Ꮥ => 35 5
+13D9 Ꮩ => 56 V
+13DA Ꮪ => 35 5
+13DE Ꮮ => 4C L
+13DF Ꮯ => 43 C
+13E2 Ꮲ => 50 P
+13E6 Ꮶ => 4B K
+13E7 Ꮷ => 4A J
+13F2 Ᏺ => 68 h
+13F3 Ᏻ => 47 G
+13F4 Ᏼ => 42 B
+1403 ᐃ => 394 Δ
+1427 ᐧ => B7 ·
+142F ᐯ => 56 V
+146D ᑭ => 50 P
+146F ᑯ => 64 d
+148D ᒍ => 4A J
+14BF ᒿ => 32 2
+14D1 ᓑ => 1421 ᐡ
+1541 ᕁ => 58 X
+1577 ᕷ => 394 Δ
+157C ᕼ => 48 H
+157D ᕽ => 58 X
+1587 ᖇ => 52 R
+15AF ᖯ => 62 b
+15B4 ᖴ => 46 F
+15C5 ᗅ => 41 A
+15DE ᗞ => 44 D
+15EA ᗪ => 44 D
+15EF ᗯ => 57 W
+15F0 ᗰ => 4D M
+15F7 ᗷ => 42 B
+1602 ᘂ => 1490 ᒐ
+1603 ᘃ => 1489 ᒉ
+1604 ᘄ => 14D3 ᓓ
+1607 ᘇ => 14DA ᓚ
+1622 ᘢ => 1543 ᕃ
+1623 ᘣ => 1546 ᕆ
+1624 ᘤ => 154A ᕊ
+162F ᘯ => 3A9 Ω
+1634 ᘴ => 162E ᘮ
+1634 ᘴ => 1B1 Ʊ
+1635 ᘵ => 3A9 Ω
+166D ᙭ => 58 X
+166E ᙮ => 58 X
+16D7 ᛗ => 4D M
+17A3 ឣ => 17A2 អ
+17B7 ិ => E34 ิ
+17B8 ី => E35 ี
+17B9 ឹ => E36 ึ
+17BA ឺ => E37 ื
+17C6 ំ => 30A ̊
+17CB ់ => E48 ่
+17D3 ៓ => 30A ̊
+17D4 ។ => E2F ฯ
+17D5 ៕ => E5A ๚
+17D9 ៙ => E4F ๏
+17DA ៚ => E5B ๛
+1810 ᠐ => 30 0
+1896 ᢖ => 185C ᡜ
+1959 ᥙ => 55 U
+1D04 ᴄ => 43 C
+1D05 ᴅ => 44 D
+1D06 ᴆ => 44 D
+1D07 ᴇ => 45 E
+1D0A ᴊ => 4A J
+1D0B ᴋ => 4B K
+1D0C ᴌ => 4C L
+1D0D ᴍ => 4D M
+1D0E ᴎ => 4E N
+1D0F ᴏ => 4F O
+1D18 ᴘ => 50 P
+1D1B ᴛ => 54 T
+1D20 ᴠ => 56 V
+1D21 ᴡ => 57 W
+1D22 ᴢ => 5A Z
+1E00 Ḁ => 41 A
+1E01 ḁ => 41 A
+1E0D ḍ => 44 D
+1E17 ḗ => 45 E
+1E19 ḙ => 45 E
+1E1B ḛ => 45 E
+1E1D ḝ => 45 E
+1E21 ḡ => 47 G
+1E23 ḣ => 48 H
+1E25 ḥ => 48 H
+1E27 ḧ => 48 H
+1E29 ḩ => 48 H
+1E2B ḫ => 48 H
+1E37 ḷ => 4C L
+1E3F ḿ => 4D M
+1E41 ṁ => 4D M
+1E43 ṃ => 4D M
+1E47 ṇ => 4E N
+1E54 Ṕ => 50 P
+1E55 ṕ => 50 P
+1E56 Ṗ => 50 P
+1E57 ṗ => 50 P
+1E58 Ṙ => 52 R
+1E59 ṙ => 52 R
+1E5A Ṛ => 52 R
+1E5B ṛ => 52 R
+1E5C Ṝ => 52 R
+1E5D ṝ => 52 R
+1E5E Ṟ => 52 R
+1E5F ṟ => 52 R
+1E63 ṣ => 53 S
+1E6D ṭ => 54 T
+1E81 ẁ => 57 W
+1E83 ẃ => 57 W
+1E85 ẅ => 57 W
+1E87 ẇ => 57 W
+1E89 ẉ => 57 W
+1E8F ẏ => 59 Y
+1E99 ẙ => 79 y
+1EA0 Ạ => 41 A
+1EA1 ạ => 41 A
+1EA2 Ả => 41 A
+1EA3 ả => 41 A
+1EA4 Ấ => 41 A
+1EA5 ấ => 41 A
+1EA6 Ầ => 41 A
+1EA7 ầ => 41 A
+1EA8 Ẩ => 41 A
+1EA9 ẩ => 41 A
+1EAA Ẫ => 41 A
+1EAB ẫ => 41 A
+1EAC Ậ => 41 A
+1EAD ậ => 41 A
+1EAE Ắ => 41 A
+1EAF ắ => 41 A
+1EB0 Ằ => 41 A
+1EB1 ằ => 41 A
+1EB2 Ẳ => 41 A
+1EB3 ẳ => 41 A
+1EB4 Ẵ => 41 A
+1EB5 ẵ => 41 A
+1EB6 Ặ => 41 A
+1EB7 ặ => 41 A
+1EB9 ẹ => 45 E
+1EBB ẻ => 45 E
+1EBD ẽ => 45 E
+1EBF ế => 45 E
+1EC1 ề => 45 E
+1EC3 ể => 45 E
+1EC5 ễ => 45 E
+1EC7 ệ => 45 E
+1ECD ọ => 4F O
+1EF3 ỳ => 59 Y
+1EF5 ỵ => 59 Y
+1EF7 ỷ => 59 Y
+1EF9 ỹ => 59 Y
+1F01 ἁ => 41 A
+1F02 ἂ => 41 A
+1F03 ἃ => 41 A
+1F04 ἄ => 41 A
+1F05 ἅ => 41 A
+1F06 ἆ => 41 A
+1F07 ἇ => 41 A
+1F20 ἠ => 48 H
+1F21 ἡ => 48 H
+1F22 ἢ => 48 H
+1F23 ἣ => 48 H
+1F24 ἤ => 48 H
+1F25 ἥ => 48 H
+1F26 ἦ => 48 H
+1F27 ἧ => 48 H
+1F40 ὀ => 4F O
+1F41 ὁ => 4F O
+1F42 ὂ => 4F O
+1F43 ὃ => 4F O
+1F44 ὄ => 4F O
+1F45 ὅ => 4F O
+1F51 ὑ => 59 Y
+1F53 ὓ => 59 Y
+1F55 ὕ => 59 Y
+1F57 ὗ => 59 Y
+1F70 ὰ => 41 A
+1F74 ὴ => 48 H
+1F78 ὸ => 4F O
+1F7A ὺ => 59 Y
+1F80 ᾀ => 41 A
+1F81 ᾁ => 41 A
+1F82 ᾂ => 41 A
+1F83 ᾃ => 41 A
+1F84 ᾄ => 41 A
+1F85 ᾅ => 41 A
+1F86 ᾆ => 41 A
+1F87 ᾇ => 41 A
+1F90 ᾐ => 48 H
+1FB3 ᾳ => 41 A
+1FE0 ῠ => 59 Y
+1FE1 ῡ => 59 Y
+1FE8 Ῠ => 59 Y
+1FEA Ὺ => 59 Y
+20A3 ₣ => 46 F
+20A4 ₤ => 4C L
+20A5 ₥ => 4D M
+20A6 ₦ => 4E N
+20A7 ₧ => 50 P
+20A9 ₩ => 57 W
+200B ​ => 0 NUL
+20B7 ₷ => 53 S
+20B8 ₸ => 54 T
+2113 ℓ => 6C l
+2127 ℧ => 1B1 Ʊ
+2146 ⅆ => 44 D
+217C ⅼ => 4C L
+217D ⅽ => 43 C
+217E ⅾ => 44 D
+217F ⅿ => 4D M
+24B6 Ⓐ => 41 A
+2C67 Ⱨ => 48 H
+2C98 Ⲙ => 4D M
+2D31 ⴱ => 3B8 θ
+2D39 ⴹ => 45 E
+2D54 ⵔ => 30 0
+AB46 ꭆ => 52 R
+1033C 𐌼 => 4D M
+3007 〇 => 0030 0
+30D8 ヘ => 3078 へ
+3473 㑳 => 3447 㑇
+361A 㘚 => 360E 㘎
+396E 㥮 => 3918 㤘
+3A73 㩳 => 39D0 㧐
+439B 䎛 => 3588 㖈
+43B1 䎱 => 43AC 䎬
+4420 䐠 => 3B3B 㬻
+4661 䙡 => 464C 䙌
+478D 䞍 => 477C 䝼
+4982 䦂 => 4947 䥇
+49B6 䦶 => 499B 䦛
+49B7 䦷 => 499F 䦟
+4CA3 䲣 => 4C77 䱷
+4E0A 上 => 4E04 丄
+4E0B 下 => 4E05 丅
+4E10 丐 => 4E0F 丏
+4E17 丗 => 4E16 世
+4E20 丠 => 4E18 丘
+4E22 丢 => 4E1F 丟
+4E24 两 => 4E21 両
+4E28 丨 => 31 1
+4E46 乆 => 4E45 久
+4E58 乘 => 4E57 乗
+4E7F 乿 => 4E71 乱
+4E81 亁 => 4E7E 乾
+4E82 亂 => 4E71 乱
+4E93 亓 => 4E0C 丌
+4E95 井 => 4E3C 丼
+4E99 亙 => 4E98 亘
+4E9C 亜 => 4E9A 亚
+4E9E 亞 => 4E9A 亚
+4EAF 亯 => 4EAB 享
+4EB0 亰 => 4EAC 京
+4EBE 亾 => 4EA1 亡
+4EDA 仚 => 4ED9 仙
+4EE9 仩 => 4E04 丄
+4F0D 伍 => 4E94 五
+4F47 佇 => 4F2B 伫
+4F52 佒 => 4EF0 仰
+4F5B 佛 => 4ECF 仏
+4F60 你 => 4F32 伲
+4F75 併 => 4E26 並
+4F96 侖 => 4ED1 仑
+4FA1 価 => 4EF7 价
+4FAB 侫 => 4F5E 佞
+4FB6 侶 => 4FA3 侣
+4FD4 俔 => 4F23 伣
+4FE0 俠 => 4FA0 侠
+4FE1 信 => 4F29 伩
+4FE3 俣 => 4FC1 俁
+4FE5 俥 => 4F21 伡
+4FEF 俯 => 4FDB 俛
+5000 倀 => 4F25 伥
+5002 倂 => 4E26 並
+5005 倅 => 4F1C 伜
+5006 倆 => 4FE9 俩
+5008 倈 => 4FEB 俫
+5009 倉 => 4ED3 仓
+500B 個 => 4E2A 个
+5011 們 => 4EEC 们
+5023 倣 => 4EFF 仿
+502B 倫 => 4F26 伦
+5036 倶 => 4FF1 俱
+5039 倹 => 4FED 俭
+503C 值 => 5024 値
+5049 偉 => 4F1F 伟
+5074 側 => 4FA7 侧
+5075 偵 => 4FA6 侦
+5078 偸 => 5077 偷
+5079 偹 => 4FFB 俻
+507D 偽 => 4F2A 伪
+5096 傖 => 4F27 伧
+5098 傘 => 4F1E 伞
+5099 備 => 4FFB 俻
+509A 傚 => 4FF2 俲
+50AD 傭 => 4F63 佣
+50AF 傯 => 506C 偬
+50B3 傳 => 4F20 传
+50B4 傴 => 4F1B 伛
+50B5 債 => 503A 债
+50B7 傷 => 4F24 伤
+50BE 傾 => 503E 倾
+50C2 僂 => 507B 偻
+50C5 僅 => 4EC5 仅
+50C9 僉 => 4F65 佥
+50CA 僊 => 4ED9 仙
+50D1 僑 => 4FA8 侨
+50D5 僕 => 4EC6 仆
+50DE 僞 => 4F2A 伪
+50E5 僥 => 4FA5 侥
+50E8 僨 => 507E 偾
+50ED 僭 => 50E3 僣
+50F9 價 => 4EF7 价
+5100 儀 => 4EEA 仪
+5101 儁 => 4FCA 俊
+5102 儂 => 4FAC 侬
+5104 億 => 4EBF 亿
+5108 儈 => 4FA9 侩
+5109 儉 => 4FED 俭
+510C 儌 => 4FA5 侥
+510D 儍 => 50BB 傻
+510E 儎 => 50A4 傤
+5110 儐 => 50A7 傧
+5114 儔 => 4FE6 俦
+5115 儕 => 4FAA 侪
+511E 儞 => 4F32 伲
+511F 償 => 507F 偿
+512A 優 => 4F18 优
+5132 儲 => 50A8 储
+5135 儵 => 500F 倏
+5137 儷 => 4FEA 俪
+513A 儺 => 50A9 傩
+513B 儻 => 50A5 傥
+513C 儼 => 4FE8 俨
+5150 児 => 513F 儿
+5151 兑 => 514C 兌
+5152 兒 => 513F 儿
+5154 兔 => 514E 兎
+5157 兗 => 5156 兖
+5166 兦 => 4EA1 亡
+5169 兩 => 4E21 両
+516A 兪 => 4FDE 俞
+5176 其 => 4E0C 丌
+5185 内 => 5167 內
+518C 册 => 518A 冊
+5192 冒 => 5190 冐
+51C8 凈 => 51C0 净
+51CD 凍 => 51BB 冻
+51D6 凖 => 51C6 准
+51DC 凜 => 51DB 凛
+51E2 凢 => 51E1 凡
+51E3 凣 => 51E1 凡
+51F1 凱 => 51EF 凯
+51F4 凴 => 51ED 凭
+51F6 凶 => 5147 兇
+51FE 凾 => 51FD 函
+5202 刂 => 5200 刀
+5204 刄 => 5203 刃
+520B 刋 => 520A 刊
+522A 刪 => 5220 删
+522B 别 => 5225 別
+5231 刱 => 521B 创
+5238 券 => 5026 倦
+523C 刼 => 5226 刦
+523E 刾 => 523A 刺
+5241 剁 => 5234 刴
+5244 剄 => 522D 刭
+5247 則 => 5219 则
+524B 剋 => 514B 克
+524E 剎 => 5239 刹
+5257 剗 => 522C 刬
+5259 剙 => 521B 创
+525A 剚 => 5033 倳
+525B 剛 => 521A 刚
+5263 剣 => 5251 剑
+5264 剤 => 5242 剂
+5265 剥 => 525D 剝
+526E 剮 => 5250 剐
+5270 剰 => 5269 剩
+5274 剴 => 5240 剀
+5275 創 => 521B 创
+5277 剷 => 522C 刬
+5280 劀 => 522E 刮
+5283 劃 => 5212 划
+5284 劄 => 5273 剳
+5287 劇 => 5267 剧
+5289 劉 => 5218 刘
+528A 劊 => 523D 刽
+528B 劋 => 527F 剿
+528C 劌 => 523F 刿
+528D 劍 => 5251 剑
+5291 劑 => 5242 剂
+5292 劒 => 5251 剑
+5294 劔 => 5251 剑
+52A8 动 => 50CD 働
+52AB 劫 => 5226 刦
+52B4 労 => 52B3 劳
+52B5 劵 => 5026 倦
+52B9 効 => 4FF2 俲
+52C1 勁 => 52B2 劲
+52D3 勓 => 52BE 劾
+52D5 動 => 50CD 働
+52D7 勗 => 52D6 勖
+52D9 務 => 52A1 务
+52DB 勛 => 52CB 勋
+52DE 勞 => 52B3 劳
+52E2 勢 => 52BF 势
+52E6 勦 => 527F 剿
+52E7 勧 => 529D 劝
+52E9 勩 => 52DA 勚
+52F1 勱 => 52A2 劢
+52F2 勲 => 52CB 勋
+52F3 勳 => 52CB 勋
+52F5 勵 => 52B1 励
+52F8 勸 => 529D 劝
+5300 匀 => 52FB 勻
+532B 匫 => 5322 匢
+532D 匭 => 5326 匦
+5331 匱 => 532E 匮
+5340 區 => 533A 区
+5343 千 => 4EDF 仟
+534B 卋 => 4E16 世
+534F 协 => 52A6 劦
+5350 卐 => 534D 卍
+5352 卒 => 5346 卆
+5354 協 => 52A6 劦
+5358 単 => 5355 单
+5360 占 => 4F54 佔
+537B 卻 => 5374 却
+537D 卽 => 5373 即
+5399 厙 => 538D 厍
+539B 厛 => 5385 厅
+53A0 厠 => 5395 厕
+53A4 厤 => 5386 历
+53AD 厭 => 538C 厌
+53B0 厰 => 5382 厂
+53B2 厲 => 5389 厉
+53B3 厳 => 4E25 严
+53B4 厴 => 53A3 厣
+53C2 参 => 53C1 叁
+53C3 參 => 53C1 叁
+53C4 叄 => 53C1 叁
+53DF 叟 => 53DC 叜
+53E2 叢 => 4E1B 丛
+53E5 句 => 52FE 勾
+540C 同 => 4EDD 仝
+5434 吴 => 5433 吳
+5442 呂 => 5415 吕
+5445 呅 => 543B 吻
+5449 呉 => 5433 吳
+544A 告 => 543F 吿
+5450 呐 => 5436 吶
+5451 呑 => 541E 吞
+5461 呡 => 543B 吻
+5492 咒 => 546A 呪
+54B1 咱 => 507A 偺
+54BC 咼 => 5459 呙
+54CC 哌 => 5471 呱
+54E1 員 => 5458 员
+5504 唄 => 5457 呗
+5516 唖 => 54D1 哑
+551A 唚 => 5423 吣
+5553 啓 => 542F 启
+5554 啔 => 542F 启
+5555 啕 => 54B7 咷
+5557 啗 => 5556 啖
+555E 啞 => 54D1 哑
+555F 啟 => 542F 启
+5562 啢 => 5521 唡
+5586 喆 => 54F2 哲
+558E 喎 => 359E 㖞
+5592 喒 => 507A 偺
+559A 喚 => 5524 唤
+559E 喞 => 5527 唧
+55A7 喧 => 5405 吅
+55AA 喪 => 4E27 丧
+55AB 喫 => 5403 吃
+55AC 喬 => 4E54 乔
+55AE 單 => 5355 单
+55B2 喲 => 54DF 哟
+55BB 喻 => 55A9 喩
+55C6 嗆 => 545B 呛
+55C7 嗇 => 556C 啬
+55CA 嗊 => 551D 唝
+55CE 嗎 => 5417 吗
+55DA 嗚 => 545C 呜
+55E9 嗩 => 5522 唢
+55EC 嗬 => 5475 呵
+55F6 嗶 => 54D4 哔
+5602 嘂 => 53EB 叫
+5606 嘆 => 53F9 叹
+5608 嘈 => 50AE 傮
+560D 嘍 => 55BD 喽
+5611 嘑 => 547C 呼
+5613 嘓 => 556F 啯
+5614 嘔 => 5455 呕
+5616 嘖 => 5567 啧
+561C 嘜 => 551B 唛
+5628 嘨 => 5578 啸
+5629 嘩 => 54D7 哗
+562E 嘮 => 5520 唠
+562F 嘯 => 5578 啸
+5630 嘰 => 53FD 叽
+5633 嘳 => 559F 喟
+5634 嘴 => 5480 咀
+5635 嘵 => 54D3 哓
+5638 嘸 => 5452 呒
+563D 嘽 => 5574 啴
+5649 噉 => 5556 啖
+5653 噓 => 5618 嘘
+5655 噕 => 5645 噅
+565D 噝 => 549D 咝
+5660 噠 => 54D2 哒
+5665 噥 => 54DD 哝
+5666 噦 => 54D5 哕
+5668 器 => 5650 噐
+566F 噯 => 55F3 嗳
+5672 噲 => 54D9 哙
+5674 噴 => 55B7 喷
+5678 噸 => 5428 吨
+567E 噾 => 5591 喑
+5680 嚀 => 549B 咛
+5687 嚇 => 5413 吓
+568C 嚌 => 54DC 哜
+5690 嚐 => 5617 嘗
+5694 嚔 => 568F 嚏
+5695 嚕 => 565C 噜
+5699 嚙 => 556E 啮
+56A5 嚥 => 54BD 咽
+56A6 嚦 => 5456 呖
+56A8 嚨 => 5499 咙
+56AA 嚪 => 5556 啖
+56AE 嚮 => 5411 向
+56B2 嚲 => 4EB8 亸
+56B3 嚳 => 55BE 喾
+56B4 嚴 => 4E25 严
+56B6 嚶 => 5624 嘤
+56BB 嚻 => 56A3 嚣
+56BD 嚽 => 555C 啜
+56C0 囀 => 556D 啭
+56C1 囁 => 55EB 嗫
+56C2 囂 => 56A3 嚣
+56C5 囅 => 5181 冁
+56C8 囈 => 5453 呓
+56C9 囉 => 5570 啰
+56D1 囑 => 5631 嘱
+56D3 囓 => 556E 啮
+56DE 回 => 56D8 囘
+56E3 団 => 56E2 团
+56E7 囧 => 518F 冏
+56EC 囬 => 56D8 囘
+56F1 囱 => 56EA 囪
+56F4 围 => 56F2 囲
+56FD 国 => 56EF 囯
+56FE 图 => 56F3 図
+5700 圀 => 56EF 囯
+5706 圆 => 5186 円
+5707 圇 => 56F5 囵
+570B 國 => 56EF 囯
+570D 圍 => 56F2 囲
+570E 圎 => 5186 円
+570F 圏 => 5708 圈
+5712 園 => 56ED 园
+5713 圓 => 5186 円
+5716 圖 => 56F3 図
+5718 團 => 56E2 团
+5727 圧 => 538B 压
+5757 块 => 51F7 凷
+576F 坯 => 574F 坏
+5775 坵 => 4E18 丘
+5785 垅 => 5784 垄
+579C 垜 => 579B 垛
+57A0 垠 => 573B 圻
+57A9 垩 => 5723 圣
+57BB 垻 => 575D 坝
+57C0 埀 => 5782 垂
+57D3 埓 => 57D2 埒
+57E1 埡 => 57AD 垭
+5803 堃 => 5764 坤
+5805 堅 => 575A 坚
+580A 堊 => 5723 圣
+5816 堖 => 57B4 垴
+581D 堝 => 57DA 埚
+582F 堯 => 579A 垚
+5834 場 => 573A 场
+584A 塊 => 51F7 凷
+584F 塏 => 57B2 垲
+5852 塒 => 57D8 埘
+5857 塗 => 51C3 凃
+585A 塚 => 51A2 冢
+5862 塢 => 575E 坞
+5864 塤 => 57D9 埙
+586B 填 => 5861 塡
+5872 塲 => 573A 场
+5873 塳 => 585C 塜
+5874 塴 => 580B 堋
+5879 塹 => 5811 堑
+588A 墊 => 57AB 垫
+588D 墍 => 5848 塈
+5896 墖 => 5854 塔
+589C 墜 => 5760 坠
+589E 增 => 5897 増
+58AC 墬 => 5730 地
+58AE 墮 => 5815 堕
+58AF 墯 => 5815 堕
+58B3 墳 => 575F 坟
+58BB 墻 => 5899 墙
+58BE 墾 => 57A6 垦
+58C7 壇 => 575B 坛
+58CA 壊 => 574F 坏
+58CB 壋 => 57B1 垱
+58CE 壎 => 57D9 埙
+58D3 壓 => 538B 压
+58D6 壖 => 5827 堧
+58D8 壘 => 5792 垒
+58D9 壙 => 5739 圹
+58DA 壚 => 5786 垆
+58DE 壞 => 574F 坏
+58DF 壟 => 5784 垄
+58E0 壠 => 5784 垄
+58E2 壢 => 575C 坜
+58E7 壧 => 55A6 喦
+58E8 壨 => 5792 垒
+58E9 壩 => 575D 坝
+58EA 壪 => 5846 塆
+58EF 壯 => 58EE 壮
+58F1 壱 => 4E00 一
+58F2 売 => 5356 卖
+58F7 壷 => 58F6 壶
+58F9 壹 => 4E00 一
+58FA 壺 => 58F6 壶
+58FC 壼 => 58F8 壸
+58FF 壿 => 58AB 墫
+5900 夀 => 58FD 壽
+5907 备 => 4FFB 俻
+5909 変 => 53D8 变
+5918 夘 => 536F 卯
+591B 夛 => 591A 多
+591C 夜 => 4EB1 亱
+5920 夠 => 591F 够
+5925 夥 => 4F19 伙
+592B 夫 => 4F15 伕
+5937 夷 => 4F87 侇
+593E 夾 => 5939 夹
+5941 奁 => 5333 匳
+5950 奐 => 5942 奂
+5967 奧 => 5965 奥
+5968 奨 => 5956 奖
+5969 奩 => 5333 匳
+596A 奪 => 593A 夺
+596C 奬 => 5956 奖
+596E 奮 => 594B 奋
+5976 奶 => 4F32 伲
+5996 妖 => 46B6 䚶
+599D 妝 => 5986 妆
+59AC 妬 => 5992 妒
+59B3 妳 => 4F32 伲
+59CA 姊 => 59C9 姉
+59D7 姗 => 59CD 姍
+59D9 姙 => 598A 妊
+59E6 姦 => 5978 奸
+59EA 姪 => 4F84 侄
+59EC 姬 => 59EB 姫
+59F8 姸 => 598D 妍
+59F9 姹 => 597C 奼
+5A1A 娚 => 5583 喃
+5A1F 娟 => 59E2 姢
+5A2F 娯 => 5A1B 娛
+5A31 娱 => 5A1B 娛
+5A40 婀 => 5A3F 娿
+5A41 婁 => 5A04 娄
+5A49 婉 => 5007 倇
+5A63 婣 => 59FB 姻
+5A66 婦 => 5987 妇
+5A6D 婭 => 5A05 娅
+5A7E 婾 => 5077 偷
+5A8E 媎 => 59D0 姐
+5AA7 媧 => 5A32 娲
+5AAC 媬 => 4FDD 保
+5AAE 媮 => 5077 偷
+5AAF 媯 => 59AB 妫
+5ABC 媼 => 5AAA 媪
+5ABD 媽 => 5988 妈
+5AD7 嫗 => 59AA 妪
+5AF5 嫵 => 59A9 妩
+5AF7 嫷 => 5AA0 媠
+5AF9 嫹 => 5A8C 媌
+5AFA 嫺 => 5A34 娴
+5AFB 嫻 => 5A34 娴
+5AFF 嫿 => 5A73 婳
+5B00 嬀 => 59AB 妫
+5B03 嬃 => 5AAD 媭
+5B08 嬈 => 5A06 娆
+5B0B 嬋 => 5A75 婵
+5B0C 嬌 => 5A07 娇
+5B19 嬙 => 5AF1 嫱
+5B1D 嬝 => 5ACB 嫋
+5B21 嬡 => 5AD2 嫒
+5B22 嬢 => 5A18 娘
+5B2A 嬪 => 5AD4 嫔
+5B2D 嬭 => 4F32 伲
+5B30 嬰 => 5A74 婴
+5B37 嬷 => 5B24 嬤
+5B38 嬸 => 5A76 婶
+5B43 孃 => 5A18 娘
+5B4C 孌 => 5A08 娈
+5B6B 孫 => 5B59 孙
+5B75 孵 => 5B5A 孚
+5B76 孶 => 5B73 孳
+5B78 學 => 5B66 学
+5B7D 孽 => 5B7C 孼
+5B7F 孿 => 5B6A 孪
+5B82 宂 => 5197 冗
+5B89 安 => 4F92 侒
+5B8F 宏 => 5430 吰
+5B9C 宜 => 519D 冝
+5B9F 実 => 5B9E 实
+5BAE 宮 => 5BAB 宫
+5BB6 家 => 50A2 傢
+5BC3 寃 => 51A4 冤
+5BC6 密 => 5BBB 宻
+5BC7 寇 => 51A6 冦
+5BCC 富 => 51A8 冨
+5BCD 寍 => 5B81 宁
+5BD5 寕 => 5B81 宁
+5BDB 寛 => 5BBD 宽
+5BDC 寜 => 5B81 宁
+5BDD 寝 => 5BD1 寑
+5BDE 寞 => 55FC 嗼
+5BE2 寢 => 5BD1 寑
+5BE6 實 => 5B9E 实
+5BE7 寧 => 5B81 宁
+5BE9 審 => 5BA1 审
+5BEB 寫 => 5199 写
+5BEC 寬 => 5BBD 宽
+5BF1 寱 => 5453 呓
+5BF3 寳 => 5B9D 宝
+5BF5 寵 => 5BA0 宠
+5BF6 寶 => 5B9D 宝
+5BFF 寿 => 58FD 壽
+5C05 尅 => 514B 克
+5C07 將 => 5C06 将
+5C08 專 => 4E13 专
+5C0B 尋 => 5BFB 寻
+5C0D 對 => 5BF9 对
+5C0E 導 => 5BFC 导
+5C13 尓 => 5C12 尒
+5C14 尔 => 5C12 尒
+5C18 尘 => 5875 塵
+5C1A 尚 => 5C19 尙
+5C1D 尝 => 5617 嘗
+5C20 尠 => 5C1F 尟
+5C27 尧 => 579A 垚
+5C2B 尫 => 5C2A 尪
+5C2D 尭 => 579A 垚
+5C37 尷 => 5C34 尴
+5C3D 尽 => 5118 儘
+5C40 局 => 4FB7 侷
+5C4A 届 => 5C46 屆
+5C4D 屍 => 5C38 尸
+5C53 屓 => 5C43 屃
+5C5B 屛 => 5C4F 屏
+5C62 屢 => 5C61 屡
+5C64 層 => 5C42 层
+5C68 屨 => 5C66 屦
+5C6C 屬 => 5C5E 属
+5C6D 屭 => 5C43 屃
+5C80 岀 => 51FA 出
+5C81 岁 => 4E97 亗
+5C97 岗 => 5188 冈
+5CA1 岡 => 5188 冈
+5CA5 岥 => 5761 坡
+5CA9 岩 => 55A6 喦
+5CBA 岺 => 5CAD 岭
+5CE9 峩 => 5CE8 峨
+5CF0 峰 => 5CEF 峯
+5CF4 峴 => 5C98 岘
+5CF6 島 => 5C9B 岛
+5CFD 峽 => 5CE1 峡
+5D08 崈 => 5D07 崇
+5D0B 崋 => 534E 华
+5D0D 崍 => 5D03 崃
+5D0E 崎 => 57FC 埼
+5D0F 崏 => 5CB7 岷
+5D11 崑 => 5D10 崐
+5D16 崖 => 5D15 崕
+5D17 崗 => 5188 冈
+5D18 崘 => 4ED1 仑
+5D19 崙 => 4ED1 仑
+5D22 崢 => 5CE5 峥
+5D2C 崬 => 5CBD 岽
+5D47 嵇 => 5D46 嵆
+5D50 嵐 => 5C9A 岚
+5D52 嵒 => 55A6 喦
+5D55 嵕 => 5D4F 嵏
+5D73 嵳 => 5D6F 嵯
+5D81 嶁 => 5D5D 嵝
+5D84 嶄 => 5D2D 崭
+5D87 嶇 => 5C96 岖
+5D8B 嶋 => 5C9B 岛
+5D8C 嶌 => 5C9B 岛
+5D94 嶔 => 5D5A 嵚
+5D97 嶗 => 5D02 崂
+5DA0 嶠 => 5CE4 峤
+5DA2 嶢 => 5CE3 峣
+5DA7 嶧 => 5CC4 峄
+5DA8 嶨 => 5CC3 峃
+5DA9 嶩 => 5CF1 峱
+5DAE 嶮 => 5D04 崄
+5DB8 嶸 => 5D58 嵘
+5DBA 嶺 => 5CAD 岭
+5DBC 嶼 => 5C7F 屿
+5DBD 嶽 => 5CB3 岳
+5DCB 巋 => 5CBF 岿
+5DCC 巌 => 55A6 喦
+5DD2 巒 => 5CE6 峦
+5DD3 巓 => 5DC5 巅
+5DD4 巔 => 5DC5 巅
+5DD6 巖 => 55A6 喦
+5DE3 巣 => 5DE2 巢
+5DF0 巰 => 5DEF 巯
+5DF5 巵 => 536E 卮
+5DFB 巻 => 5377 卷
+5DFD 巽 => 5DFA 巺
+5E03 布 => 4F48 佈
+5E25 帥 => 5E05 帅
+5E2B 師 => 5E08 师
+5E2F 帯 => 5E26 带
+5E32 帲 => 5E21 帡
+5E33 帳 => 5E10 帐
+5E36 帶 => 5E26 带
+5E40 幀 => 5E27 帧
+5E42 幂 => 51AA 冪
+5E43 幃 => 5E0F 帏
+5E47 幇 => 5E2E 帮
+5E57 幗 => 5E3C 帼
+5E58 幘 => 5E3B 帻
+5E59 幙 => 5E55 幕
+5E5A 幚 => 5E2E 帮
+5E5F 幟 => 5E1C 帜
+5E63 幣 => 5E01 币
+5E64 幤 => 5E01 币
+5E6B 幫 => 5E2E 帮
+5E6C 幬 => 5E31 帱
+5E72 干 => 4E7E 乾
+5E76 并 => 4E26 並
+5E77 幷 => 4E26 並
+5E78 幸 => 5016 倖
+5E79 幹 => 4E7E 乾
+5E7A 幺 => 4E48 么
+5E7E 幾 => 51E0 几
+5E81 庁 => 5385 厅
+5E82 庂 => 4EC4 仄
+5E83 広 => 5E7F 广
+5E85 庅 => 4E48 么
+5E95 底 => 538E 厎
+5E97 店 => 576B 坫
+5E9E 庞 => 5390 厐
+5EA7 座 => 5750 坐
+5EAB 庫 => 5E93 库
+5EB0 庰 => 5C4F 屏
+5EBB 庻 => 5EB6 庶
+5EBD 庽 => 5BD3 寓
+5EBF 庿 => 5E99 庙
+5EC1 廁 => 5395 厕
+5EC2 廂 => 53A2 厢
+5EC3 廃 => 5E9F 废
+5EC4 廄 => 53A9 厩
+5EC8 廈 => 53A6 厦
+5EC9 廉 => 4EB7 亷
+5ECE 廎 => 5EBC 庼
+5ECF 廏 => 53A9 厩
+5ED0 廐 => 53A9 厩
+5ED7 廗 => 5E2D 席
+5EDA 廚 => 53A8 厨
+5EDD 廝 => 53AE 厮
+5EDF 廟 => 5E99 庙
+5EE0 廠 => 5382 厂
+5EE1 廡 => 5E91 庑
+5EE2 廢 => 5E9F 废
+5EE3 廣 => 5E7F 广
+5EEA 廪 => 5EE9 廩
+5EEC 廬 => 5E90 庐
+5EF0 廰 => 5385 厅
+5EF3 廳 => 5385 厅
+5EF5 廵 => 5DE1 巡
+5EFB 廻 => 56D8 囘
+5EFC 廼 => 4E43 乃
+5EFD 廽 => 56D8 囘
+5EFF 廿 => 5344 卄
+5F0C 弌 => 4E00 一
+5F0D 弍 => 4E8C 二
+5F12 弒 => 5F11 弑
+5F14 弔 => 540A 吊
+5F25 弥 => 519E 冞
+5F33 弳 => 5F2A 弪
+5F35 張 => 5F20 张
+5F3A 强 => 5F37 強
+5F3E 弾 => 5F39 弹
+5F42 彂 => 53D1 发
+5F46 彆 => 5225 別
+5F48 彈 => 5F39 弹
+5F4A 彊 => 5F37 強
+5F4C 彌 => 519E 冞
+5F4D 彍 => 5F49 彉
+5F4E 彎 => 5F2F 弯
+5F51 彑 => 5F50 彐
+5F52 归 => 5E30 帰
+5F53 当 => 5679 噹
+5F55 录 => 5F54 彔
+5F59 彙 => 532F 匯
+5F5A 彚 => 532F 匯
+5F5C 彜 => 5F5B 彛
+5F5D 彝 => 5F5B 彛
+5F5E 彞 => 5F5B 彛
+5F60 彠 => 5F5F 彟
+5F66 彦 => 5F65 彥
+5F6C 彬 => 4EFD 份
+5F72 彲 => 5F68 彨
+5F77 彷 => 4EFF 仿
+5F7F 彿 => 4ECF 仏
+5F83 徃 => 5F80 往
+5F88 很 => 4F77 佷
+5F8A 徊 => 4F6A 佪
+5F8C 後 => 540E 后
+5F91 徑 => 5F84 径
+5F93 従 => 4ECE 从
+5F9E 從 => 4ECE 从
+5FA0 徠 => 5F95 徕
+5FA9 復 => 590D 复
+5FAC 徬 => 508D 傍
+5FAD 徭 => 509C 傜
+5FB4 徴 => 5F81 征
+5FB5 徵 => 5F81 征
+5FB7 德 => 5FB3 徳
+5FB9 徹 => 5F7B 彻
+5FBA 徺 => 4FA5 侥
+5FC8 忈 => 4EC1 仁
+5FD6 忖 => 520C 刌
+5FDC 応 => 5E94 应
+5FF5 念 => 5538 唸
+6010 怐 => 4F5D 佝
+6025 急 => 5FE3 忣
+6031 怱 => 5306 匆
+6039 怹 => 4ED6 他
+604A 恊 => 52A6 劦
+604D 恍 => 6033 怳
+6052 恒 => 6046 恆
+6064 恤 => 5379 卹
+6076 恶 => 5641 噁
+608B 悋 => 541D 吝
+609B 悛 => 6042 恂
+60A4 悤 => 5306 匆
+60A6 悦 => 6085 悅
+60AA 悪 => 5641 噁
+60AE 悮 => 609E 悞
+60B3 悳 => 5FB3 徳
+60B4 悴 => 5FF0 忰
+60B5 悵 => 6005 怅
+60BA 悺 => 60B9 悹
+60BD 悽 => 51C4 凄
+60D5 惕 => 6090 悐
+60E0 惠 => 6075 恵
+60E1 惡 => 5641 噁
+60EA 惪 => 5FB3 徳
+60F1 惱 => 607C 恼
+60F2 惲 => 607D 恽
+60FB 惻 => 607B 恻
+6118 愘 => 606A 恪
+611C 愜 => 60EC 惬
+6127 愧 => 5ABF 媿
+6128 愨 => 60AB 悫
+6134 愴 => 6006 怆
+6137 愷 => 607A 恺
+613D 愽 => 535A 博
+613E 愾 => 5FFE 忾
+6142 慂 => 607F 恿
+614B 態 => 6001 态
+614D 慍 => 6120 愠
+614E 慎 => 613C 愼
+6153 慓 => 527D 剽
+6158 慘 => 60E8 惨
+6159 慙 => 60ED 惭
+615A 慚 => 60ED 惭
+615F 慟 => 6078 恸
+6163 慣 => 60EF 惯
+6164 慤 => 60AB 悫
+616A 慪 => 6004 怄
+616B 慫 => 6002 怂
+6173 慳 => 60AD 悭
+6174 慴 => 6151 慑
+6175 慵 => 5ADE 嫞
+6176 慶 => 5E86 庆
+6182 憂 => 5FE7 忧
+6185 憅 => 6078 恸
+618A 憊 => 60EB 惫
+618B 憋 => 5225 別
+6190 憐 => 601C 怜
+6191 憑 => 51ED 凭
+6192 憒 => 6126 愦
+6193 憓 => 6075 恵
+6196 憖 => 616D 慭
+6199 憙 => 559C 喜
+619A 憚 => 60EE 惮
+61A4 憤 => 6124 愤
+61A9 憩 => 6187 憇
+61AB 憫 => 60AF 悯
+61AE 憮 => 6003 怃
+61B2 憲 => 5BAA 宪
+61B6 憶 => 5FC6 忆
+61BC 憼 => 5106 儆
+61C3 懃 => 52E4 勤
+61C7 懇 => 6073 恳
+61C9 應 => 5E94 应
+61CC 懌 => 603F 怿
+61D0 懐 => 6000 怀
+61D2 懒 => 5B3E 嬾
+61D4 懔 => 61CD 懍
+61DF 懟 => 603C 怼
+61E3 懣 => 61D1 懑
+61E7 懧 => 61E6 懦
+61E8 懨 => 6079 恹
+61F2 懲 => 60E9 惩
+61F6 懶 => 5B3E 嬾
+61F7 懷 => 6000 怀
+61F8 懸 => 60AC 悬
+61FA 懺 => 5FCF 忏
+61FC 懼 => 60E7 惧
+61FE 懾 => 6151 慑
+6200 戀 => 604B 恋
+6207 戇 => 6206 戆
+6214 戔 => 620B 戋
+621E 戞 => 621B 戛
+6226 戦 => 6218 战
+6227 戧 => 6217 戗
+622C 戬 => 6229 戩
+622F 戯 => 620F 戏
+6230 戰 => 6218 战
+6231 戱 => 620F 戏
+6232 戲 => 620F 戏
+6237 户 => 6236 戶
+6238 戸 => 6236 戶
+623C 戼 => 536F 卯
+623E 戾 => 623B 戻
+624E 扎 => 5273 剳
+6267 执 => 57F7 執
+6275 扵 => 4E8E 于
+6289 抉 => 5214 刔
+628C 抌 => 4F14 伔
+62A5 报 => 5831 報
+62B5 抵 => 627A 扺
+62BB 抻 => 4F38 伸
+62C2 拂 => 6255 払
+62CA 拊 => 629A 抚
+62CB 拋 => 629B 抛
+62D4 拔 => 629C 抜
+62D6 拖 => 62D5 拕
+62DA 拚 => 6283 抃
+62DD 拝 => 62DC 拜
+62DF 拟 => 5117 儗
+62E1 拡 => 6269 扩
+62E9 择 => 629E 択
+62FF 拿 => 62CF 拏
+6306 挆 => 6305 挅
+6319 挙 => 4E3E 举
+633E 挾 => 631F 挟
+634C 捌 => 516B 八
+634D 捍 => 625E 扞
+6359 捙 => 62FD 拽
+635D 捝 => 6329 挩
+636B 捫 => 626A 扪
+636E 据 => 62E0 拠
+6372 捲 => 5377 卷
+6374 捴 => 603B 总
+6383 掃 => 626B 扫
+6384 掄 => 62A1 抡
+6386 掆 => 39CF 㧏
+6397 掗 => 631C 挜
+6399 掙 => 6323 挣
+639B 掛 => 6302 挂
+63AC 掬 => 530A 匊
+63C0 揀 => 62E3 拣
+63DA 揚 => 626C 扬
+63DB 換 => 6362 换
+63EB 揫 => 63EA 揪
+63ED 揭 => 63B2 掲
+63EE 揮 => 6325 挥
+63F4 援 => 610B 愋
+63F7 揷 => 63D2 插
+63F9 揹 => 505D 偝
+6403 搃 => 603B 总
+6404 搄 => 63EF 揯
+6405 搅 => 6341 捁
+6406 搆 => 5193 冓
+6409 搉 => 3A41 㩁
+640B 搋 => 6260 扠
+640D 損 => 635F 损
+6416 搖 => 63FA 揺
+6417 搗 => 6363 捣
+641C 搜 => 635C 捜
+6424 搤 => 627C 扼
+6425 搥 => 6376 捶
+6427 搧 => 6247 扇
+642D 搭 => 6428 搨
+642F 搯 => 638F 掏
+6435 搵 => 63FE 揾
+6436 搶 => 62A2 抢
+6439 搹 => 627C 扼
+6440 摀 => 6342 捂
+6443 摃 => 625B 扛
+6444 摄 => 6315 挕
+6445 摅 => 6348 捈
+6447 摇 => 63FA 揺
+6451 摑 => 63B4 掴
+645C 摜 => 63BC 掼
+645F 摟 => 6402 搂
+6460 摠 => 603B 总
+646D 摭 => 62D3 拓
+646F 摯 => 631A 挚
+6473 摳 => 62A0 抠
+6476 摶 => 629F 抟
+647A 摺 => 6298 折
+647B 摻 => 63BA 掺
+647C 摼 => 6333 挳
+6483 撃 => 51FB 击
+6485 撅 => 6398 掘
+6488 撈 => 635E 捞
+648F 撏 => 6326 挦
+6491 撑 => 6490 撐
+6493 撓 => 6320 挠
+6498 撘 => 6428 搨
+649A 撚 => 637B 捻
+649F 撟 => 6322 挢
+64A3 撣 => 63B8 掸
+64A5 撥 => 62E8 拨
+64A6 撦 => 626F 扯
+64AB 撫 => 629A 抚
+64B2 撲 => 6251 扑
+64B3 撳 => 63FF 揿
+64B9 撹 => 6341 捁
+64BB 撻 => 631E 挞
+64BE 撾 => 631D 挝
+64BF 撿 => 6361 捡
+64C0 擀 => 625E 扞
+64C1 擁 => 62E5 拥
+64C4 擄 => 63B3 掳
+64C7 擇 => 629E 択
+64CA 擊 => 51FB 击
+64CB 擋 => 6321 挡
+64D3 擓 => 39DF 㧟
+64D4 擔 => 62C5 担
+64DA 據 => 62E0 拠
+64E0 擠 => 6324 挤
+64E3 擣 => 6363 捣
+64E7 擧 => 4E3E 举
+64EB 擫 => 64EA 擪
+64EC 擬 => 5117 儗
+64EF 擯 => 6448 摈
+64F0 擰 => 62E7 拧
+64F1 擱 => 6401 搁
+64F2 擲 => 63B7 掷
+64F4 擴 => 6269 扩
+64F7 擷 => 64B7 撷
+64FA 擺 => 6446 摆
+64FB 擻 => 64DE 擞
+64FC 擼 => 64B8 撸
+64FE 擾 => 6270 扰
+6504 攄 => 6348 捈
+6506 攆 => 64B5 撵
+650F 攏 => 62E2 拢
+6512 攒 => 6505 攅
+6514 攔 => 62E6 拦
+6516 攖 => 6484 撄
+6519 攙 => 6400 搀
+651B 攛 => 64BA 撺
+651C 攜 => 643A 携
+651D 攝 => 6315 挕
+6522 攢 => 6505 攅
+6523 攣 => 631B 挛
+6524 攤 => 644A 摊
+652A 攪 => 6341 捁
+652C 攬 => 63FD 揽
+652F 支 => 6418 搘
+6534 攴 => 6251 扑
+6536 收 => 53CE 収
+6546 敆 => 5408 合
+6548 效 => 4FF2 俲
+654D 敍 => 53D9 叙
+6553 敓 => 593A 夺
+6558 敘 => 53D9 叙
+6559 教 => 654E 敎
+656A 敪 => 6560 敠
+656F 敯 => 610D 愍
+6575 敵 => 654C 敌
+6577 敷 => 5C03 尃
+6578 數 => 6570 数
+657B 敻 => 5910 夐
+6582 斂 => 655B 敛
+6585 斅 => 6569 敩
+6586 斆 => 6569 敩
+6588 斈 => 5B66 学
+6589 斉 => 4E9D 亝
+658E 斎 => 658B 斋
+6594 斔 => 5EBE 庾
+6595 斕 => 6593 斓
+6596 斖 => 4EB9 亹
+659E 斞 => 5EBE 庾
+65AC 斬 => 65A9 斩
+65B7 斷 => 65AD 断
+65BC 於 => 4E8E 于
+65CD 旍 => 65CC 旌
+65D7 旗 => 65C2 旂
+65E3 旣 => 65E2 既
+65E8 旨 => 6049 恉
+65EE 旮 => 65ED 旭
+6604 昄 => 53CD 反
+6606 昆 => 5D10 崐
+6607 昇 => 5347 升
+661A 昚 => 613C 愼
+6626 昦 => 660A 昊
+6630 昰 => 662F 是
+6642 時 => 65F6 时
+6644 晄 => 6643 晃
+664B 晋 => 6649 晉
+665C 晜 => 5D10 崐
+665D 晝 => 663C 昼
+6663 晣 => 403F 䀿
+6669 晩 => 665A 晚
+6681 暁 => 6653 晓
+6688 暈 => 6655 晕
+6689 暉 => 6656 晖
+668E 暎 => 6620 映
+6697 暗 => 667B 晻
+6698 暘 => 65F8 旸
+66A6 暦 => 5386 历
+66AB 暫 => 6682 暂
+66B1 暱 => 6635 昵
+66B8 暸 => 4E86 了
+66C1 曁 => 66A8 暨
+66C4 曄 => 6654 晔
+66C5 曅 => 6654 晔
+66C6 曆 => 5386 历
+66C7 曇 => 6619 昙
+66C9 曉 => 6653 晓
+66CA 曊 => 6632 昲
+66CF 曏 => 5411 向
+66D6 曖 => 66A7 暧
+66E0 曠 => 65F7 旷
+66E1 曡 => 53E0 叠
+66E8 曨 => 663D 昽
+66EC 曬 => 6652 晒
+66F5 曵 => 66F3 曳
+66F6 曶 => 3ADA 㫚
+66F8 書 => 4E66 书
+66FA 曺 => 66F9 曹
+6703 會 => 4F1A 会
+6717 朗 => 6716 朖
+671F 期 => 671E 朞
+6722 朢 => 671B 望
+672C 本 => 5932 夲
+672D 札 => 5273 剳
+672F 术 => 672E 朮
+6736 朶 => 6735 朵
+673F 朿 => 523A 刺
+6747 杇 => 572C 圬
+6765 来 => 4F86 來
+6770 杰 => 5091 傑
+6771 東 => 4E1C 东
+6780 枀 => 677E 松
+6784 构 => 5193 冓
+6787 枇 => 673C 朼
+67B4 枴 => 62D0 拐
+67BE 枾 => 676E 杮
+67F0 柰 => 5948 奈
+67FB 査 => 67E5 查
+67FE 柾 => 67E9 柩
+67FF 柿 => 676E 杮
+6805 栅 => 67F5 柵
+6806 栆 => 67A3 枣
+6807 标 => 5882 墂
+6811 树 => 5C0C 尌
+6814 栔 => 5951 契
+6817 栗 => 6144 慄
+6821 校 => 630D 挍
+6822 栢 => 67CF 柏
+6852 桒 => 6851 桑
+686E 桮 => 676F 杯
+687C 桼 => 67D2 柒
+687F 桿 => 6746 杆
+6893 梓 => 674D 杍
+6894 梔 => 6800 栀
+6898 梘 => 67A7 枧
+689D 條 => 6761 条
+689F 梟 => 67AD 枭
+68A6 梦 => 5922 夢
+68C1 棁 => 68B2 梲
+68C4 棄 => 5F03 弃
+68CB 棋 => 68CA 棊
+68D6 棖 => 67A8 枨
+68D7 棗 => 67A3 枣
+68DF 棟 => 680B 栋
+68E1 棡 => 3B4E 㭎
+68E7 棧 => 6808 栈
+68F2 棲 => 6816 栖
+68F6 棶 => 68BE 梾
+68F9 棹 => 684C 桌
+690F 椏 => 6860 桠
+691C 検 => 68C0 检
+692D 椭 => 64B1 撱
+6936 椶 => 68D5 棕
+6939 椹 => 67AE 枮
+6942 楂 => 67E5 查
+694A 楊 => 6768 杨
+6951 楑 => 63C6 揆
+6953 楓 => 67AB 枫
+6955 楕 => 64B1 撱
+695A 楚 => 6918 椘
+6960 楠 => 678F 枏
+6968 楨 => 6862 桢
+696D 業 => 4E1A 业
+6973 楳 => 6885 梅
+6975 極 => 6781 极
+697D 楽 => 4E50 乐
+6986 榆 => 6961 楡
+6994 榔 => 6879 桹
+69A4 榤 => 6840 桀
+69A6 榦 => 4E7E 乾
+69A8 榨 => 643E 搾
+69AA 榪 => 6769 杩
+69AE 榮 => 6804 栄
+69B2 榲 => 6985 榅
+69B7 榷 => 3A41 㩁
+69BF 榿 => 6864 桤
+69C5 槅 => 6838 核
+69CB 構 => 5193 冓
+69CD 槍 => 67AA 枪
+69D3 槓 => 6760 杠
+69D8 様 => 6837 样
+69D9 槙 => 69C7 槇
+69DA 槚 => 698E 榎
+69DF 槟 => 68B9 梹
+69E4 槤 => 68BF 梿
+69E7 槧 => 6920 椠
+69E8 槨 => 6901 椁
+69EA 槪 => 6982 概
+69F3 槳 => 6868 桨
+69FC 槼 => 691D 椝
+6A01 樁 => 6869 桩
+6A02 樂 => 4E50 乐
+6A05 樅 => 679E 枞
+6A11 樑 => 6881 梁
+6A13 樓 => 697C 楼
+6A19 標 => 5882 墂
+6A1B 樛 => 673B 朻
+6A1E 樞 => 67A2 枢
+6A23 樣 => 6837 样
+6A27 樧 => 699D 榝
+6A29 権 => 6743 权
+6A33 樳 => 686A 桪
+6A38 樸 => 6734 朴
+6A39 樹 => 5C0C 尌
+6A3A 樺 => 6866 桦
+6A3C 樼 => 699B 榛
+6A3D 樽 => 58AB 墫
+6A3F 樿 => 692B 椫
+6A47 橇 => 6865 桥
+6A48 橈 => 6861 桡
+6A4B 橋 => 6865 桥
+6A55 橕 => 6A18 樘
+6A5F 機 => 673A 机
+6A62 橢 => 64B1 撱
+6A6B 橫 => 6A2A 横
+6A79 橹 => 6A10 樐
+6A85 檅 => 69E5 槥
+6A87 檇 => 69DC 槜
+6A89 檉 => 67FD 柽
+6A94 檔 => 6863 档
+6A98 檘 => 67B0 枰
+6A9A 檚 => 6918 椘
+6A9C 檜 => 6867 桧
+6A9F 檟 => 698E 榎
+6AA2 檢 => 68C0 检
+6AA3 檣 => 6A2F 樯
+6AA9 檩 => 6A81 檁
+6AAE 檮 => 68BC 梼
+6AAF 檯 => 53F0 台
+6AB3 檳 => 68B9 梹
+6AB8 檸 => 67E0 柠
+6ABB 檻 => 69DB 槛
+6ABC 檼 => 6A83 檃
+6AC2 櫂 => 684C 桌
+6AC3 櫃 => 67DC 柜
+6AD3 櫓 => 6A10 樐
+6ADA 櫚 => 6988 榈
+6ADB 櫛 => 6809 栉
+6ADD 櫝 => 691F 椟
+6ADE 櫞 => 6A7C 橼
+6ADF 櫟 => 680E 栎
+6AE5 櫥 => 6A71 橱
+6AE7 櫧 => 69E0 槠
+6AE8 櫨 => 680C 栌
+6AEA 櫪 => 67A5 枥
+6AEB 櫫 => 6A65 橥
+6AEC 櫬 => 6987 榇
+6AF3 櫳 => 680A 栊
+6AF8 櫸 => 6989 榉
+6AFB 櫻 => 6A31 樱
+6AFD 櫽 => 6A83 檃
+6B04 欄 => 680F 栏
+6B09 欉 => 4E1B 丛
+6B0A 權 => 6743 权
+6B0F 欏 => 6924 椤
+6B12 欒 => 683E 栾
+6B16 欖 => 6984 榄
+6B17 欗 => 680F 栏
+6B1E 欞 => 68C2 棂
+6B22 欢 => 61FD 懽
+6B32 欲 => 617E 慾
+6B33 欳 => 559F 喟
+6B36 欶 => 55FD 嗽
+6B4E 歎 => 53F9 叹
+6B50 歐 => 6B27 欧
+6B53 歓 => 61FD 懽
+6B55 歕 => 55B7 喷
+6B5B 歛 => 655B 敛
+6B5F 歟 => 6B24 欤
+6B61 歡 => 61FD 懽
+6B67 歧 => 5C90 岐
+6B69 歩 => 6B65 步
+6B72 歲 => 4E97 亗
+6B73 歳 => 4E97 亗
+6B74 歴 => 5386 历
+6B77 歷 => 5386 历
+6B78 歸 => 5E30 帰
+6B7A 歺 => 6B79 歹
+6B80 殀 => 592D 夭
+6B81 殁 => 6B7F 歿
+6B98 殘 => 6B8B 残
+6B9E 殞 => 6B92 殒
+6BA4 殤 => 6B87 殇
+6BA8 殨 => 3C6E 㱮
+6BAB 殫 => 6B9A 殚
+6BAD 殭 => 50F5 僵
+6BAE 殮 => 6B93 殓
+6BAF 殯 => 6BA1 殡
+6BB2 殲 => 6B7C 歼
+6BB3 殳 => 6778 杸
+6BB7 殷 => 6147 慇
+6BBA 殺 => 6740 杀
+6BBB 殻 => 58F3 壳
+6BBC 殼 => 58F3 壳
+6BC1 毁 => 6BC0 毀
+6BC3 毃 => 6572 敲
+6BC6 毆 => 6BB4 殴
+6BC9 毉 => 533B 医
+6BCF 每 => 6BCE 毎
+6BD8 毘 => 6BD7 毗
+6BD9 毙 => 6583 斃
+6BFB 毻 => 6BE4 毤
+6BFF 毿 => 6BF5 毵
+6C08 氈 => 6BE1 毡
+6C0C 氌 => 6C07 氇
+6C23 氣 => 6C14 气
+6C2B 氫 => 6C22 氢
+6C2C 氬 => 6C29 氩
+6C33 氳 => 6C32 氲
+6C37 氷 => 51B0 冰
+6C47 汇 => 532F 匯
+6C4E 汎 => 6C3E 氾
+6C5A 汚 => 6C59 汙
+6C61 污 => 6C59 汙
+6C70 汰 => 6C4F 汏
+6C7A 決 => 51B3 决
+6C89 沉 => 6C88 沈
+6C8D 沍 => 51B1 冱
+6C96 沖 => 51B2 冲
+6C9B 沛 => 4F02 伂
+6CA1 没 => 6C92 沒
+6CB2 沲 => 6CB1 沱
+6CC1 況 => 51B5 况
+6CDB 泛 => 6C3E 氾
+6CED 泭 => 6874 桴
+6CFA 泺 => 6CCA 泊
+6CFD 泽 => 6CA2 沢
+6D0C 洌 => 51BD 冽
+6D0D 洍 => 6C5C 汜
+6D22 洢 => 4F0A 伊
+6D29 洩 => 6CC4 泄
+6D2F 洯 => 6D01 洁
+6D36 洶 => 6C79 汹
+6D3D 洽 => 51BE 冾
+6D3E 派 => 6CD2 泒
+6D44 浄 => 51C0 净
+6D4F 浏 => 56A0 嚠
+6D52 浒 => 6C7B 汻
+6D79 浹 => 6D43 浃
+6D82 涂 => 51C3 凃
+6D87 涇 => 6CFE 泾
+6D99 涙 => 6CEA 泪
+6D9A 涚 => 6D97 涗
+6DBC 涼 => 51C9 凉
+6DD2 淒 => 51C4 凄
+6DD3 淓 => 6C78 汸
+6DD7 淗 => 6CE6 泦
+6DDA 淚 => 6CEA 泪
+6DDB 淛 => 6D59 浙
+6DE3 淣 => 502A 倪
+6DE8 淨 => 51C0 净
+6DE9 淩 => 51CC 凌
+6DEA 淪 => 6CA6 沦
+6DEB 淫 => 5A6C 婬
+6DF6 淶 => 6D9E 涞
+6DF8 淸 => 51CA 凊
+6DFA 淺 => 6D45 浅
+6E05 清 => 51CA 凊
+6E08 済 => 6D4E 济
+6E09 渉 => 6D89 涉
+6E0A 渊 => 6DF5 淵
+6E0B 渋 => 6DA9 涩
+6E0C 渌 => 6DE5 淥
+6E10 渐 => 5DC9 巉
+6E15 渕 => 6DF5 淵
+6E16 渖 => 6C88 沈
+6E19 渙 => 6DA3 涣
+6E1B 減 => 51CF 减
+6E22 渢 => 6CA8 沨
+6E26 渦 => 6DA1 涡
+6E2B 渫 => 6CC4 泄
+6E2C 測 => 6D4B 测
+6E34 渴 => 6E07 渇
+6E3E 渾 => 6D51 浑
+6E47 湇 => 6E46 湆
+6E4A 湊 => 51D1 凑
+6E5E 湞 => 6D48 浈
+6E67 湧 => 6D8C 涌
+6E6F 湯 => 6C64 汤
+6E88 溈 => 6CA9 沩
+6E90 源 => 53B5 厵
+6E96 準 => 51C6 准
+6E99 溙 => 6C4F 汏
+6E9D 溝 => 6C9F 沟
+6EAB 溫 => 6E29 温
+6EAE 溮 => 6D49 浉
+6EAF 溯 => 6CDD 泝
+6EB3 溳 => 6DA2 涢
+6EBA 溺 => 5C3F 尿
+6EBC 溼 => 6E7F 湿
+6EC4 滄 => 6CA7 沧
+6ECA 滊 => 6C7D 汽
+6ECC 滌 => 6DA4 涤
+6ED9 滙 => 532F 匯
+6EE1 满 => 6E80 満
+6EE8 滨 => 6D5C 浜
+6EEC 滬 => 6CAA 沪
+6EEF 滯 => 6EDE 滞
+6EF2 滲 => 6E17 渗
+6EF7 滷 => 5364 卤
+6EF8 滸 => 6C7B 汻
+6EFB 滻 => 6D50 浐
+6EFE 滾 => 6EDA 滚
+6EFF 滿 => 6E80 満
+6F01 漁 => 6E14 渔
+6F05 漅 => 5DE2 巢
+6F06 漆 => 67D2 柒
+6F0A 漊 => 6E87 溇
+6F11 漑 => 6E89 溉
+6F1A 漚 => 6CA4 沤
+6F22 漢 => 6C49 汉
+6F23 漣 => 6D9F 涟
+6F25 漥 => 6D3C 洼
+6F27 漧 => 4E7E 乾
+6F2C 漬 => 6E0D 渍
+6F32 漲 => 6DA8 涨
+6F35 漵 => 6E86 溆
+6F38 漸 => 5DC9 巉
+6F3F 漿 => 6D46 浆
+6F40 潀 => 6F0E 漎
+6F43 潃 => 6EEB 滫
+6F44 潄 => 6F31 漱
+6F51 潑 => 6CFC 泼
+6F54 潔 => 6D01 洁
+6F59 潙 => 6CA9 沩
+6F5C 潜 => 6F5B 潛
+6F64 潤 => 6DA6 润
+6F67 潧 => 6EB1 溱
+6F68 潨 => 6F0E 漎
+6F6F 潯 => 6D54 浔
+6F70 潰 => 6E83 溃
+6F77 潷 => 6ED7 滗
+6F7F 潿 => 6DA0 涠
+6F80 澀 => 6DA9 涩
+6F81 澁 => 6DA9 涩
+6F84 澄 => 6F82 澂
+6F86 澆 => 6D47 浇
+6F87 澇 => 6D9D 涝
+6F91 澑 => 6E9C 溜
+6F94 澔 => 6D69 浩
+6F97 澗 => 6DA7 涧
+6F99 澙 => 6F5F 潟
+6FA0 澠 => 6E11 渑
+6FA3 澣 => 6D63 浣
+6FA4 澤 => 6CA2 沢
+6FA6 澦 => 6EEA 滪
+6FA9 澩 => 6CF6 泶
+6FAA 澪 => 6CE0 泠
+6FAB 澫 => 6F2B 漫
+6FAE 澮 => 6D4D 浍
+6FB1 澱 => 6DC0 淀
+6FB9 澹 => 6DE1 淡
+6FBE 澾 => 3CE0 㳠
+6FC1 濁 => 6D4A 浊
+6FC3 濃 => 6D53 浓
+6FC4 濄 => 6DA1 涡
+6FC7 濇 => 6DA9 涩
+6FD4 濔 => 6CB5 沵
+6FD5 濕 => 6E7F 湿
+6FD8 濘 => 6CDE 泞
+6FDA 濚 => 6E81 溁
+6FDB 濛 => 61DE 懞
+6FDC 濜 => 6D55 浕
+6FDF 濟 => 6D4E 济
+6FE4 濤 => 6D9B 涛
+6FEB 濫 => 6EE5 滥
+6FEC 濬 => 6D5A 浚
+6FF0 濰 => 6F4D 潍
+6FF1 濱 => 6D5C 浜
+6FF3 濳 => 6F5B 潛
+6FFA 濺 => 6E85 溅
+6FFC 濼 => 6CCA 泊
+6FFE 濾 => 6EE4 滤
+7001 瀁 => 6F3E 漾
+7002 瀂 => 6F9B 澛
+7005 瀅 => 6EE2 滢
+7006 瀆 => 6E0E 渎
+7007 瀇 => 6C6A 汪
+7009 瀉 => 6CFB 泻
+700B 瀋 => 6C88 沈
+700F 瀏 => 56A0 嚠
+7012 瀒 => 6DA9 涩
+7015 瀕 => 6FD2 濒
+7018 瀘 => 6CF8 泸
+701D 瀝 => 6CA5 沥
+701F 瀟 => 6F47 潇
+7020 瀠 => 6F46 潆
+7022 瀢 => 6FFB 濻
+7026 瀦 => 6F74 潴
+7027 瀧 => 6CF7 泷
+7028 瀨 => 6FD1 濑
+702C 瀬 => 6FD1 濑
+7030 瀰 => 519E 冞
+7032 瀲 => 6F4B 潋
+703E 瀾 => 6F9C 澜
+7041 灁 => 6DF5 淵
+7043 灃 => 6CA3 沣
+7044 灄 => 6EE0 滠
+704C 灌 => 6F45 潅
+7051 灑 => 6D12 洒
+7054 灔 => 6EDF 滟
+7055 灕 => 6F13 漓
+7058 灘 => 6EE9 滩
+705D 灝 => 704F 灏
+7063 灣 => 6E7E 湾
+7064 灤 => 6EE6 滦
+7067 灧 => 6EDF 滟
+7069 灩 => 6EDF 滟
+706D 灭 => 6EC5 滅
+706E 灮 => 5149 光
+707E 灾 => 707D 災
+7094 炔 => 7085 炅
+7095 炕 => 531F 匟
+709A 炚 => 5149 光
+70A4 炤 => 66CC 曌
+70B0 炰 => 70AE 炮
+70B3 炳 => 663A 昺
+70B9 点 => 594C 奌
+70BA 為 => 4E3A 为
+70CF 烏 => 4E4C 乌
+70D6 烖 => 707D 災
+70D8 烘 => 7074 灴
+70E1 烡 => 5149 光
+70F1 烱 => 70AF 炯
+70F4 烴 => 70C3 烃
+70FA 烺 => 6716 朖
+7115 焕 => 70C9 烉
+711A 焚 => 7083 炃
+7121 無 => 65E0 无
+712D 焭 => 60F8 惸
+7149 煉 => 70BC 炼
+7152 煒 => 709C 炜
+7156 煖 => 6696 暖
+7159 煙 => 70DF 烟
+7161 煡 => 70EC 烬
+7162 煢 => 60F8 惸
+7165 煥 => 70C9 烉
+7167 照 => 66CC 曌
+7169 煩 => 70E6 烦
+716C 煬 => 7080 炀
+716E 煮 => 7151 煑
+7185 熅 => 7174 煴
+7197 熗 => 709D 炝
+7199 熙 => 7188 熈
+71B1 熱 => 70ED 热
+71BA 熺 => 71B9 熹
+71BE 熾 => 70BD 炽
+71C1 燁 => 70E8 烨
+71C4 燄 => 7130 焰
+71C7 燇 => 710C 焌
+71C8 燈 => 706F 灯
+71C9 燉 => 7096 炖
+71D2 燒 => 70E7 烧
+71D7 燗 => 70C2 烂
+71D9 燙 => 70EB 烫
+71DB 燛 => 715A 煚
+71DC 燜 => 7116 焖
+71DF 營 => 55B6 営
+71E5 燥 => 7170 煰
+71E6 燦 => 707F 灿
+71ED 燭 => 70DB 烛
+71F0 燰 => 7168 煨
+71F4 燴 => 70E9 烩
+71F7 燷 => 71E3 燣
+71FB 燻 => 718F 熏
+71FC 燼 => 70EC 烬
+71FE 燾 => 7118 焘
+71FF 燿 => 66DC 曜
+720D 爍 => 70C1 烁
+7210 爐 => 7089 炉
+7214 爔 => 71E8 燨
+721B 爛 => 70C2 烂
+7226 爦 => 7201 爁
+7227 爧 => 71EF 燯
+722D 爭 => 4E89 争
+7231 爱 => 611B 愛
+7232 爲 => 4E3A 为
+723A 爺 => 7237 爷
+723C 爼 => 4FCE 俎
+723D 爽 => 6161 慡
+723E 爾 => 5C12 尒
+723F 爿 => 4E2C 丬
+7240 牀 => 5E8A 床
+7246 牆 => 5899 墙
+7253 牓 => 699C 榜
+7258 牘 => 724D 牍
+725A 牚 => 6490 撐
+7260 牠 => 5B83 它
+7266 牦 => 6C02 氂
+7274 牴 => 627A 扺
+727D 牽 => 7275 牵
+7282 犂 => 7281 犁
+7287 犇 => 5954 奔
+729B 犛 => 6C02 氂
+72A2 犢 => 728A 犊
+72A7 犧 => 727A 牺
+72C0 狀 => 72B6 状
+72C5 狅 => 72C2 狂
+72C6 狆 => 4EF2 仲
+72EB 狫 => 4F6C 佬
+72F9 狹 => 72ED 狭
+72FD 狽 => 72C8 狈
+7312 猒 => 538C 厌
+7319 猙 => 72F0 狰
+7336 猶 => 72B9 犹
+733B 猻 => 72F2 狲
+733E 猾 => 72EF 狯
+7341 獁 => 72B8 犸
+7343 獃 => 5446 呆
+7344 獄 => 72F1 狱
+7345 獅 => 72EE 狮
+7349 獉 => 699B 榛
+734E 獎 => 5956 奖
+735E 獞 => 50EE 僮
+7367 獧 => 72F7 狷
+7368 獨 => 72EC 独
+736A 獪 => 72EF 狯
+736B 獫 => 7303 猃
+736E 獮 => 72DD 狝
+7370 獰 => 72DE 狞
+7375 獵 => 730E 猎
+7377 獷 => 72B7 犷
+7378 獸 => 517D 兽
+737A 獺 => 736D 獭
+737B 獻 => 732E 献
+737C 獼 => 7315 猕
+7380 玀 => 7321 猡
+7381 玁 => 7303 猃
+7385 玅 => 5999 妙
+7386 玆 => 5179 兹
+73C9 珉 => 739F 玟
+73CE 珎 => 73CD 珍
+73EA 珪 => 572D 圭
+73EE 珮 => 4F69 佩
+73FE 現 => 73B0 现
+7403 球 => 6BEC 毬
+741D 琝 => 739F 玟
+7431 琱 => 5F6B 彫
+743F 琿 => 73F2 珲
+7445 瑅 => 73F6 珶
+744B 瑋 => 73AE 玮
+7452 瑒 => 739A 玚
+7463 瑣 => 7410 琐
+746A 瑪 => 739B 玛
+746F 瑯 => 7405 琅
+7472 瑲 => 73B1 玱
+7476 瑶 => 7464 瑤
+7483 璃 => 740D 琍
+7487 璇 => 7401 琁
+7489 璉 => 740F 琏
+7497 璗 => 739A 玚
+749A 璚 => 743C 琼
+74A1 璡 => 740E 琎
+74A3 璣 => 7391 玑
+74A6 璦 => 7477 瑷
+74AB 璫 => 73F0 珰
+74B0 環 => 73AF 环
+74B5 璵 => 7399 玙
+74B8 璸 => 7478 瑸
+74BD 璽 => 73BA 玺
+74BF 璿 => 7401 琁
+74CA 瓊 => 743C 琼
+74CF 瓏 => 73D1 珑
+74D4 瓔 => 748E 璎
+74DA 瓚 => 74D2 瓒
+74E1 瓡 => 57F7 執
+7501 甁 => 74F6 瓶
+7506 甆 => 74F7 瓷
+750C 甌 => 74EF 瓯
+7515 甕 => 74EE 瓮
+7516 甖 => 7507 甇
+751C 甜 => 751B 甛
+751E 甞 => 5617 嘗
+7522 產 => 4EA7 产
+7523 産 => 4EA7 产
+7526 甦 => 56CC 囌
+753A 町 => 5722 圢
+753F 甿 => 6C13 氓
+7545 畅 => 66A2 暢
+7546 畆 => 4EA9 亩
+754C 界 => 583A 堺
+754D 畍 => 583A 堺
+754E 畎 => 753D 甽
+754F 畏 => 6104 愄
+7559 留 => 7544 畄
+755D 畝 => 4EA9 亩
+7562 畢 => 6BD5 毕
+7567 畧 => 7565 略
+756B 畫 => 753B 画
+756D 畭 => 756C 畬
+756E 畮 => 4EA9 亩
+7570 異 => 5F02 异
+7572 畲 => 756C 畬
+7575 畵 => 753B 画
+7576 當 => 5679 噹
+757D 畽 => 58A5 墥
+7583 疃 => 58A5 墥
+7587 疇 => 7574 畴
+7589 疉 => 53E0 叠
+758A 疊 => 53E0 叠
+758B 疋 => 5339 匹
+75CC 痌 => 606B 恫
+75D6 痖 => 54D1 哑
+75D9 痙 => 75C9 痉
+75F1 痱 => 75BF 疿
+75F2 痲 => 6DCB 淋
+75F3 痳 => 6DCB 淋
+75F5 痵 => 60B8 悸
+75F9 痹 => 75AA 疪
+75FA 痺 => 75AA 疪
+7602 瘂 => 54D1 哑
+7609 瘉 => 6108 愈
+760B 瘋 => 75AF 疯
+760D 瘍 => 75A1 疡
+7613 瘓 => 75EA 痪
+7616 瘖 => 5591 喑
+761E 瘞 => 7617 瘗
+7621 瘡 => 75AE 疮
+7623 瘣 => 574F 坏
+7627 瘧 => 759F 疟
+762E 瘮 => 7606 瘆
+7632 瘲 => 75AD 疭
+763A 瘺 => 7618 瘘
+763B 瘻 => 7618 瘘
+763D 瘽 => 52E4 勤
+7642 療 => 7597 疗
+7646 癆 => 75E8 痨
+7647 癇 => 75EB 痫
+7648 癈 => 5E9F 废
+7649 癉 => 7605 瘅
+7652 癒 => 6108 愈
+7658 癘 => 75A0 疠
+765D 癝 => 765B 癛
+765F 癟 => 762A 瘪
+7661 癡 => 75F4 痴
+7662 癢 => 75D2 痒
+7664 癤 => 7596 疖
+7665 癥 => 75C7 症
+7667 癧 => 75AC 疬
+7669 癩 => 765E 癞
+766B 癫 => 7628 瘨
+766C 癬 => 7663 癣
+766D 癭 => 763F 瘿
+766E 癮 => 763E 瘾
+7670 癰 => 75C8 痈
+7671 癱 => 762B 瘫
+7672 癲 => 7628 瘨
+767C 發 => 53D1 发
+7682 皂 => 7681 皁
+7688 皈 => 5E30 帰
+7690 皐 => 768B 皋
+7693 皓 => 66A0 暠
+7696 皖 => 6665 晥
+769A 皚 => 7691 皑
+769C 皜 => 66A0 暠
+76A6 皦 => 768E 皎
+76B0 皰 => 75B1 疱
+76B8 皸 => 76B2 皲
+76BA 皺 => 76B1 皱
+76BC 皼 => 76B7 皷
+76C3 盃 => 676F 杯
+76C5 盅 => 51B2 冲
+76CD 盍 => 76C7 盇
+76CF 盏 => 7416 琖
+76D0 盐 => 5869 塩
+76D8 盘 => 6D00 洀
+76DC 盜 => 76D7 盗
+76DE 盞 => 7416 琖
+76E1 盡 => 5118 儘
+76E3 監 => 76D1 监
+76E4 盤 => 6D00 洀
+76E7 盧 => 5362 卢
+76EA 盪 => 6F52 潒
+76ED 盭 => 623B 戻
+76F3 盳 => 76F2 盲
+7718 眘 => 613C 愼
+771F 真 => 771E 眞
+773E 眾 => 4F17 众
+774F 睏 => 56F0 困
+775C 睜 => 7741 睁
+775E 睞 => 7750 睐
+7760 睠 => 7737 眷
+777E 睾 => 776A 睪
+777F 睿 => 53E1 叡
+7785 瞅 => 5062 偢
+7787 瞇 => 772F 眯
+7798 瞘 => 770D 眍
+779C 瞜 => 4056 䁖
+779E 瞞 => 7792 瞒
+77AC 瞬 => 779A 瞚
+77AD 瞭 => 4E86 了
+77B6 瞶 => 7786 瞆
+77BC 瞼 => 7751 睑
+77C7 矇 => 61DE 懞
+77CF 矏 => 77C8 矈
+77D3 矓 => 772C 眬
+77D9 矙 => 77B0 瞰
+77DA 矚 => 77A9 瞩
+77E9 矩 => 6998 榘
+77EF 矯 => 77EB 矫
+7814 研 => 63C5 揅
+782B 砫 => 67F1 柱
+7832 砲 => 70AE 炮
+7843 硃 => 6731 朱
+784F 硏 => 63C5 揅
+785C 硜 => 7841 硁
+7864 硤 => 7856 硖
+7868 硨 => 7817 砗
+786C 硬 => 5CFA 峺
+786E 确 => 5859 塙
+786F 硯 => 781A 砚
+7881 碁 => 68CA 棊
+7887 碇 => 6917 椗
+788E 碎 => 7815 砕
+7895 碕 => 57FC 埼
+789E 碞 => 55A6 喦
+78A2 碢 => 7823 砣
+78A8 碨 => 7859 硙
+78A9 碩 => 7855 硕
+78AA 碪 => 7827 砧
+78AD 碭 => 7800 砀
+78AF 碯 => 7459 瑙
+78B0 碰 => 63BD 掽
+78B1 碱 => 7877 硷
+78B8 碸 => 781C 砜
+78BA 確 => 5859 塙
+78BB 碻 => 5859 塙
+78BC 碼 => 7801 码
+78C6 磆 => 6ED1 滑
+78D1 磑 => 7859 硙
+78DA 磚 => 7816 砖
+78DF 磟 => 788C 碌
+78E0 磠 => 7875 硵
+78E3 磣 => 789C 碜
+78E5 磥 => 78CA 磊
+78E7 磧 => 789B 碛
+78EF 磯 => 77F6 矶
+78F7 磷 => 71D0 燐
+78FD 磽 => 7857 硗
+7904 礄 => 785A 硚
+7906 礆 => 7877 硷
+790E 礎 => 7840 础
+7919 礙 => 788D 碍
+791D 礝 => 789D 碝
+7926 礦 => 77FF 矿
+792A 礪 => 783A 砺
+792B 礫 => 783E 砾
+792C 礬 => 77FE 矾
+792D 礭 => 5859 塙
+792E 礮 => 70AE 炮
+7931 礱 => 783B 砻
+7938 礸 => 7924 礤
+7939 礹 => 55A6 喦
+7945 祅 => 46B6 䚶
+794C 祌 => 51B2 冲
+7961 祡 => 67F4 柴
+7963 祣 => 65C5 旅
+7969 祩 => 795D 祝
+7980 禀 => 5EE9 廩
+7984 禄 => 797F 祿
+798D 禍 => 7978 祸
+798E 禎 => 796F 祯
+7995 禕 => 794E 祎
+79A1 禡 => 7943 祃
+79A5 禥 => 797A 祺
+79A6 禦 => 5FA1 御
+79AA 禪 => 7985 禅
+79AE 禮 => 793C 礼
+79B0 禰 => 7962 祢
+79B1 禱 => 7977 祷
+79B4 禴 => 793F 礿
+79C1 私 => 53B6 厶
+79C3 秃 => 79BF 禿
+79CA 秊 => 5E74 年
+79D6 秖 => 7947 祇
+79D8 秘 => 7955 祕
+79F0 称 => 5041 偁
+7A00 稀 => 5E0C 希
+7A08 稈 => 79C6 秆
+7A0E 税 => 7A05 稅
+7A1C 稜 => 68F1 棱
+7A1F 稟 => 5EE9 廩
+7A2D 稭 => 79F8 秸
+7A2E 種 => 79CD 种
+7A31 稱 => 5041 偁
+7A3B 稻 => 7A32 稲
+7A3D 稽 => 4E69 乩
+7A3F 稿 => 7A3E 稾
+7A47 穇 => 415F 䅟
+7A49 穉 => 7A1A 稚
+7A4B 穋 => 7A11 稑
+7A4C 穌 => 7A23 稣
+7A4D 積 => 79EF 积
+7A50 穐 => 79CB 秋
+7A57 穗 => 7A42 穂
+7A5F 穟 => 7A42 穂
+7A60 穠 => 79FE 秾
+7A61 穡 => 7A51 穑
+7A62 穢 => 79FD 秽
+7A69 穩 => 7A33 稳
+7A6B 穫 => 7372 獲
+7A6D 穭 => 7A5E 穞
+7A74 穴 => 5CA4 岤
+7A75 穵 => 6316 挖
+7A7B 穻 => 5B87 宇
+7A97 窗 => 7A93 窓
+7AA8 窨 => 5837 堷
+7AA9 窩 => 7A9D 窝
+7AAA 窪 => 6D3C 洼
+7AAD 窭 => 5BE0 寠
+7AAE 窮 => 7A77 穷
+7AAF 窯 => 7A91 窑
+7AB0 窰 => 7A91 窑
+7AB5 窵 => 7A8E 窎
+7AB6 窶 => 5BE0 寠
+7ABA 窺 => 7AA5 窥
+7AC4 竄 => 7A9C 窜
+7AC5 竅 => 7A8D 窍
+7AC7 竇 => 7AA6 窦
+7AC8 竈 => 7076 灶
+7ACA 竊 => 7A83 窃
+7AD2 竒 => 5947 奇
+7ADD 竝 => 4E26 並
+7AE2 竢 => 4FDF 俟
+7AE4 竤 => 7AD1 竑
+7AEA 竪 => 7AD6 竖
+7AF6 競 => 7ADE 竞
+7AF8 竸 => 7ADE 竞
+7B01 笁 => 7AFA 竺
+7B06 笆 => 5DF4 巴
+7B11 笑 => 54B2 咲
+7B36 笶 => 77E2 矢
+7B3A 笺 => 724B 牋
+7B46 筆 => 7B14 笔
+7B47 筇 => 7B3B 笻
+7B4A 筊 => 7B05 笅
+7B4B 筋 => 65A4 斤
+7B4D 筍 => 7B0B 笋
+7B54 答 => 7563 畣
+7B5E 筞 => 7B56 策
+7B67 筧 => 7B15 笕
+7B69 筩 => 7B52 筒
+7B6D 筭 => 7958 祘
+7B70 筰 => 7B2E 笮
+7B74 筴 => 7B56 策
+7B7F 筿 => 7B71 筱
+7B87 箇 => 4E2A 个
+7B8B 箋 => 724B 牋
+7B8E 箎 => 7AFE 竾
+7B8F 箏 => 7B5D 筝
+7B97 算 => 7958 祘
+7B9A 箚 => 5273 剳
+7B9D 箝 => 62D1 拑
+7BA0 箠 => 68F0 棰
+7BA1 管 => 7B66 筦
+7BC9 築 => 7B51 筑
+7BCB 篋 => 7BA7 箧
+7BD4 篔 => 7B7C 筼
+7BDB 篛 => 7BAC 箬
+7BE0 篠 => 7B71 筱
+7BE4 篤 => 7B03 笃
+7BE9 篩 => 7B5B 筛
+7BEA 篪 => 7AFE 竾
+7BED 篭 => 7B3C 笼
+7BF1 篱 => 7B63 筣
+7BF2 篲 => 5F57 彗
+7BF3 篳 => 7B5A 筚
+7BF4 篴 => 7B1B 笛
+7C00 簀 => 7BA6 箦
+7C06 簆 => 7B58 筘
+7C08 簈 => 7BB3 箳
+7C0D 簍 => 7BD3 篓
+7C12 簒 => 7BE1 篡
+7C18 簘 => 7BAB 箫
+7C1E 簞 => 7BAA 箪
+7C21 簡 => 7B80 简
+7C23 簣 => 7BD1 篑
+7C2B 簫 => 7BAB 箫
+7C37 簷 => 6A90 檐
+7C39 簹 => 7B5C 筜
+7C3C 簼 => 7BDD 篝
+7C3D 簽 => 7B7E 签
+7C3E 簾 => 5E18 帘
+7C43 籃 => 7BEE 篮
+7C49 籉 => 53F0 台
+7C4C 籌 => 7B79 筹
+7C56 籖 => 7B7E 签
+7C58 籘 => 7C50 籐
+7C59 籙 => 7B93 箓
+7C5B 籛 => 7BEF 篯
+7C5C 籜 => 7BA8 箨
+7C5E 籞 => 7BFD 篽
+7C5F 籟 => 7C41 籁
+7C60 籠 => 7B3C 笼
+7C64 籤 => 7B7E 签
+7C69 籩 => 7B3E 笾
+7C6A 籪 => 7C16 簖
+7C6C 籬 => 7B63 筣
+7C6E 籮 => 7BA9 箩
+7C72 籲 => 5401 吁
+7C75 籵 => 756A 番
+7C7C 籼 => 79C8 秈
+7CA2 粢 => 79F6 秶
+7CB5 粵 => 7CA4 粤
+7CB9 粹 => 7C8B 粋
+7CBA 粺 => 7A17 稗
+7CC5 糅 => 7C88 粈
+7CC8 糈 => 7A30 稰
+7CC9 糉 => 7CBD 粽
+7CDC 糜 => 7222 爢
+7CDD 糝 => 7CC1 糁
+7CDE 糞 => 7CAA 粪
+7CE0 糠 => 7A45 穅
+7CE7 糧 => 7CAE 粮
+7CED 糭 => 7CBD 粽
+7CF0 糰 => 56E2 团
+7CF2 糲 => 7C9D 粝
+7CF4 糴 => 7C74 籴
+7CF5 糵 => 7CF1 糱
+7CF6 糶 => 7C9C 粜
+7CF8 糸 => 4E1D 丝
+7CF9 糹 => 4E1D 丝
+7CFB 系 => 4FC2 係
+7CFE 糾 => 7CFA 糺
+7D19 紙 => 5E0B 帋
+7D20 素 => 69A1 榡
+7D25 紥 => 5273 剳
+7D2C 紬 => 4337 䌷
+7D2E 紮 => 5273 剳
+7D43 絃 => 5F26 弦
+7D4F 絏 => 7D32 紲
+7D56 絖 => 7D4B 絋
+7D68 絨 => 6BE7 毧
+7D6B 絫 => 7D2F 累
+7D72 絲 => 4E1D 丝
+7D76 絶 => 7D55 絕
+7D7C 絼 => 7D16 紖
+7D8D 綍 => 7D3C 紼
+7D91 綑 => 6346 捆
+7D93 經 => 7D4C 経
+7DA2 綢 => 4337 䌷
+7DAE 綮 => 68E8 棨
+7DB5 綵 => 5F69 彩
+7DCA 緊 => 7D27 紧
+7DCC 緌 => 7D8F 綏
+7DCF 総 => 603B 总
+7DD1 緑 => 7DA0 綠
+7DD6 緖 => 7DD2 緒
+7DDA 線 => 7DAB 綫
+7E01 縁 => 7DE3 緣
+7E02 縂 => 603B 总
+7E06 縆 => 7DEA 緪
+7E0D 縍 => 5E2E 帮
+7E15 縕 => 7DFC 緼
+7E1A 縚 => 7D5B 絛
+7E23 縣 => 53BF 县
+7E27 縧 => 7D5B 絛
+7E2E 縮 => 644D 摍
+7E31 縱 => 7E26 縦
+7E34 縴 => 5B45 孅
+7E36 縶 => 7D77 絷
+7E3D 總 => 603B 总
+7E3E 績 => 52E3 勣
+7E41 繁 => 7DD0 緐
+7E43 繃 => 7DB3 綳
+7E4D 繍 => 7D89 綉
+7E56 繖 => 4F1E 伞
+7E61 繡 => 7D89 綉
+7E62 繢 => 7D75 絵
+7E66 繦 => 7E48 繈
+7E69 繩 => 7E04 縄
+7E6A 繪 => 7D75 絵
+7E6B 繫 => 4FC2 係
+7E7C 繼 => 7D99 継
+7E8A 纊 => 7D4B 絋
+7E8D 纍 => 7D2F 累
+7E8E 纎 => 5B45 孅
+7E92 纒 => 7E8F 纏
+7E94 纔 => 624D 才
+7E96 纖 => 5B45 孅
+7E98 纘 => 7E89 纉
+7E9F 纟 => 4E1D 丝
+7EA0 纠 => 7CFA 糺
+7EA1 纡 => 7D06 紆
+7EA2 红 => 7D05 紅
+7EA3 纣 => 7D02 紂
+7EA4 纤 => 5B45 孅
+7EA5 纥 => 7D07 紇
+7EA6 约 => 7D04 約
+7EA7 级 => 7D1A 級
+7EA8 纨 => 7D08 紈
+7EA9 纩 => 7D4B 絋
+7EAA 纪 => 7D00 紀
+7EAB 纫 => 7D09 紉
+7EAC 纬 => 7DEF 緯
+7EAD 纭 => 7D1C 紜
+7EAE 纮 => 7D18 紘
+7EAF 纯 => 7D14 純
+7EB0 纰 => 7D15 紕
+7EB1 纱 => 7D17 紗
+7EB2 纲 => 7DB1 綱
+7EB3 纳 => 7D0D 納
+7EB4 纴 => 7D1D 紝
+7EB5 纵 => 7E26 縦
+7EB6 纶 => 7DB8 綸
+7EB7 纷 => 7D1B 紛
+7EB8 纸 => 5E0B 帋
+7EB9 纹 => 7D0B 紋
+7EBA 纺 => 7D21 紡
+7EBB 纻 => 7D35 紵
+7EBC 纼 => 7D16 紖
+7EBD 纽 => 7D10 紐
+7EBE 纾 => 7D13 紓
+7EBF 线 => 7DAB 綫
+7EC0 绀 => 7D3A 紺
+7EC1 绁 => 7D32 紲
+7EC2 绂 => 7D31 紱
+7EC3 练 => 7DF4 練
+7EC4 组 => 7D44 組
+7EC5 绅 => 7D33 紳
+7EC6 细 => 7D30 細
+7EC7 织 => 7E54 織
+7EC8 终 => 7D42 終
+7EC9 绉 => 7E10 縐
+7ECA 绊 => 7D46 絆
+7ECB 绋 => 7D3C 紼
+7ECC 绌 => 7D40 絀
+7ECD 绍 => 7D39 紹
+7ECE 绎 => 7E79 繹
+7ECF 经 => 7D4C 経
+7ED0 绐 => 7D3F 紿
+7ED1 绑 => 7D81 綁
+7ED2 绒 => 6BE7 毧
+7ED3 结 => 7D50 結
+7ED4 绔 => 7D5D 絝
+7ED5 绕 => 7E5E 繞
+7ED6 绖 => 7D70 絰
+7ED7 绗 => 7D4E 絎
+7ED8 绘 => 7D75 絵
+7ED9 给 => 7D66 給
+7EDA 绚 => 7D62 絢
+7EDB 绛 => 7D73 絳
+7EDC 络 => 7D61 絡
+7EDD 绝 => 7D55 絕
+7EDE 绞 => 7D5E 絞
+7EDF 统 => 7D71 統
+7EE0 绠 => 7D86 綆
+7EE1 绡 => 7D83 綃
+7EE2 绢 => 7D79 絹
+7EE3 绣 => 7D89 綉
+7EE4 绤 => 7D8C 綌
+7EE5 绥 => 7D8F 綏
+7EE6 绦 => 7D5B 絛
+7EE7 继 => 7D99 継
+7EE8 绨 => 7D88 綈
+7EE9 绩 => 52E3 勣
+7EEA 绪 => 7DD2 緒
+7EEB 绫 => 7DBE 綾
+7EED 续 => 7E8C 續
+7EEE 绮 => 7DBA 綺
+7EEF 绯 => 7DCB 緋
+7EF0 绰 => 7DBD 綽
+7EF1 绱 => 7DD4 緔
+7EF2 绲 => 7DC4 緄
+7EF3 绳 => 7E04 縄
+7EF4 维 => 7DAD 維
+7EF5 绵 => 7DBF 綿
+7EF6 绶 => 7DAC 綬
+7EF7 绷 => 7DB3 綳
+7EF8 绸 => 4337 䌷
+7EF9 绹 => 7DAF 綯
+7EFA 绺 => 7DB9 綹
+7EFB 绻 => 7DA3 綣
+7EFC 综 => 7D9C 綜
+7EFD 绽 => 7DBB 綻
+7EFE 绾 => 7DB0 綰
+7EFF 绿 => 7DA0 綠
+7F00 缀 => 7DB4 綴
+7F01 缁 => 7DC7 緇
+7F02 缂 => 7DD9 緙
+7F03 缃 => 7DD7 緗
+7F04 缄 => 7DD8 緘
+7F05 缅 => 7DEC 緬
+7F06 缆 => 7E9C 纜
+7F07 缇 => 7DF9 緹
+7F08 缈 => 7DF2 緲
+7F09 缉 => 7DDD 緝
+7F0A 缊 => 7DFC 緼
+7F0B 缋 => 7D75 絵
+7F0C 缌 => 7DE6 緦
+7F0D 缍 => 7D9E 綞
+7F0E 缎 => 7DDE 緞
+7F0F 缏 => 7DF6 緶
+7F10 缐 => 7DAB 綫
+7F11 缑 => 7DF1 緱
+7F12 缒 => 7E0B 縋
+7F13 缓 => 7DE9 緩
+7F14 缔 => 7DE0 締
+7F15 缕 => 7E37 縷
+7F16 编 => 7DE8 編
+7F17 缗 => 7DE1 緡
+7F18 缘 => 7DE3 緣
+7F19 缙 => 7E09 縉
+7F1A 缚 => 7E1B 縛
+7F1B 缛 => 7E1F 縟
+7F1C 缜 => 7E1D 縝
+7F1D 缝 => 7E2B 縫
+7F1E 缞 => 7E17 縗
+7F1F 缟 => 7E1E 縞
+7F20 缠 => 7E8F 纏
+7F21 缡 => 7E2D 縭
+7F22 缢 => 7E0A 縊
+7F23 缣 => 7E11 縑
+7F24 缤 => 7E7D 繽
+7F25 缥 => 7E39 縹
+7F26 缦 => 7E35 縵
+7F27 缧 => 7E32 縲
+7F28 缨 => 7E93 纓
+7F29 缩 => 644D 摍
+7F2A 缪 => 7E46 繆
+7F2B 缫 => 7E45 繅
+7F2C 缬 => 7E88 纈
+7F2D 缭 => 7E5A 繚
+7F2E 缮 => 7E55 繕
+7F2F 缯 => 7E52 繒
+7F30 缰 => 7E6E 繮
+7F31 缱 => 7E7E 繾
+7F32 缲 => 7E70 繰
+7F33 缳 => 7E6F 繯
+7F34 缴 => 7E73 繳
+7F35 缵 => 7E89 纉
+7F37 缷 => 5378 卸
+7F38 缸 => 5808 堈
+7F3E 缾 => 74F6 瓶
+7F42 罂 => 7507 甇
+7F43 罃 => 7507 甇
+7F47 罇 => 58AB 墫
+7F48 罈 => 575B 坛
+7F4B 罋 => 74EE 瓮
+7F4C 罌 => 7507 甇
+7F4E 罎 => 575B 坛
+7F4F 罏 => 5786 垆
+7F51 网 => 7DB2 網
+7F63 罣 => 6302 挂
+7F66 罦 => 7F58 罘
+7F6E 置 => 5BD8 寘
+7F70 罰 => 7F5A 罚
+7F75 罵 => 508C 傌
+7F77 罷 => 7F62 罢
+7F78 罸 => 7F5A 罚
+7F7C 罼 => 6BD5 毕
+7F80 羀 => 7F76 罶
+7F82 羂 => 7F65 罥
+7F83 羃 => 51AA 冪
+7F85 羅 => 7F57 罗
+7F86 羆 => 7F74 罴
+7F87 羇 => 7F81 羁
+7F88 羈 => 7F81 羁
+7F8E 美 => 5ABA 媺
+7F9B 羛 => 4E49 义
+7F9D 羝 => 627A 扺
+7FA2 羢 => 6BE7 毧
+7FA4 群 => 7FA3 羣
+7FA5 羥 => 7F9F 羟
+7FA8 羨 => 7FA1 羡
+7FA9 義 => 4E49 义
+7FB9 羹 => 7FAE 羮
+7FC5 翅 => 7FC4 翄
+7FD2 習 => 4E60 习
+7FE0 翠 => 7FC6 翆
+7FE2 翢 => 7E9B 纛
+7FE8 翨 => 7FC4 翄
+7FEC 翬 => 7FDA 翚
+7FF5 翵 => 7FED 翭
+7FF6 翶 => 7FF1 翱
+7FF9 翹 => 7FD8 翘
+7FFA 翺 => 7FF1 翱
+7FFB 翻 => 7E59 繙
+7FFD 翽 => 7FD9 翙
+8000 耀 => 66DC 曜
+8002 耂 => 8001 老
+8003 考 => 6537 攷
+8008 耈 => 8007 耇
+8009 耉 => 8007 耇
+8011 耑 => 7AEF 端
+8017 耗 => 79CF 秏
+8018 耘 => 79D0 秐
+801D 耝 => 521E 刞
+801E 耞 => 67B7 枷
+8024 耤 => 501F 借
+802C 耬 => 8027 耧
+802E 耮 => 8022 耢
+8030 耰 => 6ACC 櫌
+803B 耻 => 6065 恥
+8056 聖 => 5723 圣
+805F 聟 => 5A7F 婿
+8068 聨 => 8054 联
+806A 聪 => 8061 聡
+806B 聫 => 8054 联
+806E 聮 => 8054 联
+806F 聯 => 8054 联
+8070 聰 => 8061 聡
+8072 聲 => 58F0 声
+8073 聳 => 8038 耸
+8074 聴 => 542C 听
+8075 聵 => 8069 聩
+8076 聶 => 8042 聂
+8077 職 => 804C 职
+8079 聹 => 804D 聍
+807C 聼 => 542C 听
+807D 聽 => 542C 听
+807E 聾 => 804B 聋
+8080 肀 => 807F 聿
+8083 肃 => 7C9B 粛
+8085 肅 => 7C9B 粛
+8086 肆 => 56DB 四
+8089 肉 => 5B8D 宍
+809B 肛 => 7598 疘
+80A3 肣 => 51FD 函
+80A6 肦 => 670C 朌
+80BB 肻 => 80AF 肯
+80C4 胄 => 5191 冑
+80C7 胇 => 80BA 肺
+80CA 胊 => 6710 朐
+80CC 背 => 505D 偝
+80D0 胐 => 670F 朏
+80D1 胑 => 80A2 肢
+80DC 胜 => 52DD 勝
+80E5 胥 => 7E03 縃
+80E7 胧 => 6727 朧
+80F3 胳 => 8090 肐
+80F6 胶 => 3B35 㬵
+80F8 胸 => 80F7 胷
+8101 脁 => 6713 朓
+8105 脅 => 80C1 胁
+8107 脇 => 80C1 胁
+8109 脉 => 8108 脈
+811B 脛 => 80EB 胫
+8123 脣 => 5507 唇
+8127 脧 => 6718 朘
+8129 脩 => 4FEE 修
+8131 脱 => 812B 脫
+8139 脹 => 80C0 胀
+8141 腁 => 80FC 胼
+8146 腆 => 500E 倎
+814E 腎 => 80BE 肾
+8156 腖 => 80E8 胨
+8160 腠 => 50B6 傶
+8161 腡 => 8136 脶
+8166 腦 => 8111 脑
+816B 腫 => 80BF 肿
+8173 腳 => 811A 脚
+8178 腸 => 80A0 肠
+8183 膃 => 817D 腽
+8186 膆 => 55C9 嗉
+818C 膌 => 7620 瘠
+8193 膓 => 80A0 肠
+8195 膕 => 8158 腘
+819A 膚 => 80A4 肤
+819E 膞 => 43DD 䏝
+81A0 膠 => 3B35 㬵
+81A7 膧 => 6723 朣
+81A9 膩 => 817B 腻
+81AC 膬 => 8106 脆
+81BB 膻 => 7FB6 羶
+81BD 膽 => 80C6 胆
+81BE 膾 => 810D 脍
+81BF 膿 => 8113 脓
+81C6 臆 => 808A 肊
+81C8 臈 => 814A 腊
+81C9 臉 => 8138 脸
+81CD 臍 => 8110 脐
+81CF 臏 => 8191 膑
+81D5 臕 => 8198 膘
+81D8 臘 => 814A 腊
+81D9 臙 => 80ED 胭
+81DA 臚 => 80EA 胪
+81DF 臟 => 810F 脏
+81E0 臠 => 8114 脔
+81E2 臢 => 81DC 臜
+81E5 臥 => 5367 卧
+81E8 臨 => 4E34 临
+81ED 臭 => 6BA0 殠
+81EE 臮 => 66A8 暨
+81F4 致 => 7DFB 緻
+81FA 臺 => 53F0 台
+8200 舀 => 62AD 抭
+8204 舄 => 8203 舃
+8207 與 => 4E0E 与
+8208 興 => 5174 兴
+8209 舉 => 4E3E 举
+820A 舊 => 65E7 旧
+820D 舍 => 6368 捨
+820E 舎 => 6368 捨
+8223 舣 => 6AA5 檥
+8229 舩 => 8221 舡
+822A 航 => 6841 桁
+8235 舵 => 67C1 柁
+8239 船 => 8221 舡
+824A 艊 => 8236 舶
+8250 艐 => 5C46 屆
+8259 艙 => 8231 舱
+8263 艣 => 6A10 樐
+8264 艤 => 6AA5 檥
+8266 艦 => 8230 舰
+826A 艪 => 6A10 樐
+826B 艫 => 823B 舻
+8271 艱 => 8270 艰
+8276 艶 => 8273 艳
+8277 艷 => 8273 艳
+827A 艺 => 517F 兿
+8282 节 => 7BC0 節
+8288 芈 => 7F8B 羋
+8292 芒 => 7B00 笀
+82BB 芻 => 520D 刍
+82C5 苅 => 5208 刈
+82CF 苏 => 56CC 囌
+82D5 苕 => 8280 芀
+82DF 苟 => 82B6 芶
+82E6 苦 => 7614 瘔
+82E7 苧 => 82CE 苎
+82F1 英 => 5040 偀
+8303 范 => 7BC4 範
+8306 茆 => 8305 茅
+8314 茔 => 584B 塋
+8315 茕 => 60F8 惸
+8327 茧 => 7E6D 繭
+832B 茫 => 6C52 汒
+8332 茲 => 5179 兹
+8345 荅 => 7563 畣
+8349 草 => 8278 艸
+834A 荊 => 8346 荆
+8354 荔 => 8318 茘
+8358 荘 => 5E84 庄
+8361 荡 => 6F52 潒
+8363 荣 => 6804 栄
+8365 荥 => 6ECE 滎
+8366 荦 => 7296 犖
+8367 荧 => 7192 熒
+836B 荫 => 5ED5 廕
+8373 荳 => 68AA 梪
+838A 莊 => 5E84 庄
+8395 莕 => 8347 荇
+8396 莖 => 830E 茎
+83A2 莢 => 835A 荚
+83A7 莧 => 82CB 苋
+83B7 获 => 7372 獲
+83B9 莹 => 7469 瑩
+83BD 莽 => 833B 茻
+83C7 菇 => 82FD 苽
+83CB 菋 => 82FF 苿
+83CF 菏 => 6E2E 渮
+83D3 菓 => 679C 果
+83D4 菔 => 535C 卜
+83EB 菫 => 5807 堇
+83EF 華 => 534E 华
+83F0 菰 => 82FD 苽
+83F4 菴 => 5EB5 庵
+83F7 菷 => 5E1A 帚
+83F8 菸 => 70DF 烟
+8405 萅 => 6625 春
+8407 萇 => 82CC 苌
+840A 萊 => 83B1 莱
+840E 萎 => 837D 荽
+8415 萕 => 8360 荠
+8425 营 => 55B6 営
+8426 萦 => 7E08 縈
+842C 萬 => 4E07 万
+8432 萲 => 8431 萱
+8434 萴 => 835D 荝
+8435 萵 => 83B4 莴
+8445 葅 => 83F9 菹
+8449 葉 => 53F6 叶
+844C 葌 => 83C5 菅
+8452 葒 => 836D 荭
+8457 著 => 7740 着
+8460 葠 => 53C1 叁
+8462 葢 => 76D6 盖
+8464 葤 => 836E 荮
+8466 葦 => 82C7 苇
+8467 葧 => 8378 荸
+846C 葬 => 585F 塟
+846E 葮 => 6934 椴
+846F 葯 => 836F 药
+8477 葷 => 8364 荤
+8493 蒓 => 83BC 莼
+8494 蒔 => 83B3 莳
+8499 蒙 => 61DE 懞
+849E 蒞 => 8385 莅
+84BC 蒼 => 82CD 苍
+84C0 蓀 => 836A 荪
+84C6 蓆 => 5E2D 席
+84CB 蓋 => 76D6 盖
+84D1 蓑 => 7C11 簑
+84E1 蓡 => 53C1 叁
+84EE 蓮 => 83B2 莲
+84EF 蓯 => 82C1 苁
+84F3 蓳 => 5807 堇
+84F4 蓴 => 83BC 莼
+84FA 蓺 => 517F 兿
+84FD 蓽 => 835C 荜
+8506 蔆 => 83F1 菱
+8507 蔇 => 66A8 暨
+8509 蔉 => 84D8 蓘
+850D 蔍 => 7C97 粗
+8512 蔒 => 8364 荤
+8514 蔔 => 535C 卜
+851E 蔞 => 848C 蒌
+8523 蔣 => 848B 蒋
+8525 蔥 => 8471 葱
+8526 蔦 => 8311 茑
+852D 蔭 => 5ED5 廕
+852E 蔮 => 5E3C 帼
+8531 蔱 => 699D 榝
+8534 蔴 => 6DCB 淋
+853F 蔿 => 848D 蒍
+8541 蕁 => 8368 荨
+8544 蕄 => 840C 萌
+8546 蕆 => 8487 蒇
+854A 蕊 => 6A64 橤
+854B 蕋 => 6A64 橤
+854E 蕎 => 835E 荞
+8552 蕒 => 836C 荬
+8553 蕓 => 82B8 芸
+8555 蕕 => 83B8 莸
+8558 蕘 => 835B 荛
+855A 蕚 => 843C 萼
+8562 蕢 => 8489 蒉
+8569 蕩 => 6F52 潒
+856A 蕪 => 829C 芜
+856B 蕫 => 8463 董
+856D 蕭 => 8427 萧
+8571 蕱 => 7A0D 稍
+8577 蕷 => 84E3 蓣
+8580 薀 => 8570 蕰
+8588 薈 => 835F 荟
+8589 薉 => 79FD 秽
+858A 薊 => 84DF 蓟
+858C 薌 => 8297 芗
+858E 薎 => 8511 蔑
+8591 薑 => 59DC 姜
+8594 薔 => 8537 蔷
+8598 薘 => 8359 荙
+8599 薙 => 5243 剃
+859E 薞 => 8575 蕵
+859F 薟 => 83B6 莶
+85A6 薦 => 8350 荐
+85A9 薩 => 8428 萨
+85AC 薬 => 836F 药
+85AE 薮 => 7C54 籔
+85B0 薰 => 85AB 薫
+85BA 薺 => 8360 荠
+85C2 藂 => 4E1B 丛
+85C9 藉 => 501F 借
+85CD 藍 => 84DD 蓝
+85CE 藎 => 8369 荩
+85CF 藏 => 8535 蔵
+85D5 藕 => 8545 蕅
+85DC 藜 => 853E 蔾
+85DD 藝 => 517F 兿
+85E1 藡 => 837B 荻
+85E4 藤 => 7C50 籐
+85E5 藥 => 836F 药
+85E9 藩 => 7C53 籓
+85EA 藪 => 7C54 籔
+85ED 藭 => 44D6 䓖
+85F4 藴 => 8574 蕴
+85F6 藶 => 82C8 苈
+85F7 藷 => 85AF 薯
+85F8 藸 => 854F 蕏
+85F9 藹 => 853C 蔼
+85FA 藺 => 853A 蔺
+85FD 藽 => 6987 榇
+8600 蘀 => 841A 萚
+8602 蘂 => 6A64 橤
+8604 蘄 => 8572 蕲
+8606 蘆 => 82A6 芦
+8607 蘇 => 56CC 囌
+860A 蘊 => 8574 蕴
+860B 蘋 => 82F9 苹
+8613 蘓 => 56CC 囌
+8614 蘔 => 860F 蘏
+8616 蘖 => 6AF1 櫱
+8617 蘗 => 6A97 檗
+861A 蘚 => 85D3 藓
+861C 蘜 => 83CA 菊
+861E 蘞 => 8539 蔹
+8622 蘢 => 830F 茏
+8624 蘤 => 82B1 花
+862D 蘭 => 5170 兰
+862F 蘯 => 6F52 潒
+863A 蘺 => 84E0 蓠
+863D 蘽 => 6AD0 櫐
+863F 蘿 => 841D 萝
+8641 虁 => 8637 蘷
+8651 虑 => 616E 慮
+8655 處 => 5904 处
+8656 虖 => 547C 呼
+865B 虛 => 865A 虚
+865C 虜 => 864F 虏
+865F 號 => 53F7 号
+8663 虣 => 66B4 暴
+8667 虧 => 4E8F 亏
+866F 虯 => 866C 虬
+867A 虺 => 862C 蘬
+868C 蚌 => 7865 硥
+8698 蚘 => 75D0 痐
+86B3 蚳 => 8694 蚔
+86CC 蛌 => 86C4 蛄
+86D4 蛔 => 75D0 痐
+86EC 蛬 => 86E9 蛩
+86FA 蛺 => 86F1 蛱
+8704 蜄 => 8703 蜃
+8706 蜆 => 86AC 蚬
+8712 蜒 => 8711 蜑
+8715 蜕 => 86FB 蛻
+8716 蜖 => 75D0 痐
+8717 蜗 => 7611 瘑
+8719 蜙 => 86A3 蚣
+8739 蜹 => 868B 蚋
+873A 蜺 => 86EA 蛪
+8755 蝕 => 8680 蚀
+875F 蝟 => 732C 猬
+8766 蝦 => 867E 虾
+8768 蝨 => 8671 虱
+876F 蝯 => 733F 猿
+8773 蝳 => 73B3 玳
+8776 蝶 => 8728 蜨
+8778 蝸 => 7611 瘑
+8782 螂 => 870B 蜋
+8784 螄 => 86F3 蛳
+8798 螘 => 8681 蚁
+879E 螞 => 8682 蚂
+87A1 螡 => 868A 蚊
+87A2 螢 => 8424 萤
+87B3 螳 => 8797 螗
+87BB 螻 => 877C 蝼
+87BF 螿 => 8780 螀
+87C1 蟁 => 868A 蚊
+87C4 蟄 => 86F0 蛰
+87C7 蟇 => 87C6 蟆
+87C8 蟈 => 8748 蝈
+87CE 蟎 => 87A8 螨
+87E3 蟣 => 866E 虮
+87EC 蟬 => 8749 蝉
+87EF 蟯 => 86F2 蛲
+87F2 蟲 => 866B 虫
+87F6 蟶 => 86CF 蛏
+87FB 蟻 => 8681 蚁
+8801 蠁 => 8683 蚃
+8805 蠅 => 8747 蝇
+8806 蠆 => 867F 虿
+880D 蠍 => 874E 蝎
+880E 蠎 => 87D2 蟒
+880F 蠏 => 87F9 蟹
+8810 蠐 => 86F4 蛴
+8811 蠑 => 877E 蝾
+8814 蠔 => 869D 蚝
+8815 蠕 => 8761 蝡
+881F 蠟 => 8721 蜡
+8822 蠢 => 60F7 惷
+8823 蠣 => 86CE 蛎
+8828 蠨 => 87CF 蟏
+8829 蠩 => 876B 蝫
+882B 蠫 => 5299 劙
+8831 蠱 => 86CA 蛊
+8836 蠶 => 8695 蚕
+8839 蠹 => 8827 蠧
+883B 蠻 => 86EE 蛮
+883C 蠼 => 8837 蠷
+8844 衄 => 8842 衂
+8846 衆 => 4F17 众
+884A 衊 => 8511 蔑
+8853 術 => 672E 朮
+8854 衔 => 5563 啣
+8855 衕 => 4EDD 仝
+8856 衖 => 5F04 弄
+885A 衚 => 80E1 胡
+885B 衛 => 536B 卫
+885D 衝 => 51B2 冲
+885E 衞 => 536B 卫
+8869 衩 => 7D01 紁
+886E 衮 => 7DF7 緷
+8876 衶 => 51B2 冲
+8879 衹 => 53EA 只
+8885 袅 => 5ACB 嫋
+8888 袈 => 6BE0 毠
+888D 袍 => 888C 袌
+8898 袘 => 886A 衪
+889E 袞 => 7DF7 緷
+889F 袟 => 5E19 帙
+88CA 裊 => 5ACB 嫋
+88CC 裌 => 5939 夹
+88D5 裕 => 88AC 袬
+88D9 裙 => 5E2C 帬
+88DC 補 => 8865 补
+88DD 裝 => 88C5 装
+88E0 裠 => 5E2C 帬
+88E1 裡 => 88CF 裏
+88E4 裤 => 88B4 袴
+88F5 裵 => 88F4 裴
+88F8 裸 => 81DD 臝
+88FD 製 => 5236 制
+8900 褀 => 5E3A 帺
+8901 褁 => 88F9 裹
+8907 複 => 590D 复
+890A 褊 => 60FC 惼
+890C 褌 => 88C8 裈
+890E 褎 => 8896 袖
+8914 褔 => 526F 副
+8918 褘 => 8886 袆
+891E 褞 => 7DFC 緼
+8922 褢 => 6000 怀
+892D 褭 => 5ACB 嫋
+8931 褱 => 6000 怀
+8932 褲 => 88B4 袴
+8933 褳 => 88E2 裢
+8934 褴 => 7E7F 繿
+8935 褵 => 7E2D 縭
+8938 褸 => 891B 褛
+893B 褻 => 4EB5 亵
+8943 襃 => 8912 褒
+8947 襇 => 88E5 裥
+8949 襉 => 88E5 裥
+894F 襏 => 88AF 袯
+8955 襕 => 5E71 幱
+8956 襖 => 8884 袄
+895D 襝 => 88E3 裣
+8960 襠 => 88C6 裆
+8962 襢 => 8892 袒
+8964 襤 => 7E7F 繿
+896A 襪 => 889C 袜
+896C 襬 => 6446 摆
+896F 襯 => 886C 衬
+8972 襲 => 88AD 袭
+8974 襴 => 5E71 幱
+8980 覀 => 897E 襾
+8986 覆 => 590D 复
+8988 覈 => 6838 核
+8989 覉 => 7F81 羁
+898A 覊 => 7F81 羁
+898F 規 => 691D 椝
+8995 覕 => 77A5 瞥
+899A 覚 => 658D 斍
+899C 覜 => 773A 眺
+899D 覝 => 4EB7 亷
+89AA 親 => 4EB2 亲
+89B3 観 => 898C 覌
+89B8 覸 => 89B5 覵
+89BA 覺 => 658D 斍
+89BD 覽 => 89A7 覧
+89C0 觀 => 898C 覌
+89C1 见 => 898B 見
+89C2 观 => 898C 覌
+89C3 觃 => 898E 覎
+89C4 规 => 691D 椝
+89C5 觅 => 8993 覓
+89C6 视 => 8996 視
+89C7 觇 => 8998 覘
+89C8 览 => 89A7 覧
+89C9 觉 => 658D 斍
+89CA 觊 => 89AC 覬
+89CB 觋 => 89A1 覡
+89CC 觌 => 89BF 覿
+89CD 觍 => 89A5 覥
+89CE 觎 => 89A6 覦
+89CF 觏 => 89AF 覯
+89D0 觐 => 89B2 覲
+89D1 觑 => 89B7 覷
+89D4 觔 => 65A4 斤
+89D5 觕 => 7C97 粗
+89D9 觙 => 4F0B 伋
+89DD 觝 => 627A 扺
+89E7 觧 => 89E3 解
+89F2 觲 => 89EA 觪
+89F4 觴 => 89DE 觞
+89F6 觶 => 89EF 觯
+89F8 觸 => 89E6 触
+89FE 觾 => 71D5 燕
+8A01 訁 => 8A00 言
+8A17 託 => 6258 托
+8A1E 訞 => 46B6 䚶
+8A22 訢 => 4723 䜣
+8A27 訧 => 5C24 尤
+8A29 訩 => 54C5 哅
+8A34 訴 => 612C 愬
+8A36 訶 => 5475 呵
+8A3B 註 => 6CE8 注
+8A3F 訿 => 8A3E 訾
+8A46 詆 => 5467 呧
+8A60 詠 => 548F 咏
+8A67 詧 => 5BDF 察
+8A6B 詫 => 4F98 侘
+8A7B 詻 => 54AF 咯
+8A7D 詽 => 8A2E 訮
+8A87 誇 => 5938 夸
+8A8B 誋 => 5FCC 忌
+8A8C 誌 => 5FD7 志
+8A92 誒 => 6B38 欸
+8A96 誖 => 6096 悖
+8AA4 誤 => 609E 悞
+8AAC 説 => 8AAA 說
+8ABE 誾 => 8A1A 訚
+8AC4 諄 => 8A30 訰
+8AC5 諅 => 5FCC 忌
+8AD9 諙 => 8A71 話
+8AE0 諠 => 5405 吅
+8AEB 諫 => 8ACC 諌
+8AEE 諮 => 54A8 咨
+8AF5 諵 => 5583 喃
+8B04 謄 => 8A8A 誊
+8B15 謕 => 557C 啼
+8B1A 謚 => 8AE1 諡
+8B21 謡 => 8B20 謠
+8B2A 謪 => 5546 商
+8B2F 謯 => 8A5B 詛
+8B36 謶 => 5EB6 庶
+8B3C 謼 => 547C 呼
+8B41 譁 => 54D7 哗
+8B46 譆 => 563B 嘻
+8B48 譈 => 619D 憝
+8B49 證 => 8A3C 証
+8B4C 譌 => 8A1B 訛
+8B4D 譍 => 5E94 应
+8B4E 譎 => 564A 噊
+8B50 譐 => 5642 噂
+8B51 譑 => 6322 挢
+8B54 譔 => 64B0 撰
+8B55 譕 => 8B28 謨
+8B5C 譜 => 8AE9 諩
+8B5F 譟 => 566A 噪
+8B6A 譪 => 853C 蔼
+8B6D 譭 => 6BC0 毀
+8B71 譱 => 5584 善
+8B77 護 => 62A4 护
+8B79 譹 => 53F7 号
+8B7B 譻 => 5624 嘤
+8B7D 譽 => 8A89 誉
+8B7E 譾 => 8B2D 謭
+8B7F 譿 => 6167 慧
+8B8A 變 => 53D8 变
+8B8B 讋 => 8A5F 詟
+8B8C 讌 => 4729 䜩
+8B8E 讎 => 4EC7 仇
+8B8F 讏 => 8B86 讆
+8B90 讐 => 4EC7 仇
+8B95 讕 => 8B4B 譋
+8B99 讙 => 61FD 懽
+8B9A 讚 => 8B83 讃
+8BA0 讠 => 8A00 言
+8BA1 计 => 8A08 計
+8BA2 订 => 8A02 訂
+8BA3 讣 => 8A03 訃
+8BA4 认 => 8A8D 認
+8BA5 讥 => 8B4F 譏
+8BA6 讦 => 8A10 訐
+8BA7 讧 => 8A0C 訌
+8BA8 讨 => 8A0E 討
+8BA9 让 => 8B93 讓
+8BAA 讪 => 8A15 訕
+8BAB 讫 => 8A16 訖
+8BAC 讬 => 6258 托
+8BAD 训 => 8A13 訓
+8BAE 议 => 8B70 議
+8BAF 讯 => 8A0A 訊
+8BB0 记 => 8A18 記
+8BB1 讱 => 8A12 訒
+8BB2 讲 => 8B1B 講
+8BB3 讳 => 8AF1 諱
+8BB4 讴 => 8B33 謳
+8BB5 讵 => 8A4E 詎
+8BB6 讶 => 8A1D 訝
+8BB7 讷 => 8A25 訥
+8BB8 许 => 8A31 許
+8BB9 讹 => 8A1B 訛
+8BBA 论 => 8AD6 論
+8BBB 讻 => 54C5 哅
+8BBC 讼 => 8A1F 訟
+8BBD 讽 => 8AF7 諷
+8BBE 设 => 8A2D 設
+8BBF 访 => 8A2A 訪
+8BC0 诀 => 8A23 訣
+8BC1 证 => 8A3C 証
+8BC2 诂 => 8A41 詁
+8BC3 诃 => 5475 呵
+8BC4 评 => 8A55 評
+8BC5 诅 => 8A5B 詛
+8BC6 识 => 8B58 識
+8BC7 诇 => 8A57 詗
+8BC8 诈 => 8A50 詐
+8BC9 诉 => 612C 愬
+8BCA 诊 => 8A3A 診
+8BCB 诋 => 5467 呧
+8BCC 诌 => 8B05 謅
+8BCD 词 => 8A5E 詞
+8BCE 诎 => 8A58 詘
+8BCF 诏 => 8A54 詔
+8BD0 诐 => 8A56 詖
+8BD1 译 => 8B6F 譯
+8BD2 诒 => 8A52 詒
+8BD3 诓 => 8A86 誆
+8BD4 诔 => 8A84 誄
+8BD5 试 => 8A66 試
+8BD6 诖 => 8A7F 詿
+8BD7 诗 => 8A69 詩
+8BD8 诘 => 8A70 詰
+8BD9 诙 => 8A7C 詼
+8BDA 诚 => 8AA0 誠
+8BDB 诛 => 8A85 誅
+8BDC 诜 => 8A75 詵
+8BDD 话 => 8A71 話
+8BDE 诞 => 8A95 誕
+8BDF 诟 => 8A6C 詬
+8BE0 诠 => 8A6E 詮
+8BE1 诡 => 8A6D 詭
+8BE2 询 => 8A62 詢
+8BE3 诣 => 8A63 詣
+8BE4 诤 => 8ACD 諍
+8BE5 该 => 8A72 該
+8BE6 详 => 8A73 詳
+8BE7 诧 => 4F98 侘
+8BE8 诨 => 8AE2 諢
+8BE9 诩 => 8A61 詡
+8BEA 诪 => 8B78 譸
+8BEB 诫 => 8AA1 誡
+8BEC 诬 => 8AA3 誣
+8BED 语 => 8A9E 語
+8BEE 诮 => 8A9A 誚
+8BEF 误 => 609E 悞
+8BF0 诰 => 8AA5 誥
+8BF1 诱 => 8A98 誘
+8BF2 诲 => 8AA8 誨
+8BF3 诳 => 8A91 誑
+8BF4 说 => 8AAA 說
+8BF5 诵 => 8AA6 誦
+8BF6 诶 => 6B38 欸
+8BF7 请 => 8ACB 請
+8BF8 诸 => 8AF8 諸
+8BF9 诹 => 8ACF 諏
+8BFA 诺 => 8AFE 諾
+8BFB 读 => 8B80 讀
+8BFC 诼 => 8AD1 諑
+8BFD 诽 => 8AB9 誹
+8BFE 课 => 8AB2 課
+8BFF 诿 => 8AC9 諉
+8C00 谀 => 8ADB 諛
+8C01 谁 => 8AB0 誰
+8C02 谂 => 8AD7 諗
+8C03 调 => 8ABF 調
+8C04 谄 => 8AC2 諂
+8C05 谅 => 8AD2 諒
+8C06 谆 => 8A30 訰
+8C07 谇 => 8AB6 誶
+8C08 谈 => 8AC7 談
+8C09 谉 => 8B85 讅
+8C0A 谊 => 8ABC 誼
+8C0B 谋 => 8B00 謀
+8C0C 谌 => 8AF6 諶
+8C0D 谍 => 8ADC 諜
+8C0E 谎 => 8B0A 謊
+8C0F 谏 => 8ACC 諌
+8C10 谐 => 8AE7 諧
+8C11 谑 => 8B14 謔
+8C12 谒 => 8B01 謁
+8C13 谓 => 8B02 謂
+8C14 谔 => 8AE4 諤
+8C15 谕 => 8AED 諭
+8C16 谖 => 8AFC 諼
+8C17 谗 => 8B92 讒
+8C18 谘 => 54A8 咨
+8C19 谙 => 8AF3 諳
+8C1A 谚 => 8AFA 諺
+8C1B 谛 => 8AE6 諦
+8C1C 谜 => 8B0E 謎
+8C1D 谝 => 8ADE 諞
+8C1E 谞 => 8ADD 諝
+8C1F 谟 => 8B28 謨
+8C20 谠 => 8B9C 讜
+8C21 谡 => 8B16 謖
+8C22 谢 => 8B1D 謝
+8C23 谣 => 8B20 謠
+8C24 谤 => 8B17 謗
+8C25 谥 => 8AE1 諡
+8C26 谦 => 8B19 謙
+8C27 谧 => 8B10 謐
+8C28 谨 => 8B39 謹
+8C29 谩 => 8B3E 謾
+8C2A 谪 => 8B2B 謫
+8C2B 谫 => 8B2D 謭
+8C2C 谬 => 8B2C 謬
+8C2D 谭 => 8B5A 譚
+8C2E 谮 => 8B56 譖
+8C2F 谯 => 8B59 譙
+8C30 谰 => 8B4B 譋
+8C31 谱 => 8AE9 諩
+8C32 谲 => 564A 噊
+8C33 谳 => 8B9E 讞
+8C34 谴 => 8B74 譴
+8C35 谵 => 8B6B 譫
+8C36 谶 => 8B96 讖
+8C37 谷 => 7A40 穀
+8C3F 谿 => 6EAA 溪
+8C46 豆 => 68AA 梪
+8C48 豈 => 5C82 岂
+8C4A 豊 => 4E30 丰
+8C4B 豋 => 767B 登
+8C4E 豎 => 7AD6 竖
+8C50 豐 => 4E30 丰
+8C54 豔 => 8273 艳
+8C57 豗 => 62FB 拻
+8C61 象 => 50CF 像
+8C63 豣 => 8C5C 豜
+8C6C 豬 => 732A 猪
+8C76 豶 => 8C6E 豮
+8C7A 豺 => 72B2 犲
+8C89 貉 => 72E2 狢
+8C8C 貌 => 7683 皃
+8C8D 貍 => 72F8 狸
+8C93 貓 => 732B 猫
+8C9C 貜 => 7383 玃
+8CAE 貮 => 4E8C 二
+8CB3 貳 => 4E8C 二
+8CB7 買 => 4E70 买
+8CC9 賉 => 5379 卹
+8CCA 賊 => 621D 戝
+8CCC 賌 => 8CC5 賅
+8CD3 賓 => 5BBE 宾
+8CD4 賔 => 5BBE 宾
+8CD7 賗 => 4E32 串
+8CDB 賛 => 8B83 讃
+8CDD 賝 => 741B 琛
+8CE3 賣 => 5356 卖
+8CEA 質 => 8CAD 貭
+8CEC 賬 => 5E10 帐
+8CF8 賸 => 5269 剩
+8D0A 贊 => 8B83 讃
+8D10 贐 => 8CEE 賮
+8D17 贗 => 8D0B 贋
+8D1B 贛 => 7068 灨
+8D1C 贜 => 8D13 贓
+8D1D 贝 => 8C9D 貝
+8D1E 贞 => 8C9E 貞
+8D1F 负 => 8CA0 負
+8D20 贠 => 8C9F 貟
+8D21 贡 => 8CA2 貢
+8D22 财 => 8CA1 財
+8D23 责 => 8CAC 責
+8D24 贤 => 8CE2 賢
+8D25 败 => 6557 敗
+8D26 账 => 5E10 帐
+8D27 货 => 8CA8 貨
+8D28 质 => 8CAD 貭
+8D29 贩 => 8CA9 販
+8D2A 贪 => 8CAA 貪
+8D2B 贫 => 8CA7 貧
+8D2C 贬 => 8CB6 貶
+8D2D 购 => 8CFC 購
+8D2E 贮 => 8CAF 貯
+8D2F 贯 => 8CAB 貫
+8D30 贰 => 4E8C 二
+8D31 贱 => 8CE4 賤
+8D32 贲 => 8CC1 賁
+8D33 贳 => 8CB0 貰
+8D34 贴 => 8CBC 貼
+8D35 贵 => 8CB4 貴
+8D36 贶 => 8CBA 貺
+8D37 贷 => 8CB8 貸
+8D38 贸 => 8CBF 貿
+8D39 费 => 8CBB 費
+8D3A 贺 => 8CC0 賀
+8D3B 贻 => 8CBD 貽
+8D3C 贼 => 621D 戝
+8D3D 贽 => 8D04 贄
+8D3E 贾 => 8CC8 賈
+8D3F 贿 => 8CC4 賄
+8D40 赀 => 8CB2 貲
+8D41 赁 => 8CC3 賃
+8D42 赂 => 8CC2 賂
+8D43 赃 => 8D13 贓
+8D44 资 => 8CC7 資
+8D45 赅 => 8CC5 賅
+8D46 赆 => 8CEE 賮
+8D47 赇 => 8CD5 賕
+8D48 赈 => 8CD1 賑
+8D49 赉 => 8CDA 賚
+8D4A 赊 => 8CD2 賒
+8D4B 赋 => 8CE6 賦
+8D4C 赌 => 8CED 賭
+8D4D 赍 => 8CEB 賫
+8D4E 赎 => 8D16 贖
+8D4F 赏 => 8CDE 賞
+8D50 赐 => 8CDC 賜
+8D51 赑 => 8D14 贔
+8D52 赒 => 8CD9 賙
+8D53 赓 => 8CE1 賡
+8D54 赔 => 8CE0 賠
+8D55 赕 => 8CE7 賧
+8D56 赖 => 8CF4 賴
+8D57 赗 => 8CF5 賵
+8D58 赘 => 8D05 贅
+8D59 赙 => 8CFB 賻
+8D5A 赚 => 8CFA 賺
+8D5B 赛 => 8CFD 賽
+8D5C 赜 => 8CFE 賾
+8D5D 赝 => 8D0B 贋
+8D5E 赞 => 8B83 讃
+8D5F 赟 => 8D07 贇
+8D60 赠 => 8D08 贈
+8D61 赡 => 8D0D 贍
+8D62 赢 => 8D0F 贏
+8D63 赣 => 7068 灨
+8D6A 赪 => 7AC0 竀
+8D6C 赬 => 7AC0 竀
+8D71 赱 => 8D70 走
+8D82 趂 => 8D81 趁
+8D86 趆 => 8D7F 赿
+8D8D 趍 => 8D8B 趋
+8D95 趕 => 8D76 赶
+8D99 趙 => 8D75 赵
+8DA8 趨 => 8D8B 趋
+8DB2 趲 => 8DB1 趱
+8DF3 跳 => 8D92 趒
+8DFA 跺 => 8DE5 跥
+8DFC 跼 => 4FB7 侷
+8E08 踈 => 758F 疏
+8E10 踐 => 8DF5 践
+8E19 踙 => 8E02 踂
+8E21 踡 => 8737 蜷
+8E23 踣 => 6B95 殕
+8E29 踩 => 8DF4 跴
+8E2A 踪 => 8E28 踨
+8E2B 踫 => 63BD 掽
+8E34 踴 => 8E0A 踊
+8E42 蹂 => 79B8 禸
+8E4C 蹌 => 8DC4 跄
+8E54 蹔 => 6682 暂
+8E55 蹕 => 8DF8 跸
+8E56 蹖 => 6869 桩
+8E5A 蹚 => 8D9F 趟
+8E5E 蹞 => 8DEC 跬
+8E5F 蹟 => 8DE1 跡
+8E60 蹠 => 8DD6 跖
+8E63 蹣 => 8E52 蹒
+8E64 蹤 => 8E28 踨
+8E67 蹧 => 7CDF 糟
+8E6F 蹯 => 756A 番
+8E72 蹲 => 58AB 墫
+8E7A 蹺 => 8DF7 跷
+8E7B 蹻 => 8DF7 跷
+8E81 躁 => 8DAE 趮
+8E82 躂 => 8DF6 跶
+8E89 躉 => 8DB8 趸
+8E8A 躊 => 8E0C 踌
+8E8B 躋 => 8DFB 跻
+8E8D 躍 => 8DC3 跃
+8E91 躑 => 8E2F 踯
+8E92 躒 => 8DDE 跞
+8E93 躓 => 8E2C 踬
+8E95 躕 => 8E70 蹰
+8E9A 躚 => 8DF9 跹
+8E9B 躛 => 8E97 躗
+8EA1 躡 => 8E51 蹑
+8EA5 躥 => 8E7F 蹿
+8EA6 躦 => 8E9C 躜
+8EAA 躪 => 8E8F 躏
+8EAD 躭 => 803D 耽
+8EB0 躰 => 4F53 体
+8EB2 躲 => 8EB1 躱
+8EC0 軀 => 8EAF 躯
+8EC6 軆 => 4F53 体
+8ECD 軍 => 519B 军
+8EDB 軛 => 6799 枙
+8EE0 軠 => 8ED6 軖
+8EF2 軲 => 6BC2 毂
+8EF6 軶 => 6799 枙
+8F13 輓 => 633D 挽
+8F15 輕 => 8EFD 軽
+8F27 輧 => 8EFF 軿
+8F3F 輿 => 8206 舆
+8F40 轀 => 8F3C 輼
+8F42 轂 => 6BC2 毂
+8F4F 轏 => 6808 栈
+8F5D 轝 => 8206 舆
+8F5E 轞 => 69DB 槛
+8F66 车 => 8ECA 車
+8F67 轧 => 8ECB 軋
+8F68 轨 => 8ECC 軌
+8F69 轩 => 8ED2 軒
+8F6A 轪 => 8ED1 軑
+8F6B 轫 => 8ED4 軔
+8F6C 转 => 8F49 轉
+8F6D 轭 => 6799 枙
+8F6E 轮 => 8F2A 輪
+8F6F 软 => 8EDF 軟
+8F70 轰 => 8F5F 轟
+8F71 轱 => 6BC2 毂
+8F72 轲 => 8EFB 軻
+8F73 轳 => 8F64 轤
+8F74 轴 => 8EF8 軸
+8F75 轵 => 8EF9 軹
+8F76 轶 => 8EFC 軼
+8F77 轷 => 8EE4 軤
+8F78 轸 => 8EEB 軫
+8F79 轹 => 8F62 轢
+8F7A 轺 => 8EFA 軺
+8F7B 轻 => 8EFD 軽
+8F7C 轼 => 8EFE 軾
+8F7D 载 => 8F09 載
+8F7E 轾 => 8F0A 輊
+8F7F 轿 => 8F4E 轎
+8F80 辀 => 8F08 輈
+8F81 辁 => 8F07 輇
+8F82 辂 => 8F05 輅
+8F83 较 => 8F03 較
+8F84 辄 => 8F12 輒
+8F85 辅 => 8F14 輔
+8F86 辆 => 8F1B 輛
+8F87 辇 => 8F26 輦
+8F88 辈 => 8F29 輩
+8F89 辉 => 8F1D 輝
+8F8A 辊 => 8F25 輥
+8F8B 辋 => 8F1E 輞
+8F8C 辌 => 8F2C 輬
+8F8D 辍 => 8F1F 輟
+8F8E 辎 => 8F1C 輜
+8F8F 辏 => 8F33 輳
+8F90 辐 => 8F3B 輻
+8F91 辑 => 8F2F 輯
+8F92 辒 => 8F3C 輼
+8F93 输 => 8F38 輸
+8F94 辔 => 8F61 轡
+8F95 辕 => 8F45 轅
+8F96 辖 => 8F44 轄
+8F97 辗 => 8F3E 輾
+8F98 辘 => 8F46 轆
+8F99 辙 => 8F4D 轍
+8F9A 辚 => 8F54 轔
+8FA0 辠 => 7F6A 罪
+8FA3 辣 => 8FA2 辢
+8FA6 辦 => 529E 办
+8FA7 辧 => 529E 办
+8FA8 辨 => 529E 办
+8FAD 辭 => 8F9E 辞
+8FAE 辮 => 8FAB 辫
+8FAF 辯 => 8FA9 辩
+8FB2 農 => 519C 农
+8FD6 迖 => 8FBE 达
+8FE1 迡 => 8FDF 迟
+8FE4 迤 => 8FC6 迆
+8FEA 迪 => 5EF8 廸
+8FEC 迬 => 5F80 往
+8FED 迭 => 53E0 叠
+8FF3 迳 => 5F84 径
+8FF4 迴 => 56D8 囘
+8FF9 迹 => 8DE1 跡
+8FFA 迺 => 4E43 乃
+8FFB 迻 => 79FB 移
+9003 逃 => 8FEF 迯
+9008 逈 => 8FE5 迥
+900A 逊 => 613B 愻
+900C 逌 => 6538 攸
+9013 逓 => 9012 递
+9015 逕 => 5F84 径
+9019 這 => 8FD9 这
+9023 連 => 8FDE 连
+9025 逥 => 56D8 囘
+9029 逩 => 5954 奔
+902E 逮 => 8FE8 迨
+9030 逰 => 6E38 游
+9031 週 => 5468 周
+9032 進 => 8FDB 进
+9038 逸 => 52AE 劮
+903A 逺 => 8FDC 远
+903E 逾 => 8E30 踰
+9045 遅 => 8FDF 迟
+9049 遉 => 4FA6 侦
+904A 遊 => 6E38 游
+904B 運 => 8FD0 运
+904D 遍 => 5FA7 徧
+904E 過 => 8FC7 过
+9051 遑 => 5FA8 徨
+9054 達 => 8FBE 达
+9055 違 => 8FDD 违
+905C 遜 => 613B 愻
+905E 遞 => 9012 递
+905F 遟 => 8FDF 迟
+9060 遠 => 8FDC 远
+9061 遡 => 6CDD 泝
+9065 遥 => 9059 遙
+9067 遧 => 7AE0 章
+9069 適 => 9002 适
+906F 遯 => 9041 遁
+9072 遲 => 8FDF 迟
+9073 遳 => 77EC 矬
+9076 遶 => 7E5E 繞
+9077 遷 => 8FC1 迁
+9078 選 => 9009 选
+907A 遺 => 9057 遗
+907C 遼 => 8FBD 辽
+907F 避 => 8F9F 辟
+9081 邁 => 8FC8 迈
+9084 還 => 8FD8 还
+9087 邇 => 8FE9 迩
+9089 邉 => 8FB9 边
+908A 邊 => 8FB9 边
+908D 邍 => 539F 原
+908F 邏 => 903B 逻
+9090 邐 => 9026 逦
+90A8 邨 => 6751 村
+90C1 郁 => 6B1D 欝
+90C9 郉 => 90A2 邢
+90D8 郘 => 5415 吕
+90DE 郞 => 90CE 郎
+90DF 郟 => 90CF 郏
+90E3 郣 => 6E24 渤
+90ED 郭 => 588E 墎
+90F2 郲 => 83B1 莱
+90F5 郵 => 90AE 邮
+90F7 郷 => 4E61 乡
+9101 鄁 => 90B6 邶
+9103 鄃 => 4FDE 俞
+9106 鄆 => 90D3 郓
+9109 鄉 => 4E61 乡
+9112 鄒 => 90B9 邹
+9114 鄔 => 90AC 邬
+9115 鄕 => 4E61 乡
+9116 鄖 => 90E7 郧
+9126 鄦 => 8A31 許
+9127 鄧 => 9093 邓
+912D 鄭 => 90D1 郑
+9130 鄰 => 90BB 邻
+9132 鄲 => 90F8 郸
+9134 鄴 => 90BA 邺
+9136 鄶 => 90D0 郐
+9139 鄹 => 90F0 郰
+913A 鄺 => 909D 邝
+9146 酆 => 9137 鄷
+9147 酇 => 9142 酂
+9148 酈 => 90E6 郦
+9149 酉 => 4E23 丣
+9167 酧 => 8A76 詶
+916C 酬 => 8A76 詶
+9183 醃 => 814C 腌
+9186 醆 => 7416 琖
+9189 醉 => 9154 酔
+918B 醋 => 9162 酢
+9196 醖 => 915D 酝
+919C 醜 => 4E11 丑
+919E 醞 => 915D 酝
+91A1 醡 => 643E 搾
+91AB 醫 => 533B 医
+91AC 醬 => 9171 酱
+91B1 醱 => 9166 酦
+91BB 醻 => 8A76 詶
+91BC 醼 => 5BB4 宴
+91C0 釀 => 917F 酿
+91C1 釁 => 8845 衅
+91C3 釃 => 917E 酾
+91C5 釅 => 917D 酽
+91C6 釆 => 529E 办
+91C7 采 => 63A1 採
+91CB 釋 => 91CA 释
+91CC 里 => 88CF 裏
+91CD 重 => 7DDF 緟
+91CE 野 => 57DC 埜
+91D0 釐 => 5398 厘
+91D2 釒 => 91D1 金
+91E6 釦 => 6263 扣
+91EC 釬 => 710A 焊
+91FE 釾 => 497A 䥺
+9221 鈡 => 87A4 螤
+9245 鉅 => 5DE8 巨
+924C 鉌 => 548C 和
+9257 鉗 => 62D1 拑
+925B 鉛 => 9206 鈆
+9262 鉢 => 7F3D 缽
+9264 鉤 => 920E 鈎
+929C 銜 => 5563 啣
+92B2 銲 => 710A 焊
+92E4 鋤 => 8021 耡
+92EA 鋪 => 8216 舖
+92ED 鋭 => 92B3 銳
+92FA 鋺 => 7897 碗
+9304 錄 => 5F54 彔
+9322 錢 => 92AD 銭
+9332 録 => 5F54 彔
+9336 錶 => 8868 表
+933C 錼 => 637A 捺
+933D 錽 => 92C4 鋄
+934A 鍊 => 70BC 炼
+935B 鍛 => 7145 煅
+9364 鍤 => 81FF 臿
+937E 鍾 => 87A4 螤
+938C 鎌 => 5286 劆
+9394 鎔 => 7194 熔
+9399 鎙 => 77DF 矟
+939A 鎚 => 9318 錘
+93A3 鎣 => 84E5 蓥
+93AE 鎮 => 93AD 鎭
+93B0 鎰 => 8CF9 賹
+93C1 鏁 => 9396 鎖
+93C4 鏄 => 939B 鎛
+93C7 鏇 => 65CB 旋
+93CE 鏎 => 6BD5 毕
+93D7 鏗 => 935E 鍞
+93DF 鏟 => 522C 刬
+93E8 鏨 => 933E 錾
+93EC 鏬 => 7F45 罅
+93F0 鏰 => 930B 錋
+93FA 鏺 => 497D 䥽
+93FD 鏽 => 92B9 銹
+9400 鐀 => 532E 匮
+9409 鐉 => 9246 鉆
+940A 鐊 => 935A 鍚
+9411 鐑 => 9365 鍥
+9418 鐘 => 87A4 螤
+9425 鐥 => 4985 䦅
+942A 鐪 => 93C0 鏀
+942B 鐫 => 93B8 鎸
+942E 鐮 => 5286 劆
+942F 鐯 => 4983 䦃
+9431 鐱 => 5251 剑
+9435 鐵 => 9295 銕
+9437 鐷 => 9371 鍱
+9444 鑄 => 92F3 鋳
+9451 鑑 => 9274 鉴
+9452 鑒 => 9274 鉴
+945B 鑛 => 77FF 矿
+9464 鑤 => 5228 刨
+9468 鑨 => 783B 砻
+946A 鑪 => 7089 炉
+946E 鑮 => 939B 鎛
+946F 鑯 => 5C16 尖
+9470 鑰 => 9205 鈅
+9473 鑳 => 9375 鍵
+9475 鑵 => 7F50 罐
+947D 鑽 => 9246 鉆
+947E 鑾 => 92AE 銮
+947F 鑿 => 51FF 凿
+9481 钁 => 4986 䦆
+9482 钂 => 93B2 鎲
+9485 钅 => 91D1 金
+9486 钆 => 91D3 釓
+9487 钇 => 91D4 釔
+9488 针 => 91DD 針
+9489 钉 => 91D8 釘
+948A 钊 => 91D7 釗
+948B 钋 => 91D9 釙
+948C 钌 => 91D5 釕
+948D 钍 => 91F7 釷
+948E 钎 => 91FA 釺
+948F 钏 => 91E7 釧
+9490 钐 => 91E4 釤
+9491 钑 => 9212 鈒
+9492 钒 => 91E9 釩
+9493 钓 => 91E3 釣
+9494 钔 => 9346 鍆
+9495 钕 => 91F9 釹
+9496 钖 => 935A 鍚
+9497 钗 => 91F5 釵
+9498 钘 => 9203 鈃
+9499 钙 => 9223 鈣
+949A 钚 => 9208 鈈
+949B 钛 => 9226 鈦
+949C 钜 => 5DE8 巨
+949D 钝 => 920D 鈍
+949E 钞 => 9214 鈔
+949F 钟 => 87A4 螤
+94A0 钠 => 9209 鈉
+94A1 钡 => 92C7 鋇
+94A2 钢 => 92FC 鋼
+94A3 钣 => 9211 鈑
+94A4 钤 => 9210 鈐
+94A5 钥 => 9205 鈅
+94A6 钦 => 6B3D 欽
+94A7 钧 => 921E 鈞
+94A8 钨 => 93A2 鎢
+94A9 钩 => 920E 鈎
+94AA 钪 => 9227 鈧
+94AB 钫 => 9201 鈁
+94AC 钬 => 9225 鈥
+94AD 钭 => 9204 鈄
+94AE 钮 => 9215 鈕
+94AF 钯 => 9200 鈀
+94B0 钰 => 923A 鈺
+94B1 钱 => 92AD 銭
+94B2 钲 => 9266 鉦
+94B3 钳 => 62D1 拑
+94B4 钴 => 9237 鈷
+94B5 钵 => 7F3D 缽
+94B6 钶 => 9233 鈳
+94B7 钷 => 9255 鉕
+94B8 钸 => 923D 鈽
+94B9 钹 => 9238 鈸
+94BA 钺 => 925E 鉞
+94BB 钻 => 9246 鉆
+94BC 钼 => 926C 鉬
+94BD 钽 => 926D 鉭
+94BE 钾 => 9240 鉀
+94BF 钿 => 923F 鈿
+94C0 铀 => 923E 鈾
+94C1 铁 => 9295 銕
+94C2 铂 => 9251 鉑
+94C3 铃 => 9234 鈴
+94C4 铄 => 9460 鑠
+94C5 铅 => 9206 鈆
+94C6 铆 => 925A 鉚
+94C7 铇 => 924B 鉋
+94C8 铈 => 9230 鈰
+94C9 铉 => 9249 鉉
+94CA 铊 => 9248 鉈
+94CB 铋 => 924D 鉍
+94CC 铌 => 922E 鈮
+94CD 铍 => 9239 鈹
+94CE 铎 => 9438 鐸
+94CF 铏 => 9276 鉶
+94D0 铐 => 92AC 銬
+94D1 铑 => 92A0 銠
+94D2 铒 => 927A 鉺
+94D3 铓 => 92E9 鋩
+94D4 铔 => 930F 錏
+94D5 铕 => 92AA 銪
+94D6 铖 => 92EE 鋮
+94D7 铗 => 92CF 鋏
+94D8 铘 => 92E3 鋣
+94D9 铙 => 9403 鐃
+94DA 铚 => 928D 銍
+94DB 铛 => 943A 鐺
+94DC 铜 => 9285 銅
+94DD 铝 => 92C1 鋁
+94DE 铞 => 92B1 銱
+94DF 铟 => 92A6 銦
+94E0 铠 => 93A7 鎧
+94E1 铡 => 9358 鍘
+94E2 铢 => 9296 銖
+94E3 铣 => 9291 銑
+94E4 铤 => 92CC 鋌
+94E5 铥 => 92A9 銩
+94E6 铦 => 929B 銛
+94E7 铧 => 93F5 鏵
+94E8 铨 => 9293 銓
+94E9 铩 => 93A9 鎩
+94EA 铪 => 927F 鉿
+94EB 铫 => 929A 銚
+94EC 铬 => 927B 鉻
+94ED 铭 => 9298 銘
+94EE 铮 => 931A 錚
+94EF 铯 => 92AB 銫
+94F0 铰 => 9278 鉸
+94F1 铱 => 92A5 銥
+94F2 铲 => 522C 刬
+94F3 铳 => 9283 銃
+94F4 铴 => 940B 鐋
+94F5 铵 => 92A8 銨
+94F6 银 => 9280 銀
+94F7 铷 => 92A3 銣
+94F8 铸 => 92F3 鋳
+94F9 铹 => 9412 鐒
+94FA 铺 => 8216 舖
+94FB 铻 => 92D9 鋙
+94FC 铼 => 9338 錸
+94FD 铽 => 92F1 鋱
+94FE 链 => 93C8 鏈
+94FF 铿 => 935E 鍞
+9500 销 => 92B7 銷
+9501 锁 => 9396 鎖
+9502 锂 => 92F0 鋰
+9503 锃 => 92E5 鋥
+9504 锄 => 8021 耡
+9505 锅 => 934B 鍋
+9506 锆 => 92EF 鋯
+9507 锇 => 92E8 鋨
+9508 锈 => 92B9 銹
+9509 锉 => 92BC 銼
+950A 锊 => 92DD 鋝
+950B 锋 => 92D2 鋒
+950C 锌 => 92C5 鋅
+950D 锍 => 92F6 鋶
+950E 锎 => 9426 鐦
+950F 锏 => 9427 鐧
+9510 锐 => 92B3 銳
+9511 锑 => 92BB 銻
+9512 锒 => 92C3 鋃
+9513 锓 => 92DF 鋟
+9514 锔 => 92E6 鋦
+9515 锕 => 9312 錒
+9516 锖 => 9306 錆
+9517 锗 => 937A 鍺
+9518 锘 => 9369 鍩
+9519 错 => 932F 錯
+951A 锚 => 9328 錨
+951B 锛 => 931B 錛
+951C 锜 => 9321 錡
+951D 锝 => 9340 鍀
+951E 锞 => 9301 錁
+951F 锟 => 9315 錕
+9520 锠 => 9329 錩
+9521 锡 => 932B 錫
+9522 锢 => 932E 錮
+9523 锣 => 947C 鑼
+9524 锤 => 9318 錘
+9525 锥 => 9310 錐
+9526 锦 => 9326 錦
+9527 锧 => 9455 鑕
+9528 锨 => 9341 鍁
+9529 锩 => 9308 錈
+952A 锪 => 9343 鍃
+952B 锫 => 9307 錇
+952C 锬 => 931F 錟
+952D 锭 => 9320 錠
+952E 键 => 9375 鍵
+952F 锯 => 92F8 鋸
+9530 锰 => 9333 錳
+9531 锱 => 9319 錙
+9532 锲 => 9365 鍥
+9533 锳 => 9348 鍈
+9534 锴 => 9347 鍇
+9535 锵 => 93D8 鏘
+9536 锶 => 9376 鍶
+9537 锷 => 9354 鍔
+9538 锸 => 81FF 臿
+9539 锹 => 936C 鍬
+953A 锺 => 87A4 螤
+953B 锻 => 7145 煅
+953C 锼 => 93AA 鎪
+953D 锽 => 9360 鍠
+953E 锾 => 9370 鍰
+953F 锿 => 9384 鎄
+9540 镀 => 934D 鍍
+9541 镁 => 9382 鎂
+9542 镂 => 93E4 鏤
+9543 镃 => 93A1 鎡
+9544 镄 => 9428 鐨
+9545 镅 => 9387 鎇
+9546 镆 => 93CC 鏌
+9547 镇 => 93AD 鎭
+9548 镈 => 939B 鎛
+9549 镉 => 9398 鎘
+954A 镊 => 9477 鑷
+954B 镋 => 93B2 鎲
+954C 镌 => 93B8 鎸
+954D 镍 => 93B3 鎳
+954E 镎 => 93BF 鎿
+954F 镏 => 93A6 鎦
+9550 镐 => 93AC 鎬
+9551 镑 => 938A 鎊
+9552 镒 => 8CF9 賹
+9553 镓 => 93B5 鎵
+9554 镔 => 944C 鑌
+9555 镕 => 7194 熔
+9556 镖 => 93E2 鏢
+9557 镗 => 93DC 鏜
+9558 镘 => 93DD 鏝
+9559 镙 => 93CD 鏍
+955A 镚 => 930B 錋
+955B 镛 => 93DE 鏞
+955C 镜 => 93E1 鏡
+955D 镝 => 93D1 鏑
+955E 镞 => 93C3 鏃
+955F 镟 => 65CB 旋
+9560 镠 => 93D0 鏐
+9561 镡 => 9414 鐔
+9562 镢 => 941D 鐝
+9563 镣 => 9410 鐐
+9564 镤 => 93F7 鏷
+9565 镥 => 9465 鑥
+9566 镦 => 9413 鐓
+9567 镧 => 946D 鑭
+9568 镨 => 9420 鐠
+9569 镩 => 9479 鑹
+956A 镪 => 93F9 鏹
+956B 镫 => 9419 鐙
+956C 镬 => 944A 鑊
+956D 镭 => 9433 鐳
+956E 镮 => 9436 鐶
+956F 镯 => 9432 鐲
+9570 镰 => 5286 劆
+9571 镱 => 943F 鐿
+9572 镲 => 9454 鑔
+9573 镳 => 9463 鑣
+9574 镴 => 945E 鑞
+9575 镵 => 9471 鑱
+9576 镶 => 9472 鑲
+957F 长 => 9577 長
+9589 閉 => 9587 閇
+958B 開 => 5F00 开
+959E 閞 => 5173 关
+95A2 関 => 5173 关
+95A4 閤 => 5408 合
+95A7 閧 => 54C4 哄
+95B2 閲 => 95B1 閱
+95B7 閷 => 6740 杀
+95BB 閻 => 9586 閆
+95C6 闆 => 677F 板
+95C7 闇 => 667B 晻
+95CA 闊 => 6FF6 濶
+95D7 闗 => 5173 关
+95D8 闘 => 6597 斗
+95DA 闚 => 7AA5 窥
+95DC 關 => 5173 关
+95E1 闡 => 705B 灛
+95E2 闢 => 8F9F 辟
+95E8 门 => 9580 門
+95E9 闩 => 9582 閂
+95EA 闪 => 9583 閃
+95EB 闫 => 9586 閆
+95EC 闬 => 9588 閈
+95ED 闭 => 9587 閇
+95EE 问 => 554F 問
+95EF 闯 => 95D6 闖
+95F0 闰 => 958F 閏
+95F1 闱 => 95C8 闈
+95F2 闲 => 9591 閑
+95F3 闳 => 958E 閎
+95F4 间 => 9593 間
+95F5 闵 => 9594 閔
+95F6 闶 => 958C 閌
+95F7 闷 => 60B6 悶
+95F8 闸 => 9598 閘
+95F9 闹 => 9599 閙
+95FA 闺 => 95A8 閨
+95FB 闻 => 805E 聞
+95FC 闼 => 95E5 闥
+95FD 闽 => 95A9 閩
+95FE 闾 => 95AD 閭
+95FF 闿 => 95D3 闓
+9600 阀 => 95A5 閥
+9601 阁 => 95A3 閣
+9602 阂 => 95A1 閡
+9603 阃 => 95AB 閫
+9605 阅 => 95B1 閱
+9606 阆 => 95AC 閬
+9607 阇 => 95CD 闍
+9608 阈 => 95BE 閾
+9609 阉 => 95B9 閹
+960A 阊 => 95B6 閶
+960C 阌 => 95BF 閿
+960D 阍 => 95BD 閽
+960E 阎 => 9586 閆
+960F 阏 => 95BC 閼
+9610 阐 => 705B 灛
+9611 阑 => 95CC 闌
+9612 阒 => 95C3 闃
+9613 阓 => 95E0 闠
+9614 阔 => 6FF6 濶
+9615 阕 => 95CB 闋
+9616 阖 => 95D4 闔
+9617 阗 => 95D0 闐
+9618 阘 => 95D2 闒
+9619 阙 => 95D5 闕
+961A 阚 => 95DE 闞
+961B 阛 => 95E4 闤
+961C 阜 => 5CCA 峊
+961D 阝 => 5CCA 峊
+9623 阣 => 5C79 屹
+9628 阨 => 5384 厄
+962A 阪 => 5742 坂
+962C 阬 => 5751 坑
+962F 阯 => 5740 址
+9631 阱 => 7A7D 穽
+9633 阳 => 661C 昜
+9636 阶 => 5826 堦
+9644 附 => 577F 坿
+9646 陆 => 5774 坴
+9648 陈 => 6576 敶
+9654 陔 => 5793 垓
+9658 陘 => 9649 陉
+965C 陜 => 9655 陕
+965D 陝 => 9655 陕
+965E 陞 => 5347 升
+9663 陣 => 9635 阵
+9669 险 => 7877 硷
+9670 陰 => 9634 阴
+9673 陳 => 6576 敶
+9675 陵 => 740C 琌
+9676 陶 => 530B 匋
+9678 陸 => 5774 坴
+967D 陽 => 661C 昜
+9684 隄 => 5824 堤
+9689 隉 => 9667 陧
+968A 隊 => 961F 队
+968E 階 => 5826 堦
+9695 隕 => 9668 陨
+9699 隙 => 90C4 郄
+969B 際 => 9645 际
+969C 障 => 5887 墇
+969E 隞 => 6556 敖
+96A0 隠 => 9690 隐
+96A3 隣 => 90BB 邻
+96A8 隨 => 968F 随
+96AA 險 => 7877 硷
+96B1 隱 => 9690 隐
+96B3 隳 => 9693 隓
+96B4 隴 => 9647 陇
+96B7 隷 => 96B6 隶
+96B8 隸 => 96B6 隶
+96BB 隻 => 53EA 只
+96BF 隿 => 5F0B 弋
+96C7 雇 => 50F1 僱
+96CB 雋 => 96BD 隽
+96D1 雑 => 6742 杂
+96D5 雕 => 5F6B 彫
+96D6 雖 => 867D 虽
+96D9 雙 => 53CC 双
+96DB 雛 => 96CF 雏
+96DC 雜 => 6742 杂
+96DD 雝 => 96CD 雍
+96E0 雠 => 4EC7 仇
+96E2 離 => 79BB 离
+96E3 難 => 96BE 难
+96E5 雥 => 6742 杂
+96F0 雰 => 6C1B 氛
+96F2 雲 => 4E91 云
+96FB 電 => 7535 电
+9707 震 => 8AAB 誫
+970A 霊 => 7075 灵
+970D 霍 => 7668 癨
+9711 霑 => 6CBE 沾
+9712 霒 => 9634 阴
+9713 霓 => 86EA 蛪
+971E 霞 => 8D6E 赮
+9720 霠 => 9634 阴
+9727 霧 => 96FE 雾
+9729 霩 => 5ED3 廓
+9738 霸 => 8987 覇
+973A 霺 => 6EA6 溦
+973D 霽 => 9701 霁
+9742 靂 => 96F3 雳
+9744 靄 => 972D 霭
+9746 靆 => 53C7 叇
+9748 靈 => 7075 灵
+9749 靉 => 53C6 叆
+9752 青 => 9751 靑
+975A 靚 => 9753 靓
+975C 靜 => 9759 静
+975D 靝 => 9754 靔
+9768 靨 => 9765 靥
+976D 靭 => 8095 肕
+977C 靼 => 977B 靻
+9782 鞂 => 79F8 秸
+978D 鞍 => 978C 鞌
+978F 鞏 => 5DE9 巩
+9792 鞒 => 6865 桥
+97A0 鞠 => 9671 陱
+97A4 鞤 => 5E2E 帮
+97A6 鞦 => 79CB 秋
+97BD 鞽 => 6865 桥
+97C1 韁 => 7E6E 繮
+97C3 韃 => 9791 鞑
+97C6 韆 => 4EDF 仟
+97C8 韈 => 889C 袜
+97C9 韉 => 97AF 鞯
+97CC 韌 => 8095 肕
+97E4 韤 => 889C 袜
+97E5 韥 => 97E3 韣
+97E6 韦 => 97CB 韋
+97E7 韧 => 8095 肕
+97E8 韨 => 97CD 韍
+97E9 韩 => 97D3 韓
+97EA 韪 => 97D9 韙
+97EB 韫 => 97DE 韞
+97EC 韬 => 97DC 韜
+97EE 韮 => 97ED 韭
+97F2 韲 => 8640 虀
+97FB 韻 => 97F5 韵
+97FF 響 => 54CD 响
+9812 頒 => 670C 朌
+9824 頤 => 9809 頉
+982B 頫 => 4FDB 俛
+982D 頭 => 5934 头
+9834 頴 => 7A4E 穎
+9838 頸 => 981A 頚
+9839 頹 => 7A68 穨
+983C 頼 => 8CF4 賴
+983D 頽 => 7A68 穨
+984A 顊 => 9809 頉
+9850 顐 => 8AE2 諢
+9854 顔 => 984F 顏
+9855 顕 => 663E 显
+9858 願 => 613F 愿
+985A 顚 => 508E 傎
+985B 顛 => 508E 傎
+985E 類 => 7C7B 类
+9863 顣 => 8E59 蹙
+9867 顧 => 980B 頋
+986F 顯 => 663E 显
+9875 页 => 9801 頁
+9876 顶 => 9802 頂
+9877 顷 => 9803 頃
+9878 顸 => 9807 頇
+9879 项 => 9805 項
+987A 顺 => 9806 順
+987B 须 => 9808 須
+987C 顼 => 980A 頊
+987D 顽 => 9811 頑
+987E 顾 => 980B 頋
+987F 顿 => 9813 頓
+9880 颀 => 980E 頎
+9881 颁 => 670C 朌
+9882 颂 => 980C 頌
+9883 颃 => 980F 頏
+9884 预 => 9810 預
+9885 颅 => 9871 顱
+9886 领 => 9818 領
+9887 颇 => 9817 頗
+9888 颈 => 981A 頚
+9889 颉 => 9821 頡
+988A 颊 => 9830 頰
+988B 颋 => 9832 頲
+988C 颌 => 981C 頜
+988D 颍 => 6F41 潁
+988E 颎 => 71B2 熲
+988F 颏 => 9826 頦
+9890 颐 => 9809 頉
+9891 频 => 983B 頻
+9892 颒 => 982E 頮
+9893 颓 => 7A68 穨
+9894 颔 => 9837 頷
+9895 颕 => 7A4E 穎
+9896 颖 => 7A4E 穎
+9897 颗 => 9846 顆
+9898 题 => 984C 題
+9899 颙 => 9852 顒
+989A 颚 => 984E 顎
+989B 颛 => 9853 顓
+989C 颜 => 984F 顏
+989D 额 => 984D 額
+989E 颞 => 9873 顳
+989F 颟 => 9862 顢
+98A0 颠 => 508E 傎
+98A1 颡 => 9859 顙
+98A2 颢 => 9865 顥
+98A3 颣 => 7E87 纇
+98A4 颤 => 986B 顫
+98A5 颥 => 986C 顬
+98A6 颦 => 9870 顰
+98A7 颧 => 9874 顴
+98A8 風 => 51E8 凨
+98B1 颱 => 53F0 台
+98B3 颳 => 522E 刮
+98BA 颺 => 626C 扬
+98C3 飃 => 65DA 旚
+98C4 飄 => 65DA 旚
+98C8 飈 => 98C6 飆
+98CC 飌 => 51E8 凨
+98CE 风 => 51E8 凨
+98CF 飏 => 626C 扬
+98D0 飐 => 98AD 颭
+98D1 飑 => 98AE 颮
+98D2 飒 => 98AF 颯
+98D3 飓 => 98B6 颶
+98D4 飔 => 98B8 颸
+98D5 飕 => 98BC 颼
+98D6 飖 => 98BB 颻
+98D7 飗 => 98C0 飀
+98D8 飘 => 65DA 旚
+98D9 飙 => 98C6 飆
+98DA 飚 => 98C6 飆
+98DC 飜 => 7E59 繙
+98DE 飞 => 98DB 飛
+98E0 飠 => 98DF 食
+98F0 飰 => 98EF 飯
+98FD 飽 => 98F9 飹
+9901 餁 => 98EA 飪
+9908 餈 => 7CCD 糍
+990A 養 => 517B 养
+9910 餐 => 55B0 喰
+9918 餘 => 4F59 余
+991A 餚 => 80B4 肴
+991D 餝 => 98FE 飾
+9920 餠 => 9905 餅
+9928 館 => 8218 舘
+992C 餬 => 7CCA 糊
+9931 餱 => 7CC7 糇
+9935 餵 => 5582 喂
+9939 餹 => 7CD6 糖
+9947 饇 => 98EB 飫
+994A 饊 => 7CE4 糤
+994B 饋 => 993D 餽
+9951 饑 => 98E2 飢
+9957 饗 => 98E8 飨
+995C 饜 => 990D 餍
+995F 饟 => 9909 餉
+9963 饣 => 98DF 食
+9964 饤 => 98E3 飣
+9965 饥 => 98E2 飢
+9966 饦 => 98E5 飥
+9967 饧 => 9933 餳
+9968 饨 => 98E9 飩
+9969 饩 => 993C 餼
+996A 饪 => 98EA 飪
+996B 饫 => 98EB 飫
+996C 饬 => 98ED 飭
+996D 饭 => 98EF 飯
+996E 饮 => 98F2 飲
+996F 饯 => 991E 餞
+9970 饰 => 98FE 飾
+9971 饱 => 98F9 飹
+9972 饲 => 98FC 飼
+9973 饳 => 98FF 飿
+9974 饴 => 98F4 飴
+9975 饵 => 990C 餌
+9976 饶 => 9952 饒
+9977 饷 => 9909 餉
+9978 饸 => 9904 餄
+9979 饹 => 990E 餎
+997A 饺 => 9903 餃
+997B 饻 => 990F 餏
+997C 饼 => 9905 餅
+997D 饽 => 9911 餑
+997E 饾 => 9916 餖
+997F 饿 => 9913 餓
+9980 馀 => 4F59 余
+9981 馁 => 9912 餒
+9982 馂 => 9915 餕
+9983 馃 => 991C 餜
+9984 馄 => 991B 餛
+9985 馅 => 9921 餡
+9986 馆 => 8218 舘
+9987 馇 => 9937 餷
+9988 馈 => 993D 餽
+9989 馉 => 9936 餶
+998A 馊 => 993F 餿
+998B 馋 => 995E 饞
+998C 馌 => 9941 饁
+998D 馍 => 9943 饃
+998E 馎 => 993A 餺
+998F 馏 => 993E 餾
+9990 馐 => 9948 饈
+9991 馑 => 9949 饉
+9992 馒 => 9945 饅
+9993 馓 => 7CE4 糤
+9994 馔 => 994C 饌
+9995 馕 => 9962 饢
+9998 馘 => 805D 聝
+99AB 馫 => 99A8 馨
+99AE 馮 => 51AF 冯
+99BD 馽 => 7D77 絷
+99C4 駄 => 99B1 馱
+99C6 駆 => 657A 敺
+99C8 駈 => 657A 敺
+99DE 駞 => 99DD 駝
+99E1 駡 => 508C 傌
+99EE 駮 => 99C1 駁
+99F4 駴 => 99ED 駭
+9A03 騃 => 5446 呆
+9A08 騈 => 99E2 駢
+9A23 騣 => 9A0C 騌
+9A2A 騪 => 635C 捜
+9A30 騰 => 817E 腾
+9A32 騲 => 8278 艸
+9A39 騹 => 9A0F 騏
+9A40 驀 => 84E6 蓦
+9A45 驅 => 657A 敺
+9A46 驆 => 8DF8 跸
+9A47 驇 => 9A3A 騺
+9A55 驕 => 618D 憍
+9A5A 驚 => 60CA 惊
+9A69 驩 => 61FD 懽
+9A6C 马 => 99AC 馬
+9A6D 驭 => 99AD 馭
+9A6E 驮 => 99B1 馱
+9A6F 驯 => 99B4 馴
+9A70 驰 => 99B3 馳
+9A71 驱 => 657A 敺
+9A72 驲 => 99B9 馹
+9A73 驳 => 99C1 駁
+9A74 驴 => 9A62 驢
+9A75 驵 => 99D4 駔
+9A76 驶 => 99DB 駛
+9A77 驷 => 99DF 駟
+9A78 驸 => 99D9 駙
+9A79 驹 => 99D2 駒
+9A7A 驺 => 9A36 騶
+9A7B 驻 => 99D0 駐
+9A7C 驼 => 99DD 駝
+9A7D 驽 => 99D1 駑
+9A7E 驾 => 99D5 駕
+9A7F 驿 => 9A5B 驛
+9A80 骀 => 99D8 駘
+9A81 骁 => 9A4D 驍
+9A82 骂 => 508C 傌
+9A83 骃 => 99F0 駰
+9A84 骄 => 618D 憍
+9A85 骅 => 9A4A 驊
+9A86 骆 => 99F1 駱
+9A87 骇 => 99ED 駭
+9A88 骈 => 99E2 駢
+9A89 骉 => 9A6B 驫
+9A8A 骊 => 9A6A 驪
+9A8B 骋 => 9A01 騁
+9A8C 验 => 9A57 驗
+9A8D 骍 => 9A02 騂
+9A8E 骎 => 99F8 駸
+9A8F 骏 => 99FF 駿
+9A90 骐 => 9A0F 騏
+9A91 骑 => 9A0E 騎
+9A92 骒 => 9A0D 騍
+9A93 骓 => 9A05 騅
+9A94 骔 => 9A0C 騌
+9A95 骕 => 9A4C 驌
+9A96 骖 => 9A42 驂
+9A97 骗 => 9A19 騙
+9A98 骘 => 9A2D 騭
+9A99 骙 => 9A24 騤
+9A9A 骚 => 9A37 騷
+9A9B 骛 => 9A16 騖
+9A9C 骜 => 9A41 驁
+9A9D 骝 => 9A2E 騮
+9A9E 骞 => 9A2B 騫
+9A9F 骟 => 9A38 騸
+9AA0 骠 => 9A43 驃
+9AA1 骡 => 9A3E 騾
+9AA2 骢 => 9A44 驄
+9AA3 骣 => 9A4F 驏
+9AA4 骤 => 9A5F 驟
+9AA5 骥 => 9A65 驥
+9AA6 骦 => 9A66 驦
+9AA7 骧 => 9A64 驤
+9AAB 骫 => 9AAA 骪
+9AAF 骯 => 80AE 肮
+9AB5 骵 => 4F53 体
+9AB9 骹 => 8E0D 踍
+9ABB 骻 => 80EF 胯
+9AC4 髄 => 81B8 膸
+9ACA 髊 => 9AB4 骴
+9ACC 髌 => 8191 膑
+9ACF 髏 => 9AC5 髅
+9AD2 髒 => 810F 脏
+9AD3 髓 => 81B8 膸
+9AD4 體 => 4F53 体
+9AD5 髕 => 8191 膑
+9AD6 髖 => 9ACB 髋
+9AD9 髙 => 9AD8 高
+9AE3 髣 => 4EFF 仿
+9AE6 髦 => 6C02 氂
+9AEA 髪 => 53D1 发
+9AEE 髮 => 53D1 发
+9AEF 髯 => 9AE5 髥
+9AF4 髴 => 4ECF 仏
+9B01 鬁 => 75E2 痢
+9B03 鬃 => 9A0C 騌
+9B06 鬆 => 677E 松
+9B0D 鬍 => 80E1 胡
+9B0E 鬎 => 760C 瘌
+9B1A 鬚 => 9808 須
+9B20 鬠 => 9AFA 髺
+9B22 鬢 => 9B13 鬓
+9B25 鬥 => 6597 斗
+9B26 鬦 => 6597 斗
+9B27 鬧 => 9599 閙
+9B28 鬨 => 54C4 哄
+9B29 鬩 => 960B 阋
+9B2A 鬪 => 6597 斗
+9B2B 鬫 => 95DE 闞
+9B2C 鬬 => 6597 斗
+9B2D 鬭 => 6597 斗
+9B2E 鬮 => 9604 阄
+9B30 鬰 => 6B1D 欝
+9B31 鬱 => 6B1D 欝
+9B39 鬹 => 9B36 鬶
+9B3B 鬻 => 7CA5 粥
+9B41 魁 => 6AC6 櫆
+9B4A 魊 => 872E 蜮
+9B4E 魎 => 9B49 魉
+9B58 魘 => 9B47 魇
+9B61 魡 => 91E3 釣
+9B7D 魽 => 86B6 蚶
+9BA3 鮣 => 4C9F 䲟
+9BAD 鮭 => 89DF 觟
+9BAE 鮮 => 5C1F 尟
+9BC1 鯁 => 9ABE 骾
+9BCA 鯊 => 9B66 魦
+9BCB 鯋 => 9B66 魦
+9BD7 鯗 => 9B9D 鮝
+9C06 鰆 => 4CA0 䲠
+9C0C 鰌 => 4CA1 䲡
+9C0D 鰍 => 4CA1 䲡
+9C27 鰧 => 4CA2 䲢
+9C3F 鰿 => 9BFD 鯽
+9C45 鱅 => 9C2B 鰫
+9C4B 鱋 => 9B7C 魼
+9C54 鱔 => 9C53 鱓
+9C5E 鱞 => 9C25 鰥
+9C77 鱷 => 9C10 鰐
+9C7C 鱼 => 9B5A 魚
+9C7D 鱽 => 9B5B 魛
+9C7F 鱿 => 9B77 魷
+9C80 鲀 => 9B68 魨
+9C81 鲁 => 9B6F 魯
+9C82 鲂 => 9B74 魴
+9C84 鲄 => 9B7A 魺
+9C85 鲅 => 9B81 鮁
+9C86 鲆 => 9B83 鮃
+9C87 鲇 => 9B8E 鮎
+9C88 鲈 => 9C78 鱸
+9C89 鲉 => 9B8B 鮋
+9C8A 鲊 => 9B93 鮓
+9C8B 鲋 => 9B92 鮒
+9C8C 鲌 => 9B8A 鮊
+9C8D 鲍 => 9B91 鮑
+9C8E 鲎 => 9C5F 鱟
+9C8F 鲏 => 9B8D 鮍
+9C90 鲐 => 9B90 鮐
+9C91 鲑 => 89DF 觟
+9C92 鲒 => 9B9A 鮚
+9C93 鲓 => 9BB3 鮳
+9C94 鲔 => 9BAA 鮪
+9C95 鲕 => 9B9E 鮞
+9C96 鲖 => 9BA6 鮦
+9C97 鲗 => 9C02 鰂
+9C98 鲘 => 9B9C 鮜
+9C99 鲙 => 9C60 鱠
+9C9A 鲚 => 9C6D 鱭
+9C9B 鲛 => 9BAB 鮫
+9C9C 鲜 => 5C1F 尟
+9C9D 鲝 => 9BBA 鮺
+9C9E 鲞 => 9B9D 鮝
+9C9F 鲟 => 9C58 鱘
+9CA0 鲠 => 9ABE 骾
+9CA1 鲡 => 9C7A 鱺
+9CA2 鲢 => 9C31 鰱
+9CA3 鲣 => 9C39 鰹
+9CA4 鲤 => 9BC9 鯉
+9CA5 鲥 => 9C23 鰣
+9CA6 鲦 => 9C37 鰷
+9CA7 鲧 => 9BC0 鯀
+9CA8 鲨 => 9B66 魦
+9CA9 鲩 => 9BC7 鯇
+9CAA 鲪 => 9BB6 鮶
+9CAB 鲫 => 9BFD 鯽
+9CAC 鲬 => 9BD2 鯒
+9CAD 鲭 => 9BD6 鯖
+9CAE 鲮 => 9BEA 鯪
+9CAF 鲯 => 9BD5 鯕
+9CB0 鲰 => 9BEB 鯫
+9CB1 鲱 => 9BE1 鯡
+9CB2 鲲 => 9BE4 鯤
+9CB3 鲳 => 9BE7 鯧
+9CB4 鲴 => 9BDD 鯝
+9CB5 鲵 => 9BE2 鯢
+9CB6 鲶 => 9BF0 鯰
+9CB7 鲷 => 9BDB 鯛
+9CB8 鲸 => 9BE8 鯨
+9CB9 鲹 => 9C3A 鰺
+9CBA 鲺 => 9BF4 鯴
+9CBB 鲻 => 9BD4 鯔
+9CBC 鲼 => 9C5D 鱝
+9CBD 鲽 => 9C08 鰈
+9CBE 鲾 => 9C0F 鰏
+9CBF 鲿 => 9C68 鱨
+9CC0 鳀 => 9BF7 鯷
+9CC1 鳁 => 9C1B 鰛
+9CC3 鳃 => 9C13 鰓
+9CC4 鳄 => 9C10 鰐
+9CC5 鳅 => 4CA1 䲡
+9CC6 鳆 => 9C12 鰒
+9CC7 鳇 => 9C09 鰉
+9CCA 鳊 => 9BFF 鯿
+9CCB 鳋 => 9C20 鰠
+9CCC 鳌 => 9C32 鰲
+9CCD 鳍 => 9C2D 鰭
+9CCE 鳎 => 9C28 鰨
+9CCF 鳏 => 9C25 鰥
+9CD0 鳐 => 9C29 鰩
+9CD1 鳑 => 9C1F 鰟
+9CD2 鳒 => 9C1C 鰜
+9CD3 鳓 => 9C33 鰳
+9CD4 鳔 => 9C3E 鰾
+9CD5 鳕 => 9C48 鱈
+9CD6 鳖 => 9C49 鱉
+9CD7 鳗 => 9C3B 鰻
+9CD8 鳘 => 9C35 鰵
+9CD9 鳙 => 9C2B 鰫
+9CDB 鳛 => 9C3C 鰼
+9CDC 鳜 => 9C56 鱖
+9CDD 鳝 => 9C53 鱓
+9CDE 鳞 => 9C57 鱗
+9CDF 鳟 => 9C52 鱒
+9CE0 鳠 => 9C6F 鱯
+9CE2 鳢 => 9C67 鱧
+9CE3 鳣 => 9C63 鱣
+9CE7 鳧 => 51EB 凫
+9CEB 鳫 => 96C1 雁
+9CEC 鳬 => 51EB 凫
+9CEE 鳮 => 96DE 雞
+9CEF 鳯 => 51E4 凤
+9CF3 鳳 => 51E4 凤
+9CFE 鳾 => 4D13 䴓
+9D03 鴃 => 9D02 鴂
+9D07 鴇 => 9CF5 鳵
+9D08 鴈 => 96C1 雁
+9D19 鴙 => 96C9 雉
+9D37 鴷 => 4D15 䴕
+9D41 鵁 => 4D14 䴔
+9D5B 鵛 => 981A 頚
+9D5E 鵞 => 9D5D 鵝
+9D70 鵰 => 5F6B 彫
+9D76 鵶 => 9D09 鴉
+9D84 鶄 => 4D16 䴖
+9DA4 鶤 => 9D7E 鵾
+9DAA 鶪 => 4D17 䴗
+9DAF 鶯 => 83BA 莺
+9DB5 鶵 => 96CF 雏
+9DBE 鶾 => 7FF0 翰
+9DC4 鷄 => 96DE 雞
+9DC8 鷈 => 4D18 䴘
+9DC9 鷉 => 4D18 䴘
+9DCD 鷍 => 67AD 枭
+9DD8 鷘 => 9D92 鶒
+9DF0 鷰 => 71D5 燕
+9DF4 鷴 => 9DF3 鷳
+9DFF 鷿 => 4D19 䴙
+9E0A 鸊 => 4D19 䴙
+9E1D 鸝 => 9D51 鵑
+9E1E 鸞 => 9D49 鵉
+9E1F 鸟 => 9CE5 鳥
+9E20 鸠 => 9CE9 鳩
+9E21 鸡 => 96DE 雞
+9E22 鸢 => 9CF6 鳶
+9E23 鸣 => 9CF4 鳴
+9E24 鸤 => 9CF2 鳲
+9E25 鸥 => 9DD7 鷗
+9E26 鸦 => 9D09 鴉
+9E27 鸧 => 9DAC 鶬
+9E28 鸨 => 9CF5 鳵
+9E29 鸩 => 9D06 鴆
+9E2A 鸪 => 9D23 鴣
+9E2B 鸫 => 9D87 鶇
+9E2C 鸬 => 9E15 鸕
+9E2D 鸭 => 9D28 鴨
+9E2E 鸮 => 9D1E 鴞
+9E2F 鸯 => 9D26 鴦
+9E30 鸰 => 9D12 鴒
+9E31 鸱 => 9D1F 鴟
+9E32 鸲 => 9D1D 鴝
+9E33 鸳 => 9D1B 鴛
+9E34 鸴 => 9DFD 鷽
+9E35 鸵 => 9D15 鴕
+9E36 鸶 => 9DE5 鷥
+9E37 鸷 => 9DD9 鷙
+9E38 鸸 => 9D2F 鴯
+9E39 鸹 => 9D30 鴰
+9E3A 鸺 => 9D42 鵂
+9E3B 鸻 => 9D34 鴴
+9E3C 鸼 => 9D43 鵃
+9E3D 鸽 => 9D3F 鴿
+9E3E 鸾 => 9D49 鵉
+9E3F 鸿 => 9D3B 鴻
+9E40 鹀 => 9D50 鵐
+9E41 鹁 => 9D53 鵓
+9E42 鹂 => 9D51 鵑
+9E43 鹃 => 9D51 鵑
+9E44 鹄 => 9D60 鵠
+9E45 鹅 => 9D5D 鵝
+9E46 鹆 => 9D52 鵒
+9E47 鹇 => 9DF3 鷳
+9E48 鹈 => 9D5C 鵜
+9E49 鹉 => 9D61 鵡
+9E4A 鹊 => 9D72 鵲
+9E4B 鹋 => 9D93 鶓
+9E4C 鹌 => 9D6A 鵪
+9E4D 鹍 => 9D7E 鵾
+9E4E 鹎 => 9D6F 鵯
+9E4F 鹏 => 9D6C 鵬
+9E50 鹐 => 9D6E 鵮
+9E51 鹑 => 9D89 鶉
+9E52 鹒 => 9D8A 鶊
+9E53 鹓 => 9D77 鵷
+9E54 鹔 => 9DEB 鷫
+9E55 鹕 => 9D98 鶘
+9E56 鹖 => 9DA1 鶡
+9E57 鹗 => 9D9A 鶚
+9E58 鹘 => 9DBB 鶻
+9E59 鹙 => 9D96 鶖
+9E5A 鹚 => 9DBF 鶿
+9E5B 鹛 => 9DA5 鶥
+9E5C 鹜 => 9DA9 鶩
+9E5D 鹝 => 9DCA 鷊
+9E5E 鹞 => 9DC2 鷂
+9E5F 鹟 => 9DB2 鶲
+9E60 鹠 => 9DB9 鶹
+9E61 鹡 => 9DBA 鶺
+9E62 鹢 => 9DC1 鷁
+9E63 鹣 => 9DBC 鶼
+9E64 鹤 => 9DB4 鶴
+9E65 鹥 => 9DD6 鷖
+9E66 鹦 => 9E1A 鸚
+9E67 鹧 => 9DD3 鷓
+9E68 鹨 => 9DDA 鷚
+9E69 鹩 => 9DEF 鷯
+9E6A 鹪 => 9DE6 鷦
+9E6B 鹫 => 9DF2 鷲
+9E6C 鹬 => 9DF8 鷸
+9E6D 鹭 => 9DFA 鷺
+9E6F 鹯 => 9E07 鸇
+9E70 鹰 => 9DF9 鷹
+9E71 鹱 => 9E0C 鸌
+9E72 鹲 => 9E0F 鸏
+9E73 鹳 => 9E1B 鸛
+9E74 鹴 => 9E18 鸘
+9E75 鹵 => 5364 卤
+9E79 鹹 => 54B8 咸
+9E7C 鹼 => 7877 硷
+9E7D 鹽 => 5869 塩
+9E7E 鹾 => 9E7A 鹺
+9E81 麁 => 7C97 粗
+9E84 麄 => 7C97 粗
+9E86 麆 => 7C97 粗
+9E8B 麋 => 9E8A 麊
+9E97 麗 => 4E3D 丽
+9EA0 麠 => 9E96 麖
+9EA4 麤 => 7C97 粗
+9EA6 麦 => 9EA5 麥
+9EAA 麪 => 9762 面
+9EAF 麯 => 66F2 曲
+9EB4 麴 => 66F2 曲
+9EB5 麵 => 9762 面
+9EB8 麸 => 9EA9 麩
+9EBB 麻 => 6DCB 淋
+9EBC 麼 => 4E48 么
+9EBD 麽 => 4E48 么
+9EC4 黄 => 9EC3 黃
+9ECC 黌 => 9EC9 黉
+9ECE 黎 => 83DE 菞
+9ED2 黒 => 9ED1 黑
+9ED4 黔 => 8EE1 軡
+9ED9 黙 => 9ED8 默
+9EDE 點 => 594C 奌
+9EE8 黨 => 515A 党
+9EF2 黲 => 9EEA 黪
+9EF4 黴 => 9709 霉
+9EF6 黶 => 9EE1 黡
+9EF7 黷 => 9EE9 黩
+9EFE 黾 => 9EFD 黽
+9F04 鼄 => 86DB 蛛
+9F05 鼅 => 8718 蜘
+9F07 鼇 => 9C32 鰲
+9F08 鼈 => 9C49 鱉
+9F0B 鼋 => 9EFF 黿
+9F0C 鼌 => 9F02 鼂
+9F0D 鼍 => 9F09 鼉
+9F13 鼓 => 76B7 皷
+9F15 鼕 => 51AC 冬
+9F17 鼗 => 9780 鞀
+9F33 鼳 => 9F30 鼰
+9F39 鼹 => 9F34 鼴
+9F3E 鼾 => 54FB 哻
+9F40 齀 => 9F3F 鼿
+9F43 齃 => 981E 頞
+9F4A 齊 => 4E9D 亝
+9F4B 齋 => 658B 斋
+9F4E 齎 => 8CEB 賫
+9F4F 齏 => 8640 虀
+9F50 齐 => 4E9D 亝
+9F51 齑 => 8640 虀
+9F52 齒 => 6B6F 歯
+9F63 齣 => 51FA 出
+9F65 齥 => 9F5B 齛
+9F67 齧 => 556E 啮
+9F69 齩 => 54AC 咬
+9F6A 齪 => 8E00 踀
+9F73 齳 => 9F6B 齫
+9F76 齶 => 816D 腭
+9F7F 齿 => 6B6F 歯
+9F80 龀 => 9F54 齔
+9F81 龁 => 9F55 齕
+9F82 龂 => 9F57 齗
+9F83 龃 => 9F5F 齟
+9F84 龄 => 9F61 齡
+9F85 龅 => 9F59 齙
+9F86 龆 => 9F60 齠
+9F87 龇 => 9F5C 齜
+9F88 龈 => 9F66 齦
+9F89 龉 => 9F6C 齬
+9F8A 龊 => 8E00 踀
+9F8B 龋 => 9F72 齲
+9F8C 龌 => 9F77 齷
+9F8D 龍 => 7ADC 竜
+9F8E 龎 => 5390 厐
+9F90 龐 => 5390 厐
+9F91 龑 => 4DAE 䶮
+9F92 龒 => 7ADC 竜
+9F98 龘 => 9F96 龖
+9F99 龙 => 7ADC 竜
+9F9A 龚 => 9F94 龔
+9F9B 龛 => 9F95 龕
+9F9C 龜 => 4E80 亀
+9F9D 龝 => 79CB 秋
+9F9E 龞 => 9C49 鱉
+9F9F 龟 => 4E80 亀
+9FA2 龢 => 548C 和
+A49C ꒜ => A0C0 ꃀ
+A49E ꒞ => A04A ꁊ
+A4AC ꒬ => A050 ꁐ
+A4B0 ꒰ => A3C2 ꏂ
+A4BA ꒺ => A3BF ꎿ
+A4BE ꒾ => A2B1 ꊱ
+A4BF ꒿ => A259 ꉙ
+A4C0 ꓀ => A3AB ꎫ
+A4C2 ꓂ => A3B5 ꎵ
+FF10 0 => 0030 0
+FF11 1 => 0031 1
+FF12 2 => 0032 2
+FF13 3 => 0033 3
+FF14 4 => 0034 4
+FF15 5 => 0035 5
+FF16 6 => 0036 6
+FF17 7 => 0037 7
+FF18 8 => 0038 8
+FF19 9 => 0039 9
+FF1A : => 003A :
+FF1B ; => 003B ;
+FF1C < => 003C <
+FF1D = => 003D =
+FF1E > => 003E >
+FF1F ? => 003F ?
+FF20 @ => 0040 @
+FF21 A => 0041 A
+FF22 B => 0042 B
+FF23 C => 0043 C
+FF24 D => 0044 D
+FF25 E => 0045 E
+FF26 F => 0046 F
+FF27 G => 0047 G
+FF28 H => 0048 H
+FF29 I => 0049 I
+FF2A J => 004A J
+FF2B K => 004B K
+FF2C L => 004C L
+FF2D M => 004D M
+FF2E N => 004E N
+FF2F O => 004F O
+FF30 P => 0050 P
+FF31 Q => 0051 Q
+FF32 R => 0052 R
+FF33 S => 0053 S
+FF34 T => 0054 T
+FF35 U => 0055 U
+FF36 V => 0056 V
+FF37 W => 0057 W
+FF38 X => 0058 X
+FF39 Y => 0059 Y
+FF3A Z => 005A Z
+FF3B [ => 005B [
+FF3C \ => 005C \
+FF3D ] => 005D ]
+FF3E ^ => 005E ^
+FF3F _ => 005F _
+FF40 ` => 0060 `
+FF41 a => 0061 a
+FF42 b => 0062 b
+FF43 c => 0063 c
+FF44 d => 0064 d
+FF45 e => 0065 e
+FF46 f => 0066 f
+FF47 g => 0067 g
+FF48 h => 0068 h
+FF49 i => 0069 i
+FF4A j => 006A j
+FF4B k => 006B k
+FF4C l => 006C l
+FF4D m => 006D m
+FF4E n => 006E n
+FF4F o => 006F o
+FF50 p => 0070 p
+FF51 q => 0071 q
+FF52 r => 0072 r
+FF53 s => 0073 s
+FF54 t => 0074 t
+FF55 u => 0075 u
+FF56 v => 0076 v
+FF57 w => 0077 w
+FF58 x => 0078 x
+FF59 y => 0079 y
+FF5A z => 007A z
+FF61 。 => 3002 。
+FF62 「 => 300C 「
+FF63 」 => 300D 」
+FF64 、 => 3001 、
+FF65 ・ => 30FB ・
+FF66 ヲ => 30F2 ヲ
+FF67 ァ => 30A1 ァ
+FF68 ィ => 30A3 ィ
+FF69 ゥ => 30A5 ゥ
+FF6A ェ => 30A7 ェ
+FF6B ォ => 30A9 ォ
+FF6C ャ => 30E3 ャ
+FF6D ュ => 30E5 ュ
+FF6E ョ => 30E7 ョ
+FF6F ッ => 30C3 ッ
+FF70 ー => 30FC ー
+FF71 ア => 30A2 ア
+FF72 イ => 30A4 イ
+FF73 ウ => 30A6 ウ
+FF74 エ => 30A8 エ
+FF75 オ => 30AA オ
+FF76 カ => 30AB カ
+FF77 キ => 30AD キ
+FF78 ク => 30AF ク
+FF79 ケ => 30B1 ケ
+FF7A コ => 30B3 コ
+FF7B サ => 30B5 サ
+FF7C シ => 30B7 シ
+FF7D ス => 30B9 ス
+FF7E セ => 30BB セ
+FF7F ソ => 30BD ソ
+FF80 タ => 30BF タ
+FF81 チ => 30C1 チ
+FF82 ツ => 30C4 ツ
+FF83 テ => 30C6 テ
+FF84 ト => 30C8 ト
+FF85 ナ => 30CA ナ
+FF86 ニ => 30CB ニ
+FF87 ヌ => 30CC ヌ
+FF88 ネ => 30CD ネ
+FF89 ノ => 30CE ノ
+FF8A ハ => 30CF ハ
+FF8B ヒ => 30D2 ヒ
+FF8C フ => 30D5 フ
+FF8D ヘ => 30D8 ヘ
+FF8E ホ => 30DB ホ
+FF8F マ => 30DE マ
+FF90 ミ => 30DF ミ
+FF91 ム => 30E0 ム
+FF92 メ => 30E1 メ
+FF93 モ => 30E2 モ
+FF94 ヤ => 30E4 ヤ
+FF95 ユ => 30E6 ユ
+FF96 ヨ => 30E8 ヨ
+FF97 ラ => 30E9 ラ
+FF98 リ => 30EA リ
+FF99 ル => 30EB ル
+FF9A レ => 30EC レ
+FF9B ロ => 30ED ロ
+FF9C ワ => 30EF ワ
+FF9D ン => 30F3 ン
+FF9E ゙ => 3099 ゙
+FF9F ゚ => 309A ゚
+FFA0 ᅠ => 3164 ㅤ
+FFA1 ᄀ => 3131 ㄱ
+FFA2 ᄁ => 3132 ㄲ
+FFA3 ᆪ => 3133 ㄳ
+FFA4 ᄂ => 3134 ㄴ
+FFA5 ᆬ => 3135 ㄵ
+FFA6 ᆭ => 3136 ㄶ
+FFA7 ᄃ => 3137 ㄷ
+FFA8 ᄄ => 3138 ㄸ
+FFA9 ᄅ => 3139 ㄹ
+FFAA ᆰ => 313A ㄺ
+FFAB ᆱ => 313B ㄻ
+FFAC ᆲ => 313C ㄼ
+FFAD ᆳ => 313D ㄽ
+FFAE ᆴ => 313E ㄾ
+FFAF ᆵ => 313F ㄿ
+FFB0 ᄚ => 3140 ㅀ
+FFB1 ᄆ => 3141 ㅁ
+FFB2 ᄇ => 3142 ㅂ
+FFB3 ᄈ => 3143 ㅃ
+FFB4 ᄡ => 3144 ㅄ
+FFB5 ᄉ => 3145 ㅅ
+FFB6 ᄊ => 3146 ㅆ
+FFB7 ᄋ => 3147 ㅇ
+FFB8 ᄌ => 3148 ㅈ
+FFB9 ᄍ => 3149 ㅉ
+FFBA ᄎ => 314A ㅊ
+FFBB ᄏ => 314B ㅋ
+FFBC ᄐ => 314C ㅌ
+FFBD ᄑ => 314D ㅍ
+FFBE ᄒ => 314E ㅎ
+FFC2 ᅡ => 314F ㅏ
+FFC3 ᅢ => 3150 ㅐ
+FFC4 ᅣ => 3151 ㅑ
+FFC5 ᅤ => 3152 ㅒ
+FFC6 ᅥ => 3153 ㅓ
+FFC7 ᅦ => 3154 ㅔ
+FFCA ᅧ => 3155 ㅕ
+FFCB ᅨ => 3156 ㅖ
+FFCC ᅩ => 3157 ㅗ
+FFCD ᅪ => 3158 ㅘ
+FFCE ᅫ => 3159 ㅙ
+FFCF ᅬ => 315A ㅚ
+FFD2 ᅭ => 315B ㅛ
+FFD3 ᅮ => 315C ㅜ
+FFD4 ᅯ => 315D ㅝ
+FFD5 ᅰ => 315E ㅞ
+FFD6 ᅱ => 315F ㅟ
+FFD7 ᅲ => 3160 ㅠ
+FFDA ᅳ => 3161 ㅡ
+FFDB ᅴ => 3162 ㅢ
+FFDC ᅵ => 3163 ㅣ
diff --git a/AntiSpoof/maintenance/equivset.txt b/AntiSpoof/maintenance/equivset.txt
new file mode 100644
index 00000000..bf8d7956
--- /dev/null
+++ b/AntiSpoof/maintenance/equivset.txt
@@ -0,0 +1,3836 @@
+# This file is generated by generateEquivset.php
+# It shows sets of equivalent characters, one set per line, with characters
+# separated by whitespace. This file is not used by MediaWiki, rather it is
+# intended as a human-readable version of equivset.php, for debugging and
+# review purposes.
+S $ 5 s Ś ś Ŝ ŝ Ş ş Š š Ƽ ƽ ʂ Ѕ ѕ Ꮥ Ꮪ ṣ ₷ 5 S s
+O 0 o Ø ò ó ô õ ö ø ō ŏ ő ǒ ǫ Ǿ ǿ ɵ ʘ Θ Ο θ ο σ ό ϴ О о Ѳ ѳ ӧ Ө ө ӫ Օ օ ० ০ ੦ ૦ ୦ ௦ ం ౦ ಂ ೦ ം ഠ ๐ ໐ ဝ ၀ Ꮎ ᠐ ᴏ ọ ὀ ὁ ὂ ὃ ὄ ὅ ὸ ⴱ ⵔ 〇 0 O o
+I 1 i | ì í î ï ĩ ī ĭ į ı ǀ ǃ ǐ ɨ ɩ ɫ ɭ Ι ι І і ї Ӏ Ꭵ 丨 1 I i
+E 3 e è é ê ë ē ĕ ė ę ě Ɛ Ʒ ȅ ȇ Ȝ ȝ Ȩ ȩ ə ɛ ɜ ʒ Ε ε Є Е З е з є Ҙ ҙ Ӡ ӡ Յ ع ڠ ჳ Ꭼ ᴇ ḗ ḙ ḛ ḝ ẹ ẻ ẽ ế ề ể ễ ệ ⴹ 3 E e
+A 4 @ a À Á Â Ã Ä Å à á â ã ä å Ā ā Ă ă Ą ą Ǎ Ǟ ǟ ǡ Ǡ Ǻ ǻ Ȁ ȁ Ȃ Ȧ ɑ Α ά α А Ч а ч ٩ ۹ Ꭺ Ꮞ ᗅ Ḁ ḁ Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ ặ ἁ ἂ ἃ ἄ ἅ ἆ ἇ ὰ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾳ Ⓐ 4 @ A a
+G 6 g ĝ ğ ġ ģ Ɠ Ǥ ǥ ǧ ǵ ɠ ɡ ɢ Б б Ԍ ԍ ց Ꮐ Ᏻ ḡ 6 G g
+B b ß ƀ Ɓ Ƃ ƃ Ƅ ƅ ɓ ʙ Β β В Ъ Ь б в ъ ь Ѣ ѣ Ҍ ҍ ฿ Ꮟ Ᏼ ᖯ ᗷ B b
+C c ¢ ç ć ĉ ĉ ċ č Ƈ ƈ ʃ ς ϲ Ϲ С с Ҫ ҫ Ꮯ ᴄ ⅽ C c
+D d Ð ð ď Đ đ Ɖ Ɗ Ƌ ƌ ɖ ɗ Ԁ ԁ ᑯ ᗞ ᗪ ᴅ ᴆ ḍ ⅆ ⅾ D d
+F f Ƒ ƒ Ϝ ϝ Ғ ғ ᖴ ₣ F f
+H h ĥ Ħ ħ Ȟ ɦ ʜ ʰ ʱ Η ή Ћ Н н њ ћ Ң ң Һ һ Ӈ ӈ Ӊ ӊ ԋ հ Ꮋ Ꮒ Ᏺ ᕼ ḣ ḥ ḧ ḩ ḫ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ ὴ ᾐ Ⱨ H h
+J j ϳ Ј ј յ Ꭻ Ꮷ ᒍ ᴊ J j
+K k ķ ĸ Ƙ ƙ Κ κ К к ќ Қ қ ҝ Ҟ ҟ ҡ ӄ Ꮶ ᴋ K k
+L l £ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ɩ Ɨ ƚ Ꮮ ᴌ ḷ ₤ ℓ ⅼ L l
+M m ɯ ɱ Μ μ М м Ӎ ӎ Ꮇ ᗰ ᛗ ᴍ ḿ ṁ ṃ ₥ ⅿ Ⲙ 𐌼 M m
+N n ñ ń Ņ ņ ň Ɲ Ƞ ɲ ɳ Ν η ν ո ռ ᴎ ṇ ₦ N n
+P p Þ þ Ƥ ƥ ƿ Ƿ Ρ ρ Р р ք Ꮲ ᑭ ᴘ Ṕ ṕ Ṗ ṗ ₧ P p
+Q q Ɋ ʠ Գ գ զ Q q
+R r ® Ŕ ŕ Ŗ ŗ Ř ř Ʀ Ȑ ȑ Ȓ ȓ ɼ ɽ ʀ ʳ ʴ ʵ ʶ Γ Г г я Ꭱ Ꮁ Ꮢ ᖇ Ṙ ṙ Ṛ ṛ Ṝ ṝ Ṟ ṟ ꭆ R r
+T t Ţ ţ Ť ť Ŧ ŧ ƫ Ƭ ƭ Ʈ Ț ț ʈ Τ τ Т т Ҭ ҭ ᴛ ṭ ₸ T t
+U u ù ú û ü ũ ū ŭ ů ű ų Ʊ Ʋ ǔ ǖ ǘ ǚ ǜ ʊ ʋ υ ц Ա Մ Ս ս ᘴ ᥙ ℧ U u
+V v Ѵ ѵ Ꮩ ᐯ ᴠ V v
+W w ŵ ɯ ω Ꮃ Ꮤ ᗯ ᴡ ẁ ẃ ẅ ẇ ẉ ₩ W w
+X x Χ χ Х х Ҳ ҳ ᕁ ᕽ ᙭ ᙮ X x
+Y y ý ÿ ŷ Ƴ ƴ Ȳ ȳ ʊ ʏ ʸ Ύ Υ γ υ ϋ ύ ϒ ϓ У у ў Ү ү Ұ ұ Ҷ ҷ Ӌ ӌ ӯ ӱ ӳ ყ Ꭹ Ꮍ ẏ ẙ ỳ ỵ ỷ ỹ ὑ ὓ ὕ ὗ ὺ ῠ ῡ Ῠ Ὺ Y y
+Z z ź ż ž Ƶ ƶ Ȥ ȥ ʐ Ζ Ꮓ ᴢ Z z
+Æ æ Ӕ ӕ
+IJ ij
+Œ œ
+ǝ Ə ɘ ə ɚ Ә ә
+Ơ ơ
+2 Ƨ ƨ Ϩ ϩ ᒿ 2
+DZ DŽ dz
+dz dž
+LJ lj
+NJ nj
+8 Ȣ ȣ ৪ ੪ ଃ 8
+? ʔ ?
+ɸ Φ φ ϕ Ф ф
+Δ δ ᐃ ᕷ
+Λ λ
+Ξ ξ
+Π π П п
+Ψ ψ
+Ж ж Җ җ
+И и Ҋ ҋ
+Л л Ӆ ӆ
+Ы ы
+Я я
+Ѽ ѽ
+Ґ ґ
+Ҽ ҽ Ҿ ҿ
+ա Ա
+բ Բ
+գ Գ
+դ Դ
+ե Ե
+զ Զ
+է Է
+ը Ը
+թ Թ
+ժ Ժ
+ի Ի
+լ Լ
+խ Խ
+ծ Ծ
+կ Կ
+հ Հ
+ձ Ձ
+ղ Ղ
+ճ Ճ
+մ Մ
+յ Յ
+ն Ն
+շ Շ
+ո Ո
+չ Չ
+պ Պ
+ջ Ջ
+ռ Ռ
+ս Ս
+վ Վ
+տ Տ
+ր Ր
+ց Ց
+ւ Ւ
+փ Փ
+ք Ք
+օ Օ
+ֆ Ֆ
+: ։ ׃ :
+́ ֜ ݇ ॔
+̊ ֯ ஂ ํ ໍ ံ ំ ៓
+̇ ֹ ׁ ׂ ׄ ݁ ं ਂ ં ்
+' ׳
+" ״
+ى ي ی
+̓ ُ
+، ٬
+ٔ ٴ
+ك ک
+ٹ ڻ
+ه ھ ہ ە
+ٻ ې
+ۦ ۧ
+۟ ۬
+٠ ۰
+١ ۱
+٢ ۲
+٣ ۳
+٧ ۷
+٨ ۸
+. ܂
+ܼ ݂
+̣ ़ ় ਼ ઼ ଼
+̠ ॒
+̀ ॓
+9 ৭ ੧ ୨ 9
+ঃ ਃ ః ಃ
+ॆ ੋ
+् ੍ ્
+ऽ ઽ
+ु ુ
+ू ૂ
+२ ૨
+३ ૩
+४ ૪
+८ ૮
+ஐ ஜ ജ
+ஈ ர ா
+ன ை
+ள ௗ
+க ௧
+உ ௨ ഉ
+ச ௪
+எ ௭
+அ ௮
+ய ௰
+௳ ௵
+ஷ ௸
+డ ఢ
+బ భ
+వ ష
+అ ಅ
+ఆ ಆ
+ఇ ಇ
+ఒ ಒ
+ఓ ಓ
+ఔ ಔ
+జ ಜ
+ఞ ಞ
+ణ ಣ
+య ಯ
+ఱ ಱ
+ల ಲ
+౧ ೧
+౨ ೨
+౯ ೯
+ண ണ
+ര റ
+ழ ഴ
+ஶ ശ
+ி ി ീ
+ூ ു ൂ ൃ
+ഞ ൡ
+ข ฃ
+ช ซ
+ฎ ฏ
+ค ด ต
+ฑ ท
+ฆ ม
+า ๅ
+จ ຈ
+ย ຍ
+บ ບ
+ป ປ
+ฝ ຝ
+พ ພ
+ฟ ຟ
+ุ ຸ
+ู ູ
+่ ່ ់
+้ ້
+๊ ໊
+๋ ໋
+་ ༌
+· ᐧ
+ᐡ ᓑ
+ᒐ ᘂ
+ᒉ ᘃ
+ᓓ ᘄ
+ᓚ ᘇ
+ᕃ ᘢ
+ᕆ ᘣ
+ᕊ ᘤ
+Ω ᘯ ᘵ
+ᘮ ᘴ
+អ ឣ
+ิ ិ
+ี ី
+ึ ឹ
+ื ឺ
+ฯ ។
+๚ ៕
+๏ ៙
+๛ ៚
+ᡜ ᢖ
+ ​
+へ ヘ ヘ
+㑇 㑳
+㘎 㘚
+㤘 㥮
+㧐 㩳
+㖈 䎛
+䎬 䎱
+㬻 䐠
+䙌 䙡
+䝼 䞍
+䥇 䦂
+䦛 䦶
+䦟 䦷
+䱷 䲣
+丄 上 仩
+丅 下
+丏 丐
+世 丗 卋
+丘 丠 坵
+丟 丢
+両 两 兩
+久 乆
+乗 乘
+乱 乿 亂
+乾 亁 干 幹 榦 漧
+丌 亓 其
+丼 井
+亘 亙
+亚 亜 亞
+享 亯
+京 亰
+亡 亾 兦
+仙 仚 僊
+五 伍
+伫 佇
+仰 佒
+仏 佛 彿 髴
+伲 你 儞 奶 妳 嬭
+並 併 倂 并 幷 竝
+仑 侖 崘 崙
+价 価 價
+佞 侫
+侣 侶
+伣 俔
+侠 俠
+伩 信
+俁 俣
+伡 俥
+俛 俯 頫
+伥 倀
+伜 倅
+俩 倆
+俫 倈
+仓 倉
+个 個 箇
+们 們
+仿 倣 彷 髣
+伦 倫
+俱 倶
+俭 倹 儉
+値 值
+伟 偉
+侧 側
+侦 偵 遉
+偷 偸 婾 媮
+俻 偹 備 备
+伪 偽 僞
+伧 傖
+伞 傘 繖
+俲 傚 効 效
+佣 傭
+偬 傯
+传 傳
+伛 傴
+债 債
+伤 傷
+倾 傾
+偻 僂
+仅 僅
+佥 僉
+侨 僑
+仆 僕
+侥 僥 儌 徺
+偾 僨
+僣 僭
+仪 儀
+俊 儁
+侬 儂
+亿 億
+侩 儈
+傻 儍
+傤 儎
+傧 儐
+俦 儔
+侪 儕
+偿 償
+优 優
+储 儲
+倏 儵
+俪 儷
+傩 儺
+傥 儻
+俨 儼
+儿 児 兒
+兌 兑
+兎 兔
+兖 兗
+俞 兪 鄃
+內 内
+冊 册
+冐 冒
+净 凈 浄 淨
+冻 凍
+准 凖 準
+凛 凜
+凡 凢 凣
+凯 凱
+凭 凴 憑
+兇 凶
+函 凾 肣
+刀 刂
+刃 刄
+刊 刋
+删 刪
+別 别 彆 憋
+创 刱 剙 創
+倦 券 劵
+刦 刼 劫
+刺 刾 朿
+刴 剁
+刭 剄
+则 則
+克 剋 尅
+刹 剎
+刬 剗 剷 鏟 铲
+倳 剚
+刚 剛
+剑 剣 劍 劒 劔 鐱
+剂 剤 劑
+剝 剥
+剐 剮
+剩 剰 賸
+剀 剴
+刮 劀 颳
+划 劃
+剳 劄 扎 札 箚 紥 紮
+剧 劇
+刘 劉
+刽 劊
+剿 劋 勦
+刿 劌
+働 动 動
+劳 労 勞
+劲 勁
+劾 勓
+勖 勗
+务 務
+勋 勛 勲 勳
+势 勢
+劝 勧 勸
+勚 勩
+劢 勱
+励 勵
+勻 匀
+匢 匫
+匦 匭
+匮 匱 鐀
+区 區
+仟 千 韆
+劦 协 協 恊
+卍 卐
+卆 卒
+单 単 單
+佔 占
+却 卻
+即 卽
+厍 厙
+厅 厛 庁 廰 廳
+厕 厠 廁
+历 厤 暦 曆 歴 歷
+厌 厭 猒
+厂 厰 廠
+厉 厲
+严 厳 嚴
+厣 厴
+叁 参 參 叄 葠 蓡
+叜 叟
+丛 叢 欉 藂
+勾 句
+仝 同 衕
+吳 吴 呉
+吕 呂 郘
+吻 呅 呡
+吿 告
+吶 呐
+吞 呑
+呪 咒
+偺 咱 喒
+呙 咼
+呱 哌
+员 員
+呗 唄
+哑 唖 啞 痖 瘂
+吣 唚
+启 啓 啔 啟
+咷 啕
+啖 啗 噉 嚪
+唡 啢
+哲 喆
+㖞 喎
+唤 喚
+唧 喞
+吅 喧 諠
+丧 喪
+吃 喫
+乔 喬
+哟 喲
+喩 喻
+呛 嗆
+啬 嗇
+唝 嗊
+吗 嗎
+呜 嗚
+唢 嗩
+呵 嗬 訶 诃
+哔 嗶
+叫 嘂
+叹 嘆 歎
+傮 嘈
+喽 嘍
+呼 嘑 虖 謼
+啯 嘓
+呕 嘔
+啧 嘖
+唛 嘜
+啸 嘨 嘯
+哗 嘩 譁
+唠 嘮
+叽 嘰
+喟 嘳 欳
+咀 嘴
+哓 嘵
+呒 嘸
+啴 嘽
+嘘 噓
+噅 噕
+咝 噝
+哒 噠
+哝 噥
+哕 噦
+噐 器
+嗳 噯
+哙 噲
+喷 噴 歕
+吨 噸
+喑 噾 瘖
+咛 嚀
+吓 嚇
+哜 嚌
+嘗 嚐 尝 甞
+嚏 嚔
+噜 嚕
+啮 嚙 囓 齧
+咽 嚥
+呖 嚦
+咙 嚨
+向 嚮 曏
+亸 嚲
+喾 嚳
+嘤 嚶 譻
+嚣 嚻 囂
+啜 嚽
+啭 囀
+嗫 囁
+冁 囅
+呓 囈 寱
+啰 囉
+嘱 囑
+囘 回 囬 廻 廽 迴 逥
+团 団 團 糰
+冏 囧
+囪 囱
+囲 围 圍
+囯 国 圀 國
+図 图 圖
+円 圆 圎 圓
+囵 圇
+圈 圏
+园 園
+压 圧 壓
+凷 块 塊
+坏 坯 壊 壞 瘣
+垄 垅 壟 壠
+垛 垜
+圻 垠
+圣 垩 堊 聖
+坝 垻 壩
+垂 埀
+埒 埓
+垭 埡
+坤 堃
+坚 堅
+垴 堖
+埚 堝
+垚 堯 尧 尭
+场 場 塲
+垲 塏
+埘 塒
+凃 塗 涂
+冢 塚
+坞 塢
+埙 塤 壎
+塡 填
+塜 塳
+堋 塴
+堑 塹
+垫 墊
+塈 墍
+塔 墖
+坠 墜
+増 增
+地 墬
+堕 墮 墯
+坟 墳
+墙 墻 牆
+垦 墾
+坛 壇 罈 罎
+垱 壋
+堧 壖
+垒 壘 壨
+圹 壙
+垆 壚 罏
+坜 壢
+喦 壧 岩 嵒 巌 巖 碞 礹
+塆 壪
+壮 壯
+一 壱 壹 弌
+卖 売 賣
+壶 壷 壺
+壸 壼
+墫 壿 樽 罇 蹲
+壽 夀 寿
+变 変 變
+卯 夘 戼
+多 夛
+亱 夜
+够 夠
+伙 夥
+伕 夫
+侇 夷
+夹 夾 裌
+匳 奁 奩
+奂 奐
+奥 奧
+奖 奨 奬 獎
+夺 奪 敓
+奋 奮
+䚶 妖 祅 訞
+妆 妝
+妒 妬
+姉 姊
+姍 姗
+妊 姙
+奸 姦
+侄 姪
+姫 姬
+妍 姸
+奼 姹
+喃 娚 諵
+姢 娟
+娛 娯 娱
+娿 婀
+娄 婁
+倇 婉
+姻 婣
+妇 婦
+娅 婭
+姐 媎
+娲 媧
+保 媬
+妫 媯 嬀
+媪 媼
+妈 媽
+妪 嫗
+妩 嫵
+媠 嫷
+媌 嫹
+娴 嫺 嫻
+婳 嫿
+媭 嬃
+娆 嬈
+婵 嬋
+娇 嬌
+嫱 嬙
+嫋 嬝 袅 裊 褭
+嫒 嬡
+娘 嬢 孃
+嫔 嬪
+婴 嬰
+嬤 嬷
+婶 嬸
+娈 孌
+孙 孫
+孚 孵
+孳 孶
+学 學 斈
+孼 孽
+孪 孿
+冗 宂
+侒 安
+吰 宏
+冝 宜
+实 実 實
+宫 宮
+傢 家
+冤 寃
+宻 密
+冦 寇
+冨 富
+宁 寍 寕 寜 寧
+宽 寛 寬
+寑 寝 寢
+嗼 寞
+审 審
+写 寫
+宝 寳 寶
+宠 寵
+将 將
+专 專
+寻 尋
+对 對
+导 導
+尒 尓 尔 爾
+塵 尘
+尙 尚
+尟 尠 鮮 鲜
+尪 尫
+尴 尷
+儘 尽 盡
+侷 局 跼
+屆 届 艐
+尸 屍
+屃 屓 屭
+屏 屛 庰
+屡 屢
+层 層
+屦 屨
+属 屬
+出 岀 齣
+亗 岁 歲 歳
+冈 岗 岡 崗
+坡 岥
+岭 岺 嶺
+峨 峩
+峯 峰
+岘 峴
+岛 島 嶋 嶌
+峡 峽
+崇 崈
+华 崋 華
+崃 崍
+埼 崎 碕
+岷 崏
+崐 崑 昆 晜
+崕 崖
+峥 崢
+岽 崬
+嵆 嵇
+岚 嵐
+嵏 嵕
+嵯 嵳
+嵝 嶁
+崭 嶄
+岖 嶇
+嵚 嶔
+崂 嶗
+峤 嶠
+峣 嶢
+峄 嶧
+峃 嶨
+峱 嶩
+崄 嶮
+嵘 嶸
+屿 嶼
+岳 嶽
+岿 巋
+峦 巒
+巅 巓 巔
+巢 巣 漅
+巯 巰
+卮 巵
+卷 巻 捲
+巺 巽
+佈 布
+帅 帥
+师 師
+带 帯 帶
+帡 帲
+帐 帳 賬 账
+帧 幀
+冪 幂 羃
+帏 幃
+帮 幇 幚 幫 縍 鞤
+帼 幗 蔮
+帻 幘
+幕 幙
+帜 幟
+币 幣 幤
+帱 幬
+倖 幸
+么 幺 庅 麼 麽
+几 幾
+仄 庂
+广 広 廣
+厎 底
+坫 店
+厐 庞 龎 龐
+坐 座
+库 庫
+庶 庻 謶
+寓 庽
+庙 庿 廟
+厢 廂
+废 廃 廢 癈
+厩 廄 廏 廐
+厦 廈
+亷 廉 覝
+庼 廎
+席 廗 蓆
+厨 廚
+厮 廝
+庑 廡
+廩 廪 禀 稟
+庐 廬
+巡 廵
+乃 廼 迺
+卄 廿
+二 弍 貮 貳 贰
+弑 弒
+吊 弔
+冞 弥 彌 瀰
+弪 弳
+张 張
+強 强 彊
+弹 弾 彈
+发 彂 發 髪 髮
+彉 彍
+弯 彎
+彐 彑
+帰 归 歸 皈
+噹 当 當
+彔 录 錄 録
+匯 彙 彚 汇 滙
+彛 彜 彝 彞
+彟 彠
+彥 彦
+份 彬
+彨 彲
+往 徃 迬
+佷 很
+佪 徊
+后 後
+径 徑 迳 逕
+从 従 從
+徕 徠
+复 復 複 覆
+傍 徬
+傜 徭
+征 徴 徵
+徳 德 悳 惪
+彻 徹
+仁 忈
+刌 忖
+应 応 應 譍
+唸 念
+佝 怐
+忣 急
+匆 怱 悤
+他 怹
+怳 恍
+恆 恒
+卹 恤 賉
+噁 恶 悪 惡
+吝 悋
+恂 悛
+悅 悦
+悞 悮 誤 误
+忰 悴
+怅 悵
+悹 悺
+凄 悽 淒
+悐 惕
+恵 惠 憓
+恼 惱
+恽 惲
+恻 惻
+恪 愘
+惬 愜
+媿 愧
+悫 愨 慤
+怆 愴
+恺 愷
+博 愽
+忾 愾
+恿 慂
+态 態
+愠 慍
+愼 慎 昚 眘
+剽 慓
+惨 慘
+惭 慙 慚
+恸 慟 憅
+惯 慣
+怄 慪
+怂 慫
+悭 慳
+慑 慴 懾
+嫞 慵
+庆 慶
+忧 憂
+惫 憊
+怜 憐
+愦 憒
+慭 憖
+喜 憙
+惮 憚
+愤 憤
+憇 憩
+悯 憫
+怃 憮
+宪 憲
+忆 憶
+儆 憼
+勤 懃 瘽
+恳 懇
+怿 懌
+怀 懐 懷 褢 褱
+嬾 懒 懶
+懍 懔
+怼 懟
+懑 懣
+懦 懧
+恹 懨
+惩 懲
+悬 懸
+忏 懺
+惧 懼
+恋 戀
+戆 戇
+戋 戔
+戛 戞
+战 戦 戰
+戗 戧
+戩 戬
+戏 戯 戱 戲
+戶 户 戸
+戻 戾 盭
+執 执 瓡
+于 扵 於
+刔 抉
+伔 抌
+報 报
+扺 抵 牴 羝 觝
+伸 抻
+払 拂
+抚 拊 撫
+抛 拋
+抜 拔
+拕 拖
+抃 拚
+拜 拝
+儗 拟 擬
+扩 拡 擴
+択 择 擇
+拏 拿
+挅 挆
+举 挙 擧 舉
+挟 挾
+八 捌
+扞 捍 擀
+拽 捙
+挩 捝
+扪 捫
+拠 据 據
+总 捴 搃 摠 総 縂 總
+扫 掃
+抡 掄
+㧏 掆
+挜 掗
+挣 掙
+挂 掛 罣
+匊 掬
+拣 揀
+扬 揚 颺 飏
+换 換
+揪 揫
+掲 揭
+挥 揮
+愋 援
+插 揷
+偝 揹 背
+揯 搄
+捁 搅 撹 攪
+冓 搆 构 構
+㩁 搉 榷
+扠 搋
+损 損
+揺 搖 摇
+捣 搗 擣
+捜 搜 騪
+扼 搤 搹
+捶 搥
+扇 搧
+搨 搭 撘
+掏 搯
+揾 搵
+抢 搶
+捂 摀
+扛 摃
+挕 摄 攝
+捈 摅 攄
+掴 摑
+掼 摜
+搂 摟
+拓 摭
+挚 摯
+抠 摳
+抟 摶
+折 摺
+掺 摻
+挳 摼
+击 撃 擊
+掘 撅
+捞 撈
+挦 撏
+撐 撑 牚
+挠 撓
+捻 撚
+挢 撟 譑
+掸 撣
+拨 撥
+扯 撦
+扑 撲 攴
+揿 撳
+挞 撻
+挝 撾
+捡 撿
+拥 擁
+掳 擄
+挡 擋
+㧟 擓
+担 擔
+挤 擠
+擪 擫
+摈 擯
+拧 擰
+搁 擱
+掷 擲
+撷 擷
+摆 擺 襬
+擞 擻
+撸 擼
+扰 擾
+撵 攆
+拢 攏
+攅 攒 攢
+拦 攔
+撄 攖
+搀 攙
+撺 攛
+携 攜
+挛 攣
+摊 攤
+揽 攬
+搘 支
+収 收
+合 敆 閤
+叙 敍 敘
+敎 教
+敠 敪
+愍 敯
+敌 敵
+尃 敷
+数 數
+夐 敻
+敛 斂 歛
+敩 斅 斆
+亝 斉 齊 齐
+斋 斎 齋
+庾 斔 斞
+斓 斕
+亹 斖
+斩 斬
+断 斷
+旌 旍
+旂 旗
+既 旣
+恉 旨
+旭 旮
+反 昄
+升 昇 陞
+昊 昦
+是 昰
+时 時
+晃 晄
+晉 晋
+昼 晝
+䀿 晣
+晚 晩
+晓 暁 曉
+晕 暈
+晖 暉
+映 暎
+晻 暗 闇
+旸 暘
+暂 暫 蹔
+昵 暱
+了 暸 瞭
+暨 曁 臮 蔇
+晔 曄 曅
+昙 曇
+昲 曊
+暧 曖
+旷 曠
+叠 曡 疉 疊 迭
+昽 曨
+晒 曬
+曳 曵
+㫚 曶
+书 書
+曹 曺
+会 會
+朖 朗 烺
+朞 期
+望 朢
+夲 本
+朮 术 術
+朵 朶
+圬 杇
+來 来
+傑 杰
+东 東
+松 枀 鬆
+朼 枇
+拐 枴
+杮 枾 柿
+奈 柰
+查 査 楂
+柩 柾
+柵 栅
+枣 栆 棗
+墂 标 標
+尌 树 樹
+契 栔
+慄 栗
+挍 校
+柏 栢
+桑 桒
+杯 桮 盃
+柒 桼 漆
+杆 桿
+杍 梓
+栀 梔
+枧 梘
+条 條
+枭 梟 鷍
+夢 梦
+梲 棁
+弃 棄
+棊 棋 碁
+枨 棖
+栋 棟
+㭎 棡
+栈 棧 轏
+栖 棲
+梾 棶
+桌 棹 櫂
+桠 椏
+检 検 檢
+撱 椭 楕 橢
+棕 椶
+枮 椹
+杨 楊
+揆 楑
+枫 楓
+椘 楚 檚
+枏 楠
+桢 楨
+业 業
+梅 楳
+极 極
+乐 楽 樂
+楡 榆
+桹 榔
+桀 榤
+搾 榨 醡
+杩 榪
+栄 榮 荣
+榅 榲
+桤 榿
+核 槅 覈
+枪 槍
+杠 槓
+样 様 樣
+槇 槙
+榎 槚 檟
+梹 槟 檳
+梿 槤
+椠 槧
+椁 槨
+概 槪
+桨 槳
+椝 槼 規 规
+桩 樁 蹖
+枞 樅
+梁 樑
+楼 樓
+朻 樛
+枢 樞
+榝 樧 蔱
+权 権 權
+桪 樳
+朴 樸
+桦 樺
+榛 樼 獉
+椫 樿
+桥 橇 橋 鞒 鞽
+桡 橈
+樘 橕
+机 機
+横 橫
+樐 橹 櫓 艣 艪
+槥 檅
+槜 檇
+柽 檉
+档 檔
+枰 檘
+桧 檜
+樯 檣
+檁 檩
+梼 檮
+台 檯 籉 臺 颱
+柠 檸
+槛 檻 轞
+檃 檼 櫽
+柜 櫃
+榈 櫚
+栉 櫛
+椟 櫝
+橼 櫞
+栎 櫟
+橱 櫥
+槠 櫧
+栌 櫨
+枥 櫪
+橥 櫫
+榇 櫬 藽
+栊 櫳
+榉 櫸
+樱 櫻
+栏 欄 欗
+椤 欏
+栾 欒
+榄 欖
+棂 欞
+懽 欢 歓 歡 讙 驩
+慾 欲
+嗽 欶
+欧 歐
+欤 歟
+岐 歧
+步 歩
+歹 歺
+夭 殀
+歿 殁
+残 殘
+殒 殞
+殇 殤
+㱮 殨
+殚 殫
+僵 殭
+殓 殮
+殡 殯
+歼 殲
+杸 殳
+慇 殷
+杀 殺 閷
+壳 殻 殼
+毀 毁 譭
+敲 毃
+殴 毆
+医 毉 醫
+毎 每
+毗 毘
+斃 毙
+毤 毻
+毵 毿
+毡 氈
+氇 氌
+气 氣
+氢 氫
+氩 氬
+氲 氳
+冰 氷
+氾 汎 泛
+汙 汚 污
+汏 汰 溙
+决 決
+沈 沉 渖 瀋
+冱 沍
+冲 沖 盅 祌 衝 衶
+伂 沛
+沒 没
+沱 沲
+况 況
+桴 泭
+泊 泺 濼
+沢 泽 澤
+冽 洌
+汜 洍
+伊 洢
+泄 洩 渫
+洁 洯 潔
+汹 洶
+冾 洽
+泒 派
+嚠 浏 瀏
+汻 浒 滸
+浃 浹
+泾 涇
+泪 涙 淚
+涗 涚
+凉 涼
+汸 淓
+泦 淗
+浙 淛
+倪 淣
+凌 淩
+沦 淪
+婬 淫
+涞 淶
+凊 淸 清
+浅 淺
+济 済 濟
+涉 渉
+淵 渊 渕 灁
+涩 渋 澀 澁 濇 瀒
+淥 渌
+巉 渐 漸
+涣 渙
+减 減
+沨 渢
+涡 渦 濄
+测 測
+渇 渴
+浑 渾
+湆 湇
+凑 湊
+浈 湞
+涌 湧
+汤 湯
+沩 溈 潙
+厵 源
+沟 溝
+温 溫
+浉 溮
+泝 溯 遡
+涢 溳
+尿 溺
+湿 溼 濕
+沧 滄
+汽 滊
+涤 滌
+満 满 滿
+浜 滨 濱
+沪 滬
+滞 滯
+渗 滲
+卤 滷 鹵
+浐 滻
+滚 滾
+渔 漁
+溇 漊
+溉 漑
+沤 漚
+汉 漢
+涟 漣
+洼 漥 窪
+渍 漬
+涨 漲
+溆 漵
+浆 漿
+漎 潀 潨
+滫 潃
+漱 潄
+泼 潑
+潛 潜 濳
+润 潤
+溱 潧
+浔 潯
+溃 潰
+滗 潷
+涠 潿
+澂 澄
+浇 澆
+涝 澇
+溜 澑
+浩 澔
+涧 澗
+潟 澙
+渑 澠
+浣 澣
+滪 澦
+泶 澩
+泠 澪
+漫 澫
+浍 澮
+淀 澱
+淡 澹
+㳠 澾
+浊 濁
+浓 濃
+沵 濔
+泞 濘
+溁 濚
+懞 濛 矇 蒙
+浕 濜
+涛 濤
+滥 濫
+浚 濬
+潍 濰
+溅 濺
+滤 濾
+漾 瀁
+澛 瀂
+滢 瀅
+渎 瀆
+汪 瀇
+泻 瀉
+濒 瀕
+泸 瀘
+沥 瀝
+潇 瀟
+潆 瀠
+濻 瀢
+潴 瀦
+泷 瀧
+濑 瀨 瀬
+潋 瀲
+澜 瀾
+沣 灃
+滠 灄
+潅 灌
+洒 灑
+滟 灔 灧 灩
+漓 灕
+滩 灘
+灏 灝
+湾 灣
+滦 灤
+滅 灭
+光 灮 炚 烡
+災 灾 烖
+炅 炔
+匟 炕
+曌 炤 照
+炮 炰 砲 礮
+昺 炳
+奌 点 點
+为 為 爲
+乌 烏
+灴 烘
+炯 烱
+烃 烴
+烉 焕 煥
+炃 焚
+无 無
+惸 焭 煢 茕
+炼 煉 鍊
+炜 煒
+暖 煖
+烟 煙 菸
+烬 煡 燼
+烦 煩
+炀 煬
+煑 煮
+煴 熅
+炝 熗
+熈 熙
+热 熱
+熹 熺
+炽 熾
+烨 燁
+焰 燄
+焌 燇
+灯 燈
+炖 燉
+烧 燒
+烂 燗 爛
+烫 燙
+煚 燛
+焖 燜
+営 營 营
+煰 燥
+灿 燦
+烛 燭
+煨 燰
+烩 燴
+燣 燷
+熏 燻
+焘 燾
+曜 燿 耀
+烁 爍
+炉 爐 鑪
+燨 爔
+爁 爦
+燯 爧
+争 爭
+愛 爱
+爷 爺
+俎 爼
+慡 爽
+丬 爿
+床 牀
+榜 牓
+牍 牘
+它 牠
+氂 牦 犛 髦
+牵 牽
+犁 犂
+奔 犇 逩
+犊 犢
+牺 犧
+状 狀
+狂 狅
+仲 狆
+佬 狫
+狭 狹
+狈 狽
+狰 猙
+犹 猶
+狲 猻
+狯 猾 獪
+犸 獁
+呆 獃 騃
+狱 獄
+狮 獅
+僮 獞
+狷 獧
+独 獨
+猃 獫 玁
+狝 獮
+狞 獰
+猎 獵
+犷 獷
+兽 獸
+獭 獺
+献 獻
+猕 獼
+猡 玀
+妙 玅
+兹 玆 茲
+玟 珉 琝
+珍 珎
+圭 珪
+佩 珮
+现 現
+毬 球
+彫 琱 雕 鵰
+珲 琿
+珶 瑅
+玮 瑋
+玚 瑒 璗
+琐 瑣
+玛 瑪
+琅 瑯
+玱 瑲
+瑤 瑶
+琍 璃
+琁 璇 璿
+琏 璉
+琼 璚 瓊
+琎 璡
+玑 璣
+瑷 璦
+珰 璫
+环 環
+玙 璵
+瑸 璸
+玺 璽
+珑 瓏
+璎 瓔
+瓒 瓚
+瓶 甁 缾
+瓷 甆
+瓯 甌
+瓮 甕 罋
+甇 甖 罂 罃 罌
+甛 甜
+产 產 産
+囌 甦 苏 蘇 蘓
+圢 町
+氓 甿
+暢 畅
+亩 畆 畝 畮
+堺 界 畍
+甽 畎
+愄 畏
+畄 留
+毕 畢 罼 鏎
+略 畧
+画 畫 畵
+畬 畭 畲
+异 異
+墥 畽 疃
+畴 疇
+匹 疋
+恫 痌
+痉 痙
+疿 痱
+淋 痲 痳 蔴 麻
+悸 痵
+疪 痹 痺
+愈 瘉 癒
+疯 瘋
+疡 瘍
+痪 瘓
+瘗 瘞
+疮 瘡
+疟 瘧
+瘆 瘮
+疭 瘲
+瘘 瘺 瘻
+疗 療
+痨 癆
+痫 癇
+瘅 癉
+疠 癘
+癛 癝
+瘪 癟
+痴 癡
+痒 癢
+疖 癤
+症 癥
+疬 癧
+癞 癩
+瘨 癫 癲
+癣 癬
+瘿 癭
+瘾 癮
+痈 癰
+瘫 癱
+皁 皂
+皋 皐
+暠 皓 皜
+晥 皖
+皑 皚
+皎 皦
+疱 皰
+皲 皸
+皱 皺
+皷 皼 鼓
+盇 盍
+琖 盏 盞 醆
+塩 盐 鹽
+洀 盘 盤
+盗 盜
+监 監
+卢 盧
+潒 盪 荡 蕩 蘯
+盲 盳
+眞 真
+众 眾 衆
+困 睏
+睁 睜
+睐 睞
+眷 睠
+睪 睾
+叡 睿
+偢 瞅
+眯 瞇
+眍 瞘
+䁖 瞜
+瞒 瞞
+瞚 瞬
+瞆 瞶
+睑 瞼
+矈 矏
+眬 矓
+瞰 矙
+瞩 矚
+榘 矩
+矫 矯
+揅 研 硏
+柱 砫
+朱 硃
+硁 硜
+硖 硤
+砗 硨
+峺 硬
+塙 确 確 碻 礭
+砚 硯
+椗 碇
+砕 碎
+砣 碢
+硙 碨 磑
+硕 碩
+砧 碪
+砀 碭
+瑙 碯
+掽 碰 踫
+硷 碱 礆 险 險 鹼
+砜 碸
+码 碼
+滑 磆
+砖 磚
+碌 磟
+硵 磠
+碜 磣
+磊 磥
+碛 磧
+矶 磯
+燐 磷
+硗 磽
+硚 礄
+础 礎
+碍 礙
+碝 礝
+矿 礦 鑛
+砺 礪
+砾 礫
+矾 礬
+砻 礱 鑨
+礤 礸
+柴 祡
+旅 祣
+祝 祩
+祿 禄
+祸 禍
+祯 禎
+祎 禕
+祃 禡
+祺 禥
+御 禦
+禅 禪
+礼 禮
+祢 禰
+祷 禱
+礿 禴
+厶 私
+禿 秃
+年 秊
+祇 秖
+祕 秘
+偁 称 稱
+希 稀
+秆 稈
+稅 税
+棱 稜
+秸 稭 鞂
+种 種
+稲 稻
+乩 稽
+稾 稿
+䅟 穇
+稚 穉
+稑 穋
+稣 穌
+积 積
+秋 穐 鞦 龝
+穂 穗 穟
+秾 穠
+穑 穡
+秽 穢 薉
+稳 穩
+獲 穫 获
+穞 穭
+岤 穴
+挖 穵
+宇 穻
+窓 窗
+堷 窨
+窝 窩
+寠 窭 窶
+穷 窮
+窑 窯 窰
+窎 窵
+窥 窺 闚
+窜 竄
+窍 竅
+窦 竇
+灶 竈
+窃 竊
+奇 竒
+俟 竢
+竑 竤
+竖 竪 豎
+竞 競 竸
+竺 笁
+巴 笆
+咲 笑
+矢 笶
+牋 笺 箋
+笔 筆
+笻 筇
+笅 筊
+斤 筋 觔
+笋 筍
+畣 答 荅
+策 筞 筴
+笕 筧
+筒 筩
+祘 筭 算
+笮 筰
+筱 筿 篠
+竾 箎 篪
+筝 箏
+拑 箝 鉗 钳
+棰 箠
+筦 管
+筑 築
+箧 篋
+筼 篔
+箬 篛
+笃 篤
+筛 篩
+笼 篭 籠
+筣 篱 籬
+彗 篲
+筚 篳
+笛 篴
+箦 簀
+筘 簆
+箳 簈
+篓 簍
+篡 簒
+箫 簘 簫
+箪 簞
+简 簡
+篑 簣
+檐 簷
+筜 簹
+篝 簼
+签 簽 籖 籤
+帘 簾
+篮 籃
+筹 籌
+籐 籘 藤
+箓 籙
+篯 籛
+箨 籜
+篽 籞
+籁 籟
+笾 籩
+簖 籪
+箩 籮
+吁 籲
+番 籵 蹯
+秈 籼
+秶 粢
+粤 粵
+粋 粹
+稗 粺
+粈 糅
+稰 糈
+粽 糉 糭
+爢 糜
+糁 糝
+粪 糞
+穅 糠
+粮 糧
+粝 糲
+籴 糴
+糱 糵
+粜 糶
+丝 糸 糹 絲 纟
+係 系 繫
+糺 糾 纠
+帋 紙 纸
+榡 素
+䌷 紬 綢 绸
+弦 絃
+紲 絏 绁
+絋 絖 纊 纩
+毧 絨 绒 羢
+累 絫 纍
+絕 絶 绝
+紖 絼 纼
+紼 綍 绋
+捆 綑
+経 經 经
+棨 綮
+彩 綵
+紧 緊
+綏 緌 绥
+綠 緑 绿
+緒 緖 绪
+綫 線 线 缐
+緣 縁 缘
+緪 縆
+緼 縕 缊 褞
+絛 縚 縧 绦
+县 縣
+摍 縮 缩
+縦 縱 纵
+孅 縴 纎 纖 纤
+絷 縶 馽
+勣 績 绩
+緐 繁
+綳 繃 绷
+綉 繍 繡 绣
+絵 繢 繪 绘 缋
+繈 繦
+縄 繩 绳
+継 繼 继
+纏 纒 缠
+才 纔
+纉 纘 缵
+紆 纡
+紅 红
+紂 纣
+紇 纥
+約 约
+級 级
+紈 纨
+紀 纪
+紉 纫
+緯 纬
+紜 纭
+紘 纮
+純 纯
+紕 纰
+紗 纱
+綱 纲
+納 纳
+紝 纴
+綸 纶
+紛 纷
+紋 纹
+紡 纺
+紵 纻
+紐 纽
+紓 纾
+紺 绀
+紱 绂
+練 练
+組 组
+紳 绅
+細 细
+織 织
+終 终
+縐 绉
+絆 绊
+絀 绌
+紹 绍
+繹 绎
+紿 绐
+綁 绑
+結 结
+絝 绔
+繞 绕 遶
+絰 绖
+絎 绗
+給 给
+絢 绚
+絳 绛
+絡 络
+絞 绞
+統 统
+綆 绠
+綃 绡
+絹 绢
+綌 绤
+綈 绨
+綾 绫
+續 续
+綺 绮
+緋 绯
+綽 绰
+緔 绱
+緄 绲
+維 维
+綿 绵
+綬 绶
+綯 绹
+綹 绺
+綣 绻
+綜 综
+綻 绽
+綰 绾
+綴 缀
+緇 缁
+緙 缂
+緗 缃
+緘 缄
+緬 缅
+纜 缆
+緹 缇
+緲 缈
+緝 缉
+緦 缌
+綞 缍
+緞 缎
+緶 缏
+緱 缑
+縋 缒
+緩 缓
+締 缔
+縷 缕
+編 编
+緡 缗
+縉 缙
+縛 缚
+縟 缛
+縝 缜
+縫 缝
+縗 缞
+縞 缟
+縭 缡 褵
+縊 缢
+縑 缣
+繽 缤
+縹 缥
+縵 缦
+縲 缧
+纓 缨
+繆 缪
+繅 缫
+纈 缬
+繚 缭
+繕 缮
+繒 缯
+繮 缰 韁
+繾 缱
+繰 缲
+繯 缳
+繳 缴
+卸 缷
+堈 缸
+網 网
+罘 罦
+寘 置
+罚 罰 罸
+傌 罵 駡 骂
+罢 罷
+罶 羀
+罥 羂
+罗 羅
+罴 羆
+羁 羇 羈 覉 覊
+媺 美
+义 羛 義
+羣 群
+羟 羥
+羡 羨
+羮 羹
+翄 翅 翨
+习 習
+翆 翠
+纛 翢
+翚 翬
+翭 翵
+翱 翶 翺
+翘 翹
+繙 翻 飜
+翙 翽
+老 耂
+攷 考
+耇 耈 耉
+端 耑
+秏 耗
+秐 耘
+刞 耝
+枷 耞
+借 耤 藉
+耧 耬
+耢 耮
+櫌 耰
+恥 耻
+婿 聟
+联 聨 聫 聮 聯
+聡 聪 聰
+声 聲
+耸 聳
+听 聴 聼 聽
+聩 聵
+聂 聶
+职 職
+聍 聹
+聋 聾
+聿 肀
+粛 肃 肅
+四 肆
+宍 肉
+疘 肛
+朌 肦 頒 颁
+肯 肻
+冑 胄
+肺 胇
+朐 胊
+朏 胐
+肢 胑
+勝 胜
+縃 胥
+朧 胧
+肐 胳
+㬵 胶 膠
+胷 胸
+朓 脁
+胁 脅 脇
+脈 脉
+胫 脛
+唇 脣
+朘 脧
+修 脩
+脫 脱
+胀 脹
+胼 腁
+倎 腆
+肾 腎
+胨 腖
+傶 腠
+脶 腡
+脑 腦
+肿 腫
+脚 腳
+肠 腸 膓
+腽 膃
+嗉 膆
+瘠 膌
+腘 膕
+肤 膚
+䏝 膞
+朣 膧
+腻 膩
+脆 膬
+羶 膻
+胆 膽
+脍 膾
+脓 膿
+肊 臆
+腊 臈 臘
+脸 臉
+脐 臍
+膑 臏 髌 髕
+膘 臕
+胭 臙
+胪 臚
+脏 臟 髒
+脔 臠
+臜 臢
+卧 臥
+临 臨
+殠 臭
+緻 致
+抭 舀
+舃 舄
+与 與
+兴 興
+旧 舊
+捨 舍 舎
+檥 舣 艤
+舡 舩 船
+桁 航
+柁 舵
+舶 艊
+舱 艙
+舰 艦
+舻 艫
+艰 艱
+艳 艶 艷 豔
+兿 艺 蓺 藝
+節 节
+羋 芈
+笀 芒
+刍 芻
+刈 苅
+芀 苕
+芶 苟
+瘔 苦
+苎 苧
+偀 英
+範 范
+茅 茆
+塋 茔
+繭 茧
+汒 茫
+艸 草 騲
+荆 荊
+茘 荔
+庄 荘 莊
+滎 荥
+犖 荦
+熒 荧
+廕 荫 蔭
+梪 荳 豆
+荇 莕
+茎 莖
+荚 莢
+苋 莧
+瑩 莹
+茻 莽
+苽 菇 菰
+苿 菋
+渮 菏
+果 菓
+卜 菔 蔔
+堇 菫 蓳
+庵 菴
+帚 菷
+春 萅
+苌 萇
+莱 萊 郲
+荽 萎
+荠 萕 薺
+縈 萦
+万 萬
+萱 萲
+荝 萴
+莴 萵
+菹 葅
+叶 葉
+菅 葌
+荭 葒
+着 著
+盖 葢 蓋
+荮 葤
+苇 葦
+荸 葧
+塟 葬
+椴 葮
+药 葯 薬 藥
+荤 葷 蔒
+莼 蒓 蓴
+莳 蒔
+莅 蒞
+苍 蒼
+荪 蓀
+簑 蓑
+莲 蓮
+苁 蓯
+荜 蓽
+菱 蔆
+蓘 蔉
+粗 蔍 觕 麁 麄 麆 麤
+蒌 蔞
+蒋 蔣
+葱 蔥
+茑 蔦
+蒍 蔿
+荨 蕁
+萌 蕄
+蒇 蕆
+橤 蕊 蕋 蘂
+荞 蕎
+荬 蕒
+芸 蕓
+莸 蕕
+荛 蕘
+萼 蕚
+蒉 蕢
+芜 蕪
+董 蕫
+萧 蕭
+稍 蕱
+蓣 蕷
+蕰 薀
+荟 薈
+蓟 薊
+芗 薌
+蔑 薎 衊
+姜 薑
+蔷 薔
+荙 薘
+剃 薙
+蕵 薞
+莶 薟
+荐 薦
+萨 薩
+籔 薮 藪
+薫 薰
+蓝 藍
+荩 藎
+蔵 藏
+蕅 藕
+蔾 藜
+荻 藡
+籓 藩
+䓖 藭
+蕴 藴 蘊
+苈 藶
+薯 藷
+蕏 藸
+蔼 藹 譪
+蔺 藺
+萚 蘀
+蕲 蘄
+芦 蘆
+苹 蘋
+蘏 蘔
+櫱 蘖
+檗 蘗
+藓 蘚
+菊 蘜
+蔹 蘞
+茏 蘢
+花 蘤
+兰 蘭
+蓠 蘺
+櫐 蘽
+萝 蘿
+蘷 虁
+慮 虑
+处 處
+虚 虛
+虏 虜
+号 號 譹
+暴 虣
+亏 虧
+虬 虯
+蘬 虺
+硥 蚌
+痐 蚘 蛔 蜖
+蚔 蚳
+蛄 蛌
+蛩 蛬
+蛱 蛺
+蜃 蜄
+蚬 蜆
+蜑 蜒
+蛻 蜕
+瘑 蜗 蝸
+蚣 蜙
+蚋 蜹
+蛪 蜺 霓
+蚀 蝕
+猬 蝟
+虾 蝦
+虱 蝨
+猿 蝯
+玳 蝳
+蜨 蝶
+蜋 螂
+蛳 螄
+蚁 螘 蟻
+蚂 螞
+蚊 螡 蟁
+萤 螢
+螗 螳
+蝼 螻
+螀 螿
+蛰 蟄
+蟆 蟇
+蝈 蟈
+螨 蟎
+虮 蟣
+蝉 蟬
+蛲 蟯
+虫 蟲
+蛏 蟶
+蚃 蠁
+蝇 蠅
+虿 蠆
+蝎 蠍
+蟒 蠎
+蟹 蠏
+蛴 蠐
+蝾 蠑
+蚝 蠔
+蝡 蠕
+蜡 蠟
+惷 蠢
+蛎 蠣
+蟏 蠨
+蝫 蠩
+劙 蠫
+蛊 蠱
+蚕 蠶
+蠧 蠹
+蛮 蠻
+蠷 蠼
+衂 衄
+啣 衔 銜
+弄 衖
+胡 衚 鬍
+卫 衛 衞
+紁 衩
+緷 衮 袞
+只 衹 隻
+毠 袈
+袌 袍
+衪 袘
+帙 袟
+袬 裕
+帬 裙 裠
+补 補
+装 裝
+裏 裡 里
+袴 裤 褲
+裴 裵
+臝 裸
+制 製
+帺 褀
+裹 褁
+惼 褊
+裈 褌
+袖 褎
+副 褔
+袆 褘
+裢 褳
+繿 褴 襤
+褛 褸
+亵 褻
+褒 襃
+裥 襇 襉
+袯 襏
+幱 襕 襴
+袄 襖
+裣 襝
+裆 襠
+袒 襢
+袜 襪 韈 韤
+衬 襯
+袭 襲
+襾 覀
+瞥 覕
+斍 覚 覺 觉
+眺 覜
+亲 親
+覌 観 觀 观
+覵 覸
+覧 覽 览
+見 见
+覎 觃
+覓 觅
+視 视
+覘 觇
+覬 觊
+覡 觋
+覿 觌
+覥 觍
+覦 觎
+覯 觏
+覲 觐
+覷 觑
+伋 觙
+解 觧
+觪 觲
+觞 觴
+觯 觶
+触 觸
+燕 觾 鷰
+言 訁 讠
+托 託 讬
+䜣 訢
+尤 訧
+哅 訩 讻
+愬 訴 诉
+注 註
+訾 訿
+呧 詆 诋
+咏 詠
+察 詧
+侘 詫 诧
+咯 詻
+訮 詽
+夸 誇
+忌 誋 諅
+志 誌
+欸 誒 诶
+悖 誖
+說 説 说
+訚 誾
+訰 諄 谆
+話 諙 话
+諌 諫 谏
+咨 諮 谘
+誊 謄
+啼 謕
+諡 謚 谥
+謠 謡 谣
+商 謪
+詛 謯 诅
+嘻 譆
+憝 譈
+証 證 证
+訛 譌 讹
+噊 譎 谲
+噂 譐
+撰 譔
+謨 譕 谟
+諩 譜 谱
+噪 譟
+善 譱
+护 護
+誉 譽
+謭 譾 谫
+慧 譿
+詟 讋
+䜩 讌
+仇 讎 讐 雠
+讆 讏
+譋 讕 谰
+讃 讚 賛 贊 赞
+計 计
+訂 订
+訃 讣
+認 认
+譏 讥
+訐 讦
+訌 讧
+討 讨
+讓 让
+訕 讪
+訖 讫
+訓 训
+議 议
+訊 讯
+記 记
+訒 讱
+講 讲
+諱 讳
+謳 讴
+詎 讵
+訝 讶
+訥 讷
+許 许 鄦
+論 论
+訟 讼
+諷 讽
+設 设
+訪 访
+訣 诀
+詁 诂
+評 评
+識 识
+詗 诇
+詐 诈
+診 诊
+謅 诌
+詞 词
+詘 诎
+詔 诏
+詖 诐
+譯 译
+詒 诒
+誆 诓
+誄 诔
+試 试
+詿 诖
+詩 诗
+詰 诘
+詼 诙
+誠 诚
+誅 诛
+詵 诜
+誕 诞
+詬 诟
+詮 诠
+詭 诡
+詢 询
+詣 诣
+諍 诤
+該 该
+詳 详
+諢 诨 顐
+詡 诩
+譸 诪
+誡 诫
+誣 诬
+語 语
+誚 诮
+誥 诰
+誘 诱
+誨 诲
+誑 诳
+誦 诵
+請 请
+諸 诸
+諏 诹
+諾 诺
+讀 读
+諑 诼
+誹 诽
+課 课
+諉 诿
+諛 谀
+誰 谁
+諗 谂
+調 调
+諂 谄
+諒 谅
+誶 谇
+談 谈
+讅 谉
+誼 谊
+謀 谋
+諶 谌
+諜 谍
+謊 谎
+諧 谐
+謔 谑
+謁 谒
+謂 谓
+諤 谔
+諭 谕
+諼 谖
+讒 谗
+諳 谙
+諺 谚
+諦 谛
+謎 谜
+諞 谝
+諝 谞
+讜 谠
+謖 谡
+謝 谢
+謗 谤
+謙 谦
+謐 谧
+謹 谨
+謾 谩
+謫 谪
+謬 谬
+譚 谭
+譖 谮
+譙 谯
+讞 谳
+譴 谴
+譫 谵
+讖 谶
+穀 谷
+溪 谿
+岂 豈
+丰 豊 豐
+登 豋
+拻 豗
+像 象
+豜 豣
+猪 豬
+豮 豶
+犲 豺
+狢 貉
+皃 貌
+狸 貍
+猫 貓
+玃 貜
+买 買
+戝 賊 贼
+賅 賌 赅
+宾 賓 賔
+串 賗
+琛 賝
+貭 質 质
+賮 贐 赆
+贋 贗 赝
+灨 贛 赣
+贓 贜 赃
+貝 贝
+貞 贞
+負 负
+貟 贠
+貢 贡
+財 财
+責 责
+賢 贤
+敗 败
+貨 货
+販 贩
+貪 贪
+貧 贫
+貶 贬
+購 购
+貯 贮
+貫 贯
+賤 贱
+賁 贲
+貰 贳
+貼 贴
+貴 贵
+貺 贶
+貸 贷
+貿 贸
+費 费
+賀 贺
+貽 贻
+贄 贽
+賈 贾
+賄 贿
+貲 赀
+賃 赁
+賂 赂
+資 资
+賕 赇
+賑 赈
+賚 赉
+賒 赊
+賦 赋
+賭 赌
+賫 赍 齎
+贖 赎
+賞 赏
+賜 赐
+贔 赑
+賙 赒
+賡 赓
+賠 赔
+賧 赕
+賴 赖 頼
+賵 赗
+贅 赘
+賻 赙
+賺 赚
+賽 赛
+賾 赜
+贇 赟
+贈 赠
+贍 赡
+贏 赢
+竀 赪 赬
+走 赱
+趁 趂
+赿 趆
+趋 趍 趨
+赶 趕
+赵 趙
+趱 趲
+趒 跳
+跥 跺
+疏 踈
+践 踐
+踂 踙
+蜷 踡
+殕 踣
+跴 踩
+踨 踪 蹤
+踊 踴
+禸 蹂
+跄 蹌
+跸 蹕 驆
+趟 蹚
+跬 蹞
+跡 蹟 迹
+跖 蹠
+蹒 蹣
+糟 蹧
+跷 蹺 蹻
+趮 躁
+跶 躂
+趸 躉
+踌 躊
+跻 躋
+跃 躍
+踯 躑
+跞 躒
+踬 躓
+蹰 躕
+跹 躚
+躗 躛
+蹑 躡
+蹿 躥
+躜 躦
+躏 躪
+耽 躭
+体 躰 軆 骵 體
+躱 躲
+躯 軀
+军 軍
+枙 軛 軶 轭
+軖 軠
+毂 軲 轂 轱
+挽 輓
+軽 輕 轻
+軿 輧
+舆 輿 轝
+輼 轀 辒
+車 车
+軋 轧
+軌 轨
+軒 轩
+軑 轪
+軔 轫
+轉 转
+輪 轮
+軟 软
+轟 轰
+軻 轲
+轤 轳
+軸 轴
+軹 轵
+軼 轶
+軤 轷
+軫 轸
+轢 轹
+軺 轺
+軾 轼
+載 载
+輊 轾
+轎 轿
+輈 辀
+輇 辁
+輅 辂
+較 较
+輒 辄
+輔 辅
+輛 辆
+輦 辇
+輩 辈
+輝 辉
+輥 辊
+輞 辋
+輬 辌
+輟 辍
+輜 辎
+輳 辏
+輻 辐
+輯 辑
+輸 输
+轡 辔
+轅 辕
+轄 辖
+輾 辗
+轆 辘
+轍 辙
+轔 辚
+罪 辠
+辢 辣
+办 辦 辧 辨 釆
+辞 辭
+辫 辮
+辩 辯
+农 農
+达 迖 達
+迟 迡 遅 遟 遲
+迆 迤
+廸 迪
+移 迻
+迯 逃
+迥 逈
+愻 逊 遜
+攸 逌
+递 逓 遞
+这 這
+连 連
+迨 逮
+游 逰 遊
+周 週
+进 進
+劮 逸
+远 逺 遠
+踰 逾
+运 運
+徧 遍
+过 過
+徨 遑
+违 違
+遙 遥
+章 遧
+适 適
+遁 遯
+矬 遳
+迁 遷
+选 選
+遗 遺
+辽 遼
+辟 避 闢
+迈 邁
+还 還
+迩 邇
+边 邉 邊
+原 邍
+逻 邏
+逦 邐
+村 邨
+欝 郁 鬰 鬱
+邢 郉
+郎 郞
+郏 郟
+渤 郣
+墎 郭
+邮 郵
+乡 郷 鄉 鄕
+邶 鄁
+郓 鄆
+邹 鄒
+邬 鄔
+郧 鄖
+邓 鄧
+郑 鄭
+邻 鄰 隣
+郸 鄲
+邺 鄴
+郐 鄶
+郰 鄹
+邝 鄺
+鄷 酆
+酂 酇
+郦 酈
+丣 酉
+詶 酧 酬 醻
+腌 醃
+酔 醉
+酢 醋
+酝 醖 醞
+丑 醜
+酱 醬
+酦 醱
+宴 醼
+酿 釀
+衅 釁
+酾 釃
+酽 釅
+採 采
+释 釋
+緟 重
+埜 野
+厘 釐
+金 釒 钅
+扣 釦
+焊 釬 銲
+䥺 釾
+螤 鈡 鍾 鐘 钟 锺
+巨 鉅 钜
+和 鉌 龢
+鈆 鉛 铅
+缽 鉢 钵
+鈎 鉤 钩
+耡 鋤 锄
+舖 鋪 铺
+銳 鋭 锐
+碗 鋺
+銭 錢 钱
+表 錶
+捺 錼
+鋄 錽
+煅 鍛 锻
+臿 鍤 锸
+劆 鎌 鐮 镰
+熔 鎔 镕
+矟 鎙
+錘 鎚 锤
+蓥 鎣
+鎭 鎮 镇
+賹 鎰 镒
+鎖 鏁 锁
+鎛 鏄 鑮 镈
+旋 鏇 镟
+鍞 鏗 铿
+錾 鏨
+罅 鏬
+錋 鏰 镚
+䥽 鏺
+銹 鏽 锈
+鉆 鐉 鑽 钻
+鍚 鐊 钖
+鍥 鐑 锲
+䦅 鐥
+鏀 鐪
+鎸 鐫 镌
+䦃 鐯
+銕 鐵 铁
+鍱 鐷
+鋳 鑄 铸
+鉴 鑑 鑒
+刨 鑤
+尖 鑯
+鈅 鑰 钥
+鍵 鑳 键
+罐 鑵
+銮 鑾
+凿 鑿
+䦆 钁
+鎲 钂 镋
+釓 钆
+釔 钇
+針 针
+釘 钉
+釗 钊
+釙 钋
+釕 钌
+釷 钍
+釺 钎
+釧 钏
+釤 钐
+鈒 钑
+釩 钒
+釣 钓 魡
+鍆 钔
+釹 钕
+釵 钗
+鈃 钘
+鈣 钙
+鈈 钚
+鈦 钛
+鈍 钝
+鈔 钞
+鈉 钠
+鋇 钡
+鋼 钢
+鈑 钣
+鈐 钤
+欽 钦
+鈞 钧
+鎢 钨
+鈧 钪
+鈁 钫
+鈥 钬
+鈄 钭
+鈕 钮
+鈀 钯
+鈺 钰
+鉦 钲
+鈷 钴
+鈳 钶
+鉕 钷
+鈽 钸
+鈸 钹
+鉞 钺
+鉬 钼
+鉭 钽
+鉀 钾
+鈿 钿
+鈾 铀
+鉑 铂
+鈴 铃
+鑠 铄
+鉚 铆
+鉋 铇
+鈰 铈
+鉉 铉
+鉈 铊
+鉍 铋
+鈮 铌
+鈹 铍
+鐸 铎
+鉶 铏
+銬 铐
+銠 铑
+鉺 铒
+鋩 铓
+錏 铔
+銪 铕
+鋮 铖
+鋏 铗
+鋣 铘
+鐃 铙
+銍 铚
+鐺 铛
+銅 铜
+鋁 铝
+銱 铞
+銦 铟
+鎧 铠
+鍘 铡
+銖 铢
+銑 铣
+鋌 铤
+銩 铥
+銛 铦
+鏵 铧
+銓 铨
+鎩 铩
+鉿 铪
+銚 铫
+鉻 铬
+銘 铭
+錚 铮
+銫 铯
+鉸 铰
+銥 铱
+銃 铳
+鐋 铴
+銨 铵
+銀 银
+銣 铷
+鐒 铹
+鋙 铻
+錸 铼
+鋱 铽
+鏈 链
+銷 销
+鋰 锂
+鋥 锃
+鍋 锅
+鋯 锆
+鋨 锇
+銼 锉
+鋝 锊
+鋒 锋
+鋅 锌
+鋶 锍
+鐦 锎
+鐧 锏
+銻 锑
+鋃 锒
+鋟 锓
+鋦 锔
+錒 锕
+錆 锖
+鍺 锗
+鍩 锘
+錯 错
+錨 锚
+錛 锛
+錡 锜
+鍀 锝
+錁 锞
+錕 锟
+錩 锠
+錫 锡
+錮 锢
+鑼 锣
+錐 锥
+錦 锦
+鑕 锧
+鍁 锨
+錈 锩
+鍃 锪
+錇 锫
+錟 锬
+錠 锭
+鋸 锯
+錳 锰
+錙 锱
+鍈 锳
+鍇 锴
+鏘 锵
+鍶 锶
+鍔 锷
+鍬 锹
+鎪 锼
+鍠 锽
+鍰 锾
+鎄 锿
+鍍 镀
+鎂 镁
+鏤 镂
+鎡 镃
+鐨 镄
+鎇 镅
+鏌 镆
+鎘 镉
+鑷 镊
+鎳 镍
+鎿 镎
+鎦 镏
+鎬 镐
+鎊 镑
+鎵 镓
+鑌 镔
+鏢 镖
+鏜 镗
+鏝 镘
+鏍 镙
+鏞 镛
+鏡 镜
+鏑 镝
+鏃 镞
+鏐 镠
+鐔 镡
+鐝 镢
+鐐 镣
+鏷 镤
+鑥 镥
+鐓 镦
+鑭 镧
+鐠 镨
+鑹 镩
+鏹 镪
+鐙 镫
+鑊 镬
+鐳 镭
+鐶 镮
+鐲 镯
+鐿 镱
+鑔 镲
+鑣 镳
+鑞 镴
+鑱 镵
+鑲 镶
+長 长
+閇 閉 闭
+开 開
+关 閞 関 闗 關
+哄 閧 鬨
+閱 閲 阅
+閆 閻 闫 阎
+板 闆
+濶 闊 阔
+斗 闘 鬥 鬦 鬪 鬬 鬭
+灛 闡 阐
+門 门
+閂 闩
+閃 闪
+閈 闬
+問 问
+闖 闯
+閏 闰
+闈 闱
+閑 闲
+閎 闳
+間 间
+閔 闵
+閌 闶
+悶 闷
+閘 闸
+閙 闹 鬧
+閨 闺
+聞 闻
+闥 闼
+閩 闽
+閭 闾
+闓 闿
+閥 阀
+閣 阁
+閡 阂
+閫 阃
+閬 阆
+闍 阇
+閾 阈
+閹 阉
+閶 阊
+閿 阌
+閽 阍
+閼 阏
+闌 阑
+闃 阒
+闠 阓
+闋 阕
+闔 阖
+闐 阗
+闒 阘
+闕 阙
+闞 阚 鬫
+闤 阛
+峊 阜 阝
+屹 阣
+厄 阨
+坂 阪
+坑 阬
+址 阯
+穽 阱
+昜 阳 陽
+堦 阶 階
+坿 附
+坴 陆 陸
+敶 陈 陳
+垓 陔
+陉 陘
+陕 陜 陝
+阵 陣
+阴 陰 霒 霠
+琌 陵
+匋 陶
+堤 隄
+陧 隉
+队 隊
+陨 隕
+郄 隙
+际 際
+墇 障
+敖 隞
+隐 隠 隱
+随 隨
+隓 隳
+陇 隴
+隶 隷 隸
+弋 隿
+僱 雇
+隽 雋
+杂 雑 雜 雥
+虽 雖
+双 雙
+雏 雛 鶵
+雍 雝
+离 離
+难 難
+氛 雰
+云 雲
+电 電
+誫 震
+灵 霊 靈
+癨 霍
+沾 霑
+赮 霞
+雾 霧
+廓 霩
+覇 霸
+溦 霺
+霁 霽
+雳 靂
+霭 靄
+叇 靆
+叆 靉
+靑 青
+靓 靚
+静 靜
+靔 靝
+靥 靨
+肕 靭 韌 韧
+靻 靼
+鞌 鞍
+巩 鞏
+陱 鞠
+鞑 韃
+鞯 韉
+韣 韥
+韋 韦
+韍 韨
+韓 韩
+韙 韪
+韞 韫
+韜 韬
+韭 韮
+虀 韲 齏 齑
+韵 韻
+响 響
+頉 頤 顊 颐
+头 頭
+穎 頴 颕 颖
+頚 頸 颈 鵛
+穨 頹 頽 颓
+顏 顔 颜
+显 顕 顯
+愿 願
+傎 顚 顛 颠
+类 類
+蹙 顣
+頋 顧 顾
+頁 页
+頂 顶
+頃 顷
+頇 顸
+項 项
+順 顺
+須 须 鬚
+頊 顼
+頑 顽
+頓 顿
+頎 颀
+頌 颂
+頏 颃
+預 预
+顱 颅
+領 领
+頗 颇
+頡 颉
+頰 颊
+頲 颋
+頜 颌
+潁 颍
+熲 颎
+頦 颏
+頻 频
+頮 颒
+頷 颔
+顆 颗
+題 题
+顒 颙
+顎 颚
+顓 颛
+額 额
+顳 颞
+顢 颟
+顙 颡
+顥 颢
+纇 颣
+顫 颤
+顬 颥
+顰 颦
+顴 颧
+凨 風 飌 风
+旚 飃 飄 飘
+飆 飈 飙 飚
+颭 飐
+颮 飑
+颯 飒
+颶 飓
+颸 飔
+颼 飕
+颻 飖
+飀 飗
+飛 飞
+食 飠 饣
+飯 飰 饭
+飹 飽 饱
+飪 餁 饪
+糍 餈
+养 養
+喰 餐
+余 餘 馀
+肴 餚
+飾 餝 饰
+餅 餠 饼
+舘 館 馆
+糊 餬
+糇 餱
+喂 餵
+糖 餹
+飫 饇 饫
+糤 饊 馓
+餽 饋 馈
+飢 饑 饥
+飨 饗
+餍 饜
+餉 饟 饷
+飣 饤
+飥 饦
+餳 饧
+飩 饨
+餼 饩
+飭 饬
+飲 饮
+餞 饯
+飼 饲
+飿 饳
+飴 饴
+餌 饵
+饒 饶
+餄 饸
+餎 饹
+餃 饺
+餏 饻
+餑 饽
+餖 饾
+餓 饿
+餒 馁
+餕 馂
+餜 馃
+餛 馄
+餡 馅
+餷 馇
+餶 馉
+餿 馊
+饞 馋
+饁 馌
+饃 馍
+餺 馎
+餾 馏
+饈 馐
+饉 馑
+饅 馒
+饌 馔
+饢 馕
+聝 馘
+馨 馫
+冯 馮
+馱 駄 驮
+敺 駆 駈 驅 驱
+駝 駞 驼
+駁 駮 驳
+駭 駴 骇
+駢 騈 骈
+騌 騣 骔 鬃
+腾 騰
+騏 騹 骐
+蓦 驀
+騺 驇
+憍 驕 骄
+惊 驚
+馬 马
+馭 驭
+馴 驯
+馳 驰
+馹 驲
+驢 驴
+駔 驵
+駛 驶
+駟 驷
+駙 驸
+駒 驹
+騶 驺
+駐 驻
+駑 驽
+駕 驾
+驛 驿
+駘 骀
+驍 骁
+駰 骃
+驊 骅
+駱 骆
+驫 骉
+驪 骊
+騁 骋
+驗 验
+騂 骍
+駸 骎
+駿 骏
+騎 骑
+騍 骒
+騅 骓
+驌 骕
+驂 骖
+騙 骗
+騭 骘
+騤 骙
+騷 骚
+騖 骛
+驁 骜
+騮 骝
+騫 骞
+騸 骟
+驃 骠
+騾 骡
+驄 骢
+驏 骣
+驟 骤
+驥 骥
+驦 骦
+驤 骧
+骪 骫
+肮 骯
+踍 骹
+胯 骻
+膸 髄 髓
+骴 髊
+髅 髏
+髋 髖
+高 髙
+髥 髯
+痢 鬁
+瘌 鬎
+髺 鬠
+鬓 鬢
+阋 鬩
+阄 鬮
+鬶 鬹
+粥 鬻
+櫆 魁
+蜮 魊
+魉 魎
+魇 魘
+蚶 魽
+䲟 鮣
+觟 鮭 鲑
+骾 鯁 鲠
+魦 鯊 鯋 鲨
+鮝 鯗 鲞
+䲠 鰆
+䲡 鰌 鰍 鳅
+䲢 鰧
+鯽 鰿 鲫
+鰫 鱅 鳙
+魼 鱋
+鱓 鱔 鳝
+鰥 鱞 鳏
+鰐 鱷 鳄
+魚 鱼
+魛 鱽
+魷 鱿
+魨 鲀
+魯 鲁
+魴 鲂
+魺 鲄
+鮁 鲅
+鮃 鲆
+鮎 鲇
+鱸 鲈
+鮋 鲉
+鮓 鲊
+鮒 鲋
+鮊 鲌
+鮑 鲍
+鱟 鲎
+鮍 鲏
+鮐 鲐
+鮚 鲒
+鮳 鲓
+鮪 鲔
+鮞 鲕
+鮦 鲖
+鰂 鲗
+鮜 鲘
+鱠 鲙
+鱭 鲚
+鮫 鲛
+鮺 鲝
+鱘 鲟
+鱺 鲡
+鰱 鲢
+鰹 鲣
+鯉 鲤
+鰣 鲥
+鰷 鲦
+鯀 鲧
+鯇 鲩
+鮶 鲪
+鯒 鲬
+鯖 鲭
+鯪 鲮
+鯕 鲯
+鯫 鲰
+鯡 鲱
+鯤 鲲
+鯧 鲳
+鯝 鲴
+鯢 鲵
+鯰 鲶
+鯛 鲷
+鯨 鲸
+鰺 鲹
+鯴 鲺
+鯔 鲻
+鱝 鲼
+鰈 鲽
+鰏 鲾
+鱨 鲿
+鯷 鳀
+鰛 鳁
+鰓 鳃
+鰒 鳆
+鰉 鳇
+鯿 鳊
+鰠 鳋
+鰲 鳌 鼇
+鰭 鳍
+鰨 鳎
+鰩 鳐
+鰟 鳑
+鰜 鳒
+鰳 鳓
+鰾 鳔
+鱈 鳕
+鱉 鳖 鼈 龞
+鰻 鳗
+鰵 鳘
+鰼 鳛
+鱖 鳜
+鱗 鳞
+鱒 鳟
+鱯 鳠
+鱧 鳢
+鱣 鳣
+凫 鳧 鳬
+雁 鳫 鴈
+雞 鳮 鷄 鸡
+凤 鳯 鳳
+䴓 鳾
+鴂 鴃
+鳵 鴇 鸨
+雉 鴙
+䴕 鴷
+䴔 鵁
+鵝 鵞 鹅
+鴉 鵶 鸦
+䴖 鶄
+鵾 鶤 鹍
+䴗 鶪
+莺 鶯
+翰 鶾
+䴘 鷈 鷉
+鶒 鷘
+鷳 鷴 鹇
+䴙 鷿 鸊
+鵑 鸝 鹂 鹃
+鵉 鸞 鸾
+鳥 鸟
+鳩 鸠
+鳶 鸢
+鳴 鸣
+鳲 鸤
+鷗 鸥
+鶬 鸧
+鴆 鸩
+鴣 鸪
+鶇 鸫
+鸕 鸬
+鴨 鸭
+鴞 鸮
+鴦 鸯
+鴒 鸰
+鴟 鸱
+鴝 鸲
+鴛 鸳
+鷽 鸴
+鴕 鸵
+鷥 鸶
+鷙 鸷
+鴯 鸸
+鴰 鸹
+鵂 鸺
+鴴 鸻
+鵃 鸼
+鴿 鸽
+鴻 鸿
+鵐 鹀
+鵓 鹁
+鵠 鹄
+鵒 鹆
+鵜 鹈
+鵡 鹉
+鵲 鹊
+鶓 鹋
+鵪 鹌
+鵯 鹎
+鵬 鹏
+鵮 鹐
+鶉 鹑
+鶊 鹒
+鵷 鹓
+鷫 鹔
+鶘 鹕
+鶡 鹖
+鶚 鹗
+鶻 鹘
+鶖 鹙
+鶿 鹚
+鶥 鹛
+鶩 鹜
+鷊 鹝
+鷂 鹞
+鶲 鹟
+鶹 鹠
+鶺 鹡
+鷁 鹢
+鶼 鹣
+鶴 鹤
+鷖 鹥
+鸚 鹦
+鷓 鹧
+鷚 鹨
+鷯 鹩
+鷦 鹪
+鷲 鹫
+鷸 鹬
+鷺 鹭
+鸇 鹯
+鷹 鹰
+鸌 鹱
+鸏 鹲
+鸛 鹳
+鸘 鹴
+咸 鹹
+鹺 鹾
+麊 麋
+丽 麗
+麖 麠
+麥 麦
+面 麪 麵
+曲 麯 麴
+麩 麸
+黃 黄
+黉 黌
+菞 黎
+黑 黒
+軡 黔
+默 黙
+党 黨
+黪 黲
+霉 黴
+黡 黶
+黩 黷
+黽 黾
+蛛 鼄
+蜘 鼅
+黿 鼋
+鼂 鼌
+鼉 鼍
+冬 鼕
+鞀 鼗
+鼰 鼳
+鼴 鼹
+哻 鼾
+鼿 齀
+頞 齃
+歯 齒 齿
+齛 齥
+咬 齩
+踀 齪 龊
+齫 齳
+腭 齶
+齔 龀
+齕 龁
+齗 龂
+齟 龃
+齡 龄
+齙 龅
+齠 龆
+齜 龇
+齦 龈
+齬 龉
+齲 龋
+齷 龌
+竜 龍 龒 龙
+䶮 龑
+龖 龘
+龔 龚
+龕 龛
+亀 龜 龟
+ꃀ ꒜
+ꁊ ꒞
+ꁐ ꒬
+ꏂ ꒰
+ꎿ ꒺
+ꊱ ꒾
+ꉙ ꒿
+ꎫ ꓀
+ꎵ ꓂
+7 7
+; ;
+< <
+= =
+> >
+[ [
+\ \
+] ]
+^ ^
+_ _
+` `
+。 。
+「 「
+」 」
+、 、
+・ ・
+ヲ ヲ
+ァ ァ
+ィ ィ
+ゥ ゥ
+ェ ェ
+ォ ォ
+ャ ャ
+ュ ュ
+ョ ョ
+ッ ッ
+ー ー
+ア ア
+イ イ
+ウ ウ
+エ エ
+オ オ
+カ カ
+キ キ
+ク ク
+ケ ケ
+コ コ
+サ サ
+シ シ
+ス ス
+セ セ
+ソ ソ
+タ タ
+チ チ
+ツ ツ
+テ テ
+ト ト
+ナ ナ
+ニ ニ
+ヌ ヌ
+ネ ネ
+ノ ノ
+ハ ハ
+ヒ ヒ
+フ フ
+ホ ホ
+マ マ
+ミ ミ
+ム ム
+メ メ
+モ モ
+ヤ ヤ
+ユ ユ
+ヨ ヨ
+ラ ラ
+リ リ
+ル ル
+レ レ
+ロ ロ
+ワ ワ
+ン ン
+゙ ゙
+゚ ゚
+ㅤ ᅠ
+ㄱ ᄀ
+ㄲ ᄁ
+ㄳ ᆪ
+ㄴ ᄂ
+ㄵ ᆬ
+ㄶ ᆭ
+ㄷ ᄃ
+ㄸ ᄄ
+ㄹ ᄅ
+ㄺ ᆰ
+ㄻ ᆱ
+ㄼ ᆲ
+ㄽ ᆳ
+ㄾ ᆴ
+ㄿ ᆵ
+ㅀ ᄚ
+ㅁ ᄆ
+ㅂ ᄇ
+ㅃ ᄈ
+ㅄ ᄡ
+ㅅ ᄉ
+ㅆ ᄊ
+ㅇ ᄋ
+ㅈ ᄌ
+ㅉ ᄍ
+ㅊ ᄎ
+ㅋ ᄏ
+ㅌ ᄐ
+ㅍ ᄑ
+ㅎ ᄒ
+ㅏ ᅡ
+ㅐ ᅢ
+ㅑ ᅣ
+ㅒ ᅤ
+ㅓ ᅥ
+ㅔ ᅦ
+ㅕ ᅧ
+ㅖ ᅨ
+ㅗ ᅩ
+ㅘ ᅪ
+ㅙ ᅫ
+ㅚ ᅬ
+ㅛ ᅭ
+ㅜ ᅮ
+ㅝ ᅯ
+ㅞ ᅰ
+ㅟ ᅱ
+ㅠ ᅲ
+ㅡ ᅳ
+ㅢ ᅴ
+ㅣ ᅵ
diff --git a/AntiSpoof/maintenance/generateEquivset.php b/AntiSpoof/maintenance/generateEquivset.php
new file mode 100644
index 00000000..687e8470
--- /dev/null
+++ b/AntiSpoof/maintenance/generateEquivset.php
@@ -0,0 +1,177 @@
+<?php
+
+use UtfNormal\Utils;
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../../..';
+}
+require_once "$IP/maintenance/Maintenance.php";
+
+class GenerateEquivset extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+
+ $this->requireExtension( 'AntiSpoof' );
+ }
+
+ public function execute() {
+ $dir = __DIR__;
+
+ $endl = "\n";
+
+ $lines = file( "$dir/equivset.in" );
+ if ( !$lines ) {
+ $this->error( "Unable to open equivset.in\n", 1 );
+ }
+
+ $setsFile = fopen( "$dir/equivset.txt", 'w' );
+ if ( !$setsFile ) {
+ $this->error( "Unable to open equivset.txt for writing\n", 1 );
+ }
+
+ fwrite( $setsFile, <<<EOT
+# This file is generated by generateEquivset.php
+# It shows sets of equivalent characters, one set per line, with characters
+# separated by whitespace. This file is not used by MediaWiki, rather it is
+# intended as a human-readable version of equivset.php, for debugging and
+# review purposes.
+
+EOT
+ );
+
+ $outputFile = fopen( "$dir/equivset.php", 'w' );
+ if ( !$outputFile ) {
+ $this->error( "Unable to open equivset.php for writing\n", 1 );
+ }
+
+ fwrite( $outputFile, "<?" . "php$endl" . <<<EOT
+# This file is generated by generateEquivset.php
+# It contains a map of characters, encoded in UTF-8, such that running strtr()
+# on a string with this map will cause confusable characters to be reduced to
+# a canonical representation. The same array is also available in serialized
+# form, in equivset.ser.
+
+EOT
+ );
+
+ $serializedFile = fopen( "$dir/equivset.ser", 'w' );
+ if ( !$serializedFile ) {
+ $this->error( "Unable to open equivset.ser for writing\n", 1 );
+ }
+
+ # \s matches \xa0 in non-unicode mode, which is not what we want
+ # So we need to make our own whitespace class
+ $sp = '[\ \t]';
+
+ $lineNum = 0;
+ $setsByChar = [];
+ $sets = array();
+ $exitStatus = 0;
+
+ foreach ( $lines as $line ) {
+ ++$lineNum;
+
+ # Whether the line ends with a nul character
+ $mapToEmpty = ( strpos( $line, "\0" ) === strlen( $line ) - 2 );
+
+ $line = trim( $line );
+
+ # Filter comments
+ if ( !$line || $line[0] == '#' ) {
+ continue;
+ }
+
+ # Process line
+ if ( !preg_match(
+ "/^(?P<hexleft> [A-F0-9]+) $sp+ (?P<charleft> .+?) $sp+ => $sp+ " .
+ "(?:(?P<hexright> [A-F0-9]+) $sp+|) (?P<charright> .+?) $sp* (?: \#.*|) $ /x",
+ $line, $m
+ )
+ ) {
+ $this->output( "Error: invalid entry at line $lineNum: $line\n" );
+ $exitStatus = 1;
+ continue;
+ }
+ $error = false;
+
+ if ( Utils::codepointToUtf8( hexdec( $m['hexleft'] ) ) != $m['charleft'] ) {
+ $actual = Utils::utf8ToCodepoint( $m['charleft'] );
+ if ( $actual === false ) {
+ $this->output( "Bytes: " . strlen( $m['charleft'] ) . "\n" );
+ $this->output( bin2hex( $line ) . "\n" );
+ $hexForm = bin2hex( $m['charleft'] );
+ $this->output( "Invalid UTF-8 character \"{$m['charleft']}\" ($hexForm) at " .
+ "line $lineNum: $line\n" );
+ } else {
+ $this->output( "Error: left number ({$m['hexleft']}) does not match left " .
+ "character ($actual) at line $lineNum: $line\n" );
+ }
+ $error = true;
+ }
+ if ( !empty( $m['hexright'] )
+ && Utils::codepointToUtf8( hexdec( $m['hexright'] ) ) != $m['charright']
+ ) {
+ $actual = Utils::utf8ToCodepoint( $m['charright'] );
+ if ( $actual === false ) {
+ $hexForm = bin2hex( $m['charright'] );
+ $this->output( "Invalid UTF-8 character \"{$m['charleft']}\" ($hexForm) at " .
+ "line $lineNum: $line\n" );
+ } else {
+ $this->output( "Error: right number ({$m['hexright']}) does not match right " .
+ "character ($actual) at line $lineNum: $line\n" );
+ }
+ $error = true;
+ }
+ if ( $error ) {
+ $exitStatus = 1;
+ continue;
+ }
+ if ( $mapToEmpty || $m['charright'] == 'NUL' ) {
+ $m['charright'] = '';
+ }
+
+ # Find the set for the right character, add a new one if necessary
+ if ( isset( $setsByChar[$m['charright']] ) ) {
+ $setName = $setsByChar[$m['charright']];
+ $setsByChar[$m['charleft']] = $setsByChar[$m['charright']];
+ } else {
+ $setName = $m['charright'];
+ $setsByChar[$m['charleft']] = $m['charright'];
+ }
+
+ if ( !isset( $sets[$setName] ) ) {
+ $sets[$setName] = [ $setName ];
+ }
+
+ $sets[$setName][] = $m['charleft'];
+ }
+
+ # Sets output
+ foreach ( $sets as $members ) {
+ fwrite( $setsFile, implode( ' ', $members ) . $endl );
+ }
+
+ # Map output
+ $output = var_export( $setsByChar, true );
+ $output = str_replace( "\n", $endl, $output );
+ fwrite( $outputFile, '$equivset = ' . "$output;$endl" );
+
+ # Serialized file
+ fwrite( $serializedFile, serialize( $setsByChar ) );
+
+ fclose( $setsFile );
+ fclose( $outputFile );
+ fclose( $serializedFile );
+
+ $text = 'Finished';
+ if ( $exitStatus > 0 ) {
+ $text .= ' with errors';
+ }
+ $this->error( $text, $exitStatus );
+ }
+}
+
+$maintClass = "GenerateEquivset";
+require_once DO_MAINTENANCE;
+
diff --git a/AntiSpoof/package.json b/AntiSpoof/package.json
new file mode 100644
index 00000000..a8b0304d
--- /dev/null
+++ b/AntiSpoof/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "antispoof",
+ "version": "0.0.0",
+ "private": true,
+ "description": "Build tools for the AntiSpoof extension.",
+ "scripts": {
+ "test": "grunt test"
+ },
+ "devDependencies": {
+ "grunt": "1.0.1",
+ "grunt-banana-checker": "0.4.0",
+ "grunt-jsonlint": "1.0.7"
+ }
+}
diff --git a/AntiSpoof/phpcs.xml b/AntiSpoof/phpcs.xml
new file mode 100644
index 00000000..d1865234
--- /dev/null
+++ b/AntiSpoof/phpcs.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<ruleset>
+ <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamComment" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamName" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
+ <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
+ </rule>
+ <file>.</file>
+ <arg name="extensions" value="php,php5,inc" />
+ <arg name="encoding" value="utf8" />
+ <exclude-pattern>equivset.php</exclude-pattern>
+ <exclude-pattern>vendor</exclude-pattern>
+ <exclude-pattern>node_modules</exclude-pattern>
+</ruleset>
diff --git a/AntiSpoof/sql/patch-antispoof.mysql.sql b/AntiSpoof/sql/patch-antispoof.mysql.sql
new file mode 100644
index 00000000..706ade63
--- /dev/null
+++ b/AntiSpoof/sql/patch-antispoof.mysql.sql
@@ -0,0 +1,21 @@
+CREATE TABLE /*$wgDBprefix*/spoofuser (
+ -- Equivalent to user_name, but not guaranteed to be in sync.
+ -- Do a join against user_name to confirm that an account hasn't
+ -- been renamed or deleted away.
+ su_name VARCHAR(255),
+
+ -- Normalized form of name for similarity-spoofing checks
+ su_normalized VARCHAR(255),
+
+ -- ok/not-ok according to the looks-like-a-valid-name check
+ su_legal BOOL,
+
+ -- error message that came out of the unicode check, if any
+ su_error TEXT,
+
+ -- unique record per username
+ PRIMARY KEY (su_name),
+
+ -- for checking matching possible spoofs
+ KEY(su_normalized, su_name)
+) /*$wgDBTableOptions*/;
diff --git a/AntiSpoof/sql/patch-antispoof.postgres.sql b/AntiSpoof/sql/patch-antispoof.postgres.sql
new file mode 100644
index 00000000..feba45f5
--- /dev/null
+++ b/AntiSpoof/sql/patch-antispoof.postgres.sql
@@ -0,0 +1,17 @@
+CREATE TABLE spoofuser (
+ -- Equivalent to user_name, but not guaranteed to be in sync.
+ -- Do a join against user_name to confirm that an account hasn't
+ -- been renamed or deleted away.
+ su_name character varying PRIMARY KEY,
+
+ -- Normalized form of name for similarity-spoofing checks
+ su_normalized character varying,
+
+ -- ok/not-ok according to the looks-like-a-valid-name check
+ su_legal boolean,
+
+ -- error message that came out of the unicode check, if any
+ su_error text
+);
+
+CREATE INDEX su_normname_idx ON spoofuser (su_normalized,su_name);
diff --git a/AntiSpoof/sql/patch-antispoof.sqlite.sql b/AntiSpoof/sql/patch-antispoof.sqlite.sql
new file mode 100644
index 00000000..dc0311b9
--- /dev/null
+++ b/AntiSpoof/sql/patch-antispoof.sqlite.sql
@@ -0,0 +1,21 @@
+CREATE TABLE /*$wgDBprefix*/spoofuser (
+ -- Equivalent to user_name, but not guaranteed to be in sync.
+ -- Do a join against user_name to confirm that an account hasn't
+ -- been renamed or deleted away.
+ su_name VARCHAR(255),
+
+ -- Normalized form of name for similarity-spoofing checks
+ su_normalized VARCHAR(255),
+
+ -- ok/not-ok according to the looks-like-a-valid-name check
+ su_legal BOOL,
+
+ -- error message that came out of the unicode check, if any
+ su_error TEXT,
+
+ -- unique record per username
+ PRIMARY KEY (su_name)
+) /*$wgDBTableOptions*/;
+
+-- for checking matching possible spoofs
+CREATE INDEX su_normname_idx ON /*$wgDBprefix*/spoofuser (su_normalized, su_name);
diff --git a/AntiSpoof/tests/phpunit/AntiSpoofAuthenticationRequestTest.php b/AntiSpoof/tests/phpunit/AntiSpoofAuthenticationRequestTest.php
new file mode 100644
index 00000000..a4855389
--- /dev/null
+++ b/AntiSpoof/tests/phpunit/AntiSpoofAuthenticationRequestTest.php
@@ -0,0 +1,17 @@
+<?php
+
+use MediaWiki\Auth\AuthenticationRequestTestCase;
+
+class AntiSpoofAuthenticationRequestTest extends AuthenticationRequestTestCase {
+
+ protected function getInstance( array $args = [] ) {
+ return new AntiSpoofAuthenticationRequest();
+ }
+
+ public function provideLoadFromSubmission() {
+ return [
+ 'empty' => [ [], [], [ 'ignoreAntiSpoof' => false ] ],
+ 'true' => [ [], [ 'ignoreAntiSpoof' => '1' ], [ 'ignoreAntiSpoof' => true ] ],
+ ];
+ }
+}
diff --git a/AntiSpoof/tests/phpunit/AntiSpoofPreAuthenticationProviderTest.php b/AntiSpoof/tests/phpunit/AntiSpoofPreAuthenticationProviderTest.php
new file mode 100644
index 00000000..abac19aa
--- /dev/null
+++ b/AntiSpoof/tests/phpunit/AntiSpoofPreAuthenticationProviderTest.php
@@ -0,0 +1,97 @@
+<?php
+
+use MediaWiki\Auth\AuthManager;
+
+/**
+ * @group Database
+ */
+class AntiSpoofPreAuthenticationProviderTest extends MediaWikiTestCase {
+ public function setUp() {
+ global $wgDisableAuthManager;
+ if ( !class_exists( AuthManager::class ) || $wgDisableAuthManager ) {
+ $this->markTestSkipped( 'AuthManager is disabled' );
+ }
+
+ parent::setUp();
+ }
+
+ /**
+ * @dataProvider provideGetAuthenticationRequests
+ */
+ public function testGetAuthenticationRequests( $action, $params, $username, $expectedReqs ) {
+ $this->setMwGlobals( 'wgAntiSpoofAccounts', false );
+ $provider = new AntiSpoofPreAuthenticationProvider( $params );
+ $provider->setManager( AuthManager::singleton() );
+ $reqs = $provider->getAuthenticationRequests( $action, [ 'username' => $username ] );
+ $this->assertEquals( $expectedReqs, $reqs );
+ }
+
+ public function provideGetAuthenticationRequests() {
+ return [
+ [ AuthManager::ACTION_LOGIN, [], null, [] ],
+ [ AuthManager::ACTION_CREATE, [], null, [] ],
+ [ AuthManager::ACTION_CREATE, [ 'antiSpoofAccounts' => true ], null, [] ],
+ [ AuthManager::ACTION_CREATE, [], 'UTSysop', [] ],
+ [ AuthManager::ACTION_CREATE, [ 'antiSpoofAccounts' => true ], 'UTSysop',
+ [ new AntiSpoofAuthenticationRequest() ] ],
+ [ AuthManager::ACTION_CHANGE, [], null, [] ],
+ [ AuthManager::ACTION_REMOVE, [], null, [] ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideTestForAccountCreation
+ */
+ public function testTestForAccountCreation(
+ $enabled, $isLegal, $conflicts, $creator, $reqs, $error
+ ) {
+ $provider = $this->getMockBuilder( AntiSpoofPreAuthenticationProvider::class )
+ ->setConstructorArgs( [ [ 'antiSpoofAccounts' => $enabled ] ] )
+ ->setMethods( [ 'getSpoofUser' ] )->getMock();
+ $spoofUser = $this->getMockBuilder( SpoofUser::class )
+ ->disableOriginalConstructor()->getMock();
+ $provider->expects( $this->any() )->method( 'getSpoofUser' )->willReturn( $spoofUser );
+ /** @var $provider \MediaWiki\Auth\PreAuthenticationProvider */
+ $provider->setManager( AuthManager::singleton() );
+ $provider->setLogger( new \Psr\Log\NullLogger() );
+
+ $spoofUser->expects( $this->any() )->method( 'isLegal' )->willReturn( $isLegal );
+ $spoofUser->expects( $this->any() )->method( 'getConflicts' )->willReturn( $conflicts );
+
+ /** @var StatusValue $status */
+ $status = $provider->testForAccountCreation( new User(), $creator, $reqs );
+
+ if ( $error ) {
+ $this->assertFalse( $status->isGood() );
+ $this->assertEquals( $error, Status::wrap( $status )->getMessage()->getKey() );
+ } else {
+ $this->assertTrue( $status->isGood() );
+ }
+ }
+
+ public function provideTestForAccountCreation() {
+ $user = new User();
+ $sysop = User::newFromName( 'UTSysop' );
+ $noSkip = new AntiSpoofAuthenticationRequest();
+ $skip = new AntiSpoofAuthenticationRequest();
+ $skip->ignoreAntiSpoof = true;
+
+ return [
+ // enabled, isLegal, conflicts, creator, reqs, error
+ 'no spoofing' => [ true, true, [], $user, [], null ],
+ 'illegal' => [ true, false, [], $user, [], 'antispoof-name-illegal' ],
+ 'illegal, inactve' => [ false, false, [], $user, [], null ],
+ 'illegal, sysop w/o skipping' => [ true, false, [], $sysop, [],
+ 'antispoof-name-illegal' ],
+ 'illegal, sysop w/o skipping #2' => [ true, false, [], $sysop, [ $noSkip ],
+ 'antispoof-name-illegal' ],
+ 'illegal, sysop skipping' => [ true, false, [], $sysop, [ $skip ], null ],
+ // this should never happen but is good for layered defense
+ 'fake skipping' => [ true, false, [], $user, [ $skip ], 'antispoof-name-illegal' ],
+ 'conflicts' => [ true, true, [ 'x' ], $user, [], '$1$2$3' ],
+ 'conflicts w/ skipping' => [ true, true, [ 'x' ], $sysop, [ $skip ], null ],
+ 'conflicts w/ fake skipping' => [ true, true, [ 'x' ], $user, [ $skip ], '$1$2$3' ],
+ 'illegal takes priority' => [ true, false, [ 'x' ], $user, [], 'antispoof-name-illegal' ],
+ ];
+ }
+}
diff --git a/AntiSpoof/tests/phpunit/AntiSpoofTest.php b/AntiSpoof/tests/phpunit/AntiSpoofTest.php
new file mode 100644
index 00000000..d65df3ba
--- /dev/null
+++ b/AntiSpoof/tests/phpunit/AntiSpoofTest.php
@@ -0,0 +1,32 @@
+<?php
+class AntiSpoofTest extends MediaWikiTestCase {
+
+ public function providePositives() {
+ return [
+ /** Format: username -> spoofing attempt */
+ [ 'Laura Fiorucci', 'Låura Fiorucci' ],
+ [ 'Lucien leGrey', 'Lucien le6rey' ],
+ [ 'Poco a poco', 'Poco a ƿoco' ],
+ [ 'Sabbut', 'ЅаЬЬцт' ],
+ [ 'BetoCG', 'ВетоС6' ],
+ [ 'Wanda', 'vv4ndá' ],
+ [ 'Mario', 'rnAr10' ]
+ ];
+ }
+
+ /**
+ * Some very basic normalization checks
+ *
+ * @covers AntiSpoof::checkUnicodeString
+ * @dataProvider providePositives
+ */
+ public function testCheckUnicodeString( $userName, $spooferName ) {
+ $a = AntiSpoof::checkUnicodeString( $userName );
+ $b = AntiSpoof::checkUnicodeString( $spooferName );
+
+ $this->assertEquals( 'OK', $a[0] );
+ $this->assertEquals( 'OK', $b[0] );
+
+ $this->assertEquals( $a[1], $b[1] );
+ }
+}
diff --git a/AntiSpoof/tests/phpunit/SpoofUserTest.php b/AntiSpoof/tests/phpunit/SpoofUserTest.php
new file mode 100644
index 00000000..4229d19c
--- /dev/null
+++ b/AntiSpoof/tests/phpunit/SpoofUserTest.php
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * @group Database
+ */
+class SpoofUserTest extends MediaWikiTestCase {
+
+ protected $tablesUsed = [ 'user', 'spoofuser' ];
+
+ private static $usernames = [
+ 'UserFoo',
+ 'UserF00',
+ 'FooBaz',
+ 'FOOBAZ',
+ 'F00BAZ',
+ 'BazFoo',
+ 'BAZFOO',
+ 'BazF00',
+ 'ILIKECAPSLOCKS',
+ ];
+
+ public function setUp() {
+ parent::setUp();
+
+ // Put some stuff in the database
+ foreach ( self::$usernames as $user ) {
+ $s = new SpoofUser( $user );
+ $s->record();
+ $user = User::newFromName( $user );
+ $user->addToDatabase();
+ }
+
+ $s = new SpoofUser( 'NotInTheUserTable' );
+ $s->record();
+ }
+
+ /**
+ * @covers SpoofUser::record
+ */
+ public function testRecord() {
+ $user = User::newFromName( 'SomeUsername' );
+ $user->addToDatabase();
+ $s = new SpoofUser( 'SomeUsername' );
+ $this->assertTrue( $s->record() );
+ // Check that it made it into the database
+ $this->assertArrayEquals( [ 'SomeUsername' ], $s->getConflicts() );
+ }
+
+ /**
+ * @covers SpoofUser::getConflicts
+ * @dataProvider provideGetConflicts
+ */
+ public function testGetConflicts( $user, $conflicts ) {
+ $s = new SpoofUser( $user );
+ $this->assertArrayEquals( $conflicts, $s->getConflicts() );
+ }
+
+ public static function provideGetConflicts() {
+ return [
+ [ 'UserFoo', [ 'UserF00', 'UserFoo' ] ],
+ [ 'FooBaz', [ 'F00BAZ', 'FOOBAZ', 'FooBaz' ] ],
+ [ 'ILIKECAPSLOCKS', [ 'ILIKECAPSLOCKS' ] ],
+ [ 'NotInTheUserTable', [] ],
+ [ 'UsErFoO', [ 'UserF00', 'UserFoo' ] ],
+ ];
+ }
+
+ /**
+ * @covers SpoofUser::update
+ */
+ public function testUpdate() {
+ $user = User::newFromName( 'MyNewUserName' );
+ $user->addToDatabase();
+ $s = new SpoofUser( 'MyNewUserName' );
+ $s->update( 'BAZFOO' );
+ $this->assertArrayEquals( [ 'MyNewUserName' ], $s->getConflicts() );
+ $foobaz = new SpoofUser( 'BAZFOO' );
+ $this->assertArrayEquals( [ 'BazF00', 'BazFoo' ], $foobaz->getConflicts() );
+ }
+}
diff --git a/AntiSpoof/version b/AntiSpoof/version
new file mode 100644
index 00000000..86d423fc
--- /dev/null
+++ b/AntiSpoof/version
@@ -0,0 +1,4 @@
+AntiSpoof: REL1_30
+2017-10-19T21:00:29
+
+28d91c7