KevinHuSh
		
	commited on
		
		
					Commit 
							
							·
						
						cdba7f7
	
1
								Parent(s):
							
							8c4ec99
								
use onnx models, new deepdoc (#68)
Browse files- api/apps/conversation_app.py +1 -1
- api/apps/dialog_app.py +34 -44
- api/db/db_models.py +0 -2
- deepdoc/__init__.py +0 -0
- {rag → deepdoc}/parser/__init__.py +1 -2
- {rag → deepdoc}/parser/docx_parser.py +0 -0
- {rag → deepdoc}/parser/excel_parser.py +0 -0
- {rag → deepdoc}/parser/pdf_parser.py +34 -14
- deepdoc/visual/__init__.py +2 -0
- deepdoc/visual/ocr.py +561 -0
- deepdoc/visual/ocr.res +6623 -0
- deepdoc/visual/operators.py +710 -0
- deepdoc/visual/postprocess.py +354 -0
- deepdoc/visual/recognizer.py +139 -0
- deepdoc/visual/seeit.py +83 -0
- rag/app/book.py +17 -8
- rag/app/laws.py +17 -6
- rag/app/manual.py +4 -4
- rag/app/naive.py +16 -4
- rag/app/paper.py +16 -4
- rag/app/presentation.py +16 -5
- rag/app/qa.py +15 -3
- rag/app/resume.py +55 -32
- rag/app/table.py +16 -3
- rag/nlp/huchunk.py +15 -3
- rag/svr/task_broker.py +1 -1
    	
        api/apps/conversation_app.py
    CHANGED
    
    | @@ -198,7 +198,7 @@ def chat(dialog, messages, **kwargs): | |
| 198 | 
             
                    return {"answer": prompt_config["empty_response"], "retrieval": kbinfos}
         | 
| 199 |  | 
| 200 | 
             
                kwargs["knowledge"] = "\n".join(knowledges)
         | 
| 201 | 
            -
                gen_conf = dialog.llm_setting | 
| 202 | 
             
                msg = [{"role": m["role"], "content": m["content"]} for m in messages if m["role"] != "system"]
         | 
| 203 | 
             
                used_token_count, msg = message_fit_in(msg, int(llm.max_tokens * 0.97))
         | 
| 204 | 
             
                if "max_tokens" in gen_conf:
         | 
|  | |
| 198 | 
             
                    return {"answer": prompt_config["empty_response"], "retrieval": kbinfos}
         | 
| 199 |  | 
| 200 | 
             
                kwargs["knowledge"] = "\n".join(knowledges)
         | 
| 201 | 
            +
                gen_conf = dialog.llm_setting
         | 
| 202 | 
             
                msg = [{"role": m["role"], "content": m["content"]} for m in messages if m["role"] != "system"]
         | 
| 203 | 
             
                used_token_count, msg = message_fit_in(msg, int(llm.max_tokens * 0.97))
         | 
| 204 | 
             
                if "max_tokens" in gen_conf:
         | 
    	
        api/apps/dialog_app.py
    CHANGED
    
    | @@ -33,38 +33,17 @@ def set_dialog(): | |
| 33 | 
             
                name = req.get("name", "New Dialog")
         | 
| 34 | 
             
                description = req.get("description", "A helpful Dialog")
         | 
| 35 | 
             
                language = req.get("language", "Chinese")
         | 
| 36 | 
            -
                 | 
|  | |
|  | |
| 37 | 
             
                llm_setting = req.get("llm_setting", {
         | 
| 38 | 
            -
                    " | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
                        "max_tokens": 512
         | 
| 44 | 
            -
                    },
         | 
| 45 | 
            -
                    "Precise": {
         | 
| 46 | 
            -
                        "temperature": 0.1,
         | 
| 47 | 
            -
                        "top_p": 0.3,
         | 
| 48 | 
            -
                        "frequency_penalty": 0.7,
         | 
| 49 | 
            -
                        "presence_penalty": 0.4,
         | 
| 50 | 
            -
                        "max_tokens": 215
         | 
| 51 | 
            -
                    },
         | 
| 52 | 
            -
                    "Evenly": {
         | 
| 53 | 
            -
                        "temperature": 0.5,
         | 
| 54 | 
            -
                        "top_p": 0.5,
         | 
| 55 | 
            -
                        "frequency_penalty": 0.7,
         | 
| 56 | 
            -
                        "presence_penalty": 0.4,
         | 
| 57 | 
            -
                        "max_tokens": 215
         | 
| 58 | 
            -
                    },
         | 
| 59 | 
            -
                    "Custom": {
         | 
| 60 | 
            -
                        "temperature": 0.2,
         | 
| 61 | 
            -
                        "top_p": 0.3,
         | 
| 62 | 
            -
                        "frequency_penalty": 0.6,
         | 
| 63 | 
            -
                        "presence_penalty": 0.3,
         | 
| 64 | 
            -
                        "max_tokens": 215
         | 
| 65 | 
            -
                    },
         | 
| 66 | 
             
                })
         | 
| 67 | 
            -
                 | 
| 68 | 
             
                    "system": """你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你的回答必须包括“知识库中未找到您要的答案!”这句话。回答需要考虑聊天历史。
         | 
| 69 | 
             
            以下是知识库:
         | 
| 70 | 
             
            {knowledge}
         | 
| @@ -74,30 +53,40 @@ def set_dialog(): | |
| 74 | 
             
                        {"key": "knowledge", "optional": False}
         | 
| 75 | 
             
                    ],
         | 
| 76 | 
             
                    "empty_response": "Sorry! 知识库中未找到相关内容!"
         | 
| 77 | 
            -
                } | 
|  | |
| 78 |  | 
| 79 | 
            -
                if  | 
| 80 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
| 81 |  | 
| 82 | 
             
                for p in prompt_config["parameters"]:
         | 
| 83 | 
            -
                    if  | 
|  | |
| 84 | 
             
                        return get_data_error_result(retmsg="Parameter '{}' is not used".format(p["key"]))
         | 
| 85 |  | 
| 86 | 
             
                try:
         | 
| 87 | 
             
                    e, tenant = TenantService.get_by_id(current_user.id)
         | 
| 88 | 
            -
                    if not e:return get_data_error_result(retmsg="Tenant not found!")
         | 
| 89 | 
             
                    llm_id = req.get("llm_id", tenant.llm_id)
         | 
| 90 | 
             
                    if not dialog_id:
         | 
|  | |
| 91 | 
             
                        dia = {
         | 
| 92 | 
             
                            "id": get_uuid(),
         | 
| 93 | 
             
                            "tenant_id": current_user.id,
         | 
| 94 | 
             
                            "name": name,
         | 
|  | |
| 95 | 
             
                            "description": description,
         | 
| 96 | 
             
                            "language": language,
         | 
| 97 | 
             
                            "llm_id": llm_id,
         | 
| 98 | 
            -
                            "llm_setting_type": llm_setting_type,
         | 
| 99 | 
             
                            "llm_setting": llm_setting,
         | 
| 100 | 
            -
                            "prompt_config": prompt_config
         | 
|  | |
|  | |
|  | |
| 101 | 
             
                        }
         | 
| 102 | 
             
                        if not DialogService.save(**dia): return get_data_error_result(retmsg="Fail to new a dialog!")
         | 
| 103 | 
             
                        e, dia = DialogService.get_by_id(dia["id"])
         | 
| @@ -122,7 +111,7 @@ def set_dialog(): | |
| 122 | 
             
            def get():
         | 
| 123 | 
             
                dialog_id = request.args["dialog_id"]
         | 
| 124 | 
             
                try:
         | 
| 125 | 
            -
                    e,dia = DialogService.get_by_id(dialog_id)
         | 
| 126 | 
             
                    if not e: return get_data_error_result(retmsg="Dialog not found!")
         | 
| 127 | 
             
                    dia = dia.to_dict()
         | 
| 128 | 
             
                    dia["kb_ids"], dia["kb_names"] = get_kb_names(dia["kb_ids"])
         | 
| @@ -130,20 +119,22 @@ def get(): | |
| 130 | 
             
                except Exception as e:
         | 
| 131 | 
             
                    return server_error_response(e)
         | 
| 132 |  | 
|  | |
| 133 | 
             
            def get_kb_names(kb_ids):
         | 
| 134 | 
             
                ids, nms = [], []
         | 
| 135 | 
             
                for kid in kb_ids:
         | 
| 136 | 
             
                    e, kb = KnowledgebaseService.get_by_id(kid)
         | 
| 137 | 
            -
                    if not e or kb.status != StatusEnum.VALID.value:continue
         | 
| 138 | 
             
                    ids.append(kid)
         | 
| 139 | 
             
                    nms.append(kb.name)
         | 
| 140 | 
             
                return ids, nms
         | 
| 141 |  | 
|  | |
| 142 | 
             
            @manager.route('/list', methods=['GET'])
         | 
| 143 | 
             
            @login_required
         | 
| 144 | 
             
            def list():
         | 
| 145 | 
             
                try:
         | 
| 146 | 
            -
                    diags = DialogService.query(tenant_id=current_user.id, status=StatusEnum.VALID.value)
         | 
| 147 | 
             
                    diags = [d.to_dict() for d in diags]
         | 
| 148 | 
             
                    for d in diags:
         | 
| 149 | 
             
                        d["kb_ids"], d["kb_names"] = get_kb_names(d["kb_ids"])
         | 
| @@ -154,12 +145,11 @@ def list(): | |
| 154 |  | 
| 155 | 
             
            @manager.route('/rm', methods=['POST'])
         | 
| 156 | 
             
            @login_required
         | 
| 157 | 
            -
            @validate_request(" | 
| 158 | 
             
            def rm():
         | 
| 159 | 
             
                req = request.json
         | 
| 160 | 
             
                try:
         | 
| 161 | 
            -
                     | 
| 162 | 
            -
                        return get_data_error_result(retmsg="Dialog not found!")
         | 
| 163 | 
             
                    return get_json_result(data=True)
         | 
| 164 | 
             
                except Exception as e:
         | 
| 165 | 
            -
                    return server_error_response(e)
         | 
|  | |
| 33 | 
             
                name = req.get("name", "New Dialog")
         | 
| 34 | 
             
                description = req.get("description", "A helpful Dialog")
         | 
| 35 | 
             
                language = req.get("language", "Chinese")
         | 
| 36 | 
            +
                top_n = req.get("top_n", 6)
         | 
| 37 | 
            +
                similarity_threshold = req.get("similarity_threshold", 0.1)
         | 
| 38 | 
            +
                vector_similarity_weight = req.get("vector_similarity_weight", 0.3)
         | 
| 39 | 
             
                llm_setting = req.get("llm_setting", {
         | 
| 40 | 
            +
                    "temperature": 0.1,
         | 
| 41 | 
            +
                    "top_p": 0.3,
         | 
| 42 | 
            +
                    "frequency_penalty": 0.7,
         | 
| 43 | 
            +
                    "presence_penalty": 0.4,
         | 
| 44 | 
            +
                    "max_tokens": 215
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 45 | 
             
                })
         | 
| 46 | 
            +
                default_prompt = {
         | 
| 47 | 
             
                    "system": """你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你的回答必须包括“知识库中未找到您要的答案!”这句话。回答需要考虑聊天历史。
         | 
| 48 | 
             
            以下是知识库:
         | 
| 49 | 
             
            {knowledge}
         | 
|  | |
| 53 | 
             
                        {"key": "knowledge", "optional": False}
         | 
| 54 | 
             
                    ],
         | 
| 55 | 
             
                    "empty_response": "Sorry! 知识库中未找到相关内容!"
         | 
| 56 | 
            +
                }
         | 
| 57 | 
            +
                prompt_config = req.get("prompt_config", default_prompt)
         | 
| 58 |  | 
| 59 | 
            +
                if not prompt_config["system"]: prompt_config["system"] = default_prompt["system"]
         | 
| 60 | 
            +
                # if len(prompt_config["parameters"]) < 1:
         | 
| 61 | 
            +
                #     prompt_config["parameters"] = default_prompt["parameters"]
         | 
| 62 | 
            +
                # for p in prompt_config["parameters"]:
         | 
| 63 | 
            +
                #     if p["key"] == "knowledge":break
         | 
| 64 | 
            +
                # else: prompt_config["parameters"].append(default_prompt["parameters"][0])
         | 
| 65 |  | 
| 66 | 
             
                for p in prompt_config["parameters"]:
         | 
| 67 | 
            +
                    if p["optional"]: continue
         | 
| 68 | 
            +
                    if prompt_config["system"].find("{%s}" % p["key"]) < 0:
         | 
| 69 | 
             
                        return get_data_error_result(retmsg="Parameter '{}' is not used".format(p["key"]))
         | 
| 70 |  | 
| 71 | 
             
                try:
         | 
| 72 | 
             
                    e, tenant = TenantService.get_by_id(current_user.id)
         | 
| 73 | 
            +
                    if not e: return get_data_error_result(retmsg="Tenant not found!")
         | 
| 74 | 
             
                    llm_id = req.get("llm_id", tenant.llm_id)
         | 
| 75 | 
             
                    if not dialog_id:
         | 
| 76 | 
            +
                        if not req.get("kb_ids"):return get_data_error_result(retmsg="Fail! Please select knowledgebase!")
         | 
| 77 | 
             
                        dia = {
         | 
| 78 | 
             
                            "id": get_uuid(),
         | 
| 79 | 
             
                            "tenant_id": current_user.id,
         | 
| 80 | 
             
                            "name": name,
         | 
| 81 | 
            +
                            "kb_ids": req["kb_ids"],
         | 
| 82 | 
             
                            "description": description,
         | 
| 83 | 
             
                            "language": language,
         | 
| 84 | 
             
                            "llm_id": llm_id,
         | 
|  | |
| 85 | 
             
                            "llm_setting": llm_setting,
         | 
| 86 | 
            +
                            "prompt_config": prompt_config,
         | 
| 87 | 
            +
                            "top_n": top_n,
         | 
| 88 | 
            +
                            "similarity_threshold": similarity_threshold,
         | 
| 89 | 
            +
                            "vector_similarity_weight": vector_similarity_weight
         | 
| 90 | 
             
                        }
         | 
| 91 | 
             
                        if not DialogService.save(**dia): return get_data_error_result(retmsg="Fail to new a dialog!")
         | 
| 92 | 
             
                        e, dia = DialogService.get_by_id(dia["id"])
         | 
|  | |
| 111 | 
             
            def get():
         | 
| 112 | 
             
                dialog_id = request.args["dialog_id"]
         | 
| 113 | 
             
                try:
         | 
| 114 | 
            +
                    e, dia = DialogService.get_by_id(dialog_id)
         | 
| 115 | 
             
                    if not e: return get_data_error_result(retmsg="Dialog not found!")
         | 
| 116 | 
             
                    dia = dia.to_dict()
         | 
| 117 | 
             
                    dia["kb_ids"], dia["kb_names"] = get_kb_names(dia["kb_ids"])
         | 
|  | |
| 119 | 
             
                except Exception as e:
         | 
| 120 | 
             
                    return server_error_response(e)
         | 
| 121 |  | 
| 122 | 
            +
             | 
| 123 | 
             
            def get_kb_names(kb_ids):
         | 
| 124 | 
             
                ids, nms = [], []
         | 
| 125 | 
             
                for kid in kb_ids:
         | 
| 126 | 
             
                    e, kb = KnowledgebaseService.get_by_id(kid)
         | 
| 127 | 
            +
                    if not e or kb.status != StatusEnum.VALID.value: continue
         | 
| 128 | 
             
                    ids.append(kid)
         | 
| 129 | 
             
                    nms.append(kb.name)
         | 
| 130 | 
             
                return ids, nms
         | 
| 131 |  | 
| 132 | 
            +
             | 
| 133 | 
             
            @manager.route('/list', methods=['GET'])
         | 
| 134 | 
             
            @login_required
         | 
| 135 | 
             
            def list():
         | 
| 136 | 
             
                try:
         | 
| 137 | 
            +
                    diags = DialogService.query(tenant_id=current_user.id, status=StatusEnum.VALID.value, reverse=True, order_by=DialogService.model.create_time)
         | 
| 138 | 
             
                    diags = [d.to_dict() for d in diags]
         | 
| 139 | 
             
                    for d in diags:
         | 
| 140 | 
             
                        d["kb_ids"], d["kb_names"] = get_kb_names(d["kb_ids"])
         | 
|  | |
| 145 |  | 
| 146 | 
             
            @manager.route('/rm', methods=['POST'])
         | 
| 147 | 
             
            @login_required
         | 
| 148 | 
            +
            @validate_request("dialog_ids")
         | 
| 149 | 
             
            def rm():
         | 
| 150 | 
             
                req = request.json
         | 
| 151 | 
             
                try:
         | 
| 152 | 
            +
                    DialogService.update_many_by_id([{"id": id, "status": StatusEnum.INVALID.value} for id in req["dialog_ids"]])
         | 
|  | |
| 153 | 
             
                    return get_json_result(data=True)
         | 
| 154 | 
             
                except Exception as e:
         | 
| 155 | 
            +
                    return server_error_response(e)
         | 
    	
        api/db/db_models.py
    CHANGED
    
    | @@ -529,8 +529,6 @@ class Dialog(DataBaseModel): | |
| 529 | 
             
                icon = CharField(max_length=16, null=False, help_text="dialog icon")
         | 
| 530 | 
             
                language = CharField(max_length=32, null=True, default="Chinese", help_text="English|Chinese")
         | 
| 531 | 
             
                llm_id = CharField(max_length=32, null=False, help_text="default llm ID")
         | 
| 532 | 
            -
                llm_setting_type = CharField(max_length=8, null=False, help_text="Creative|Precise|Evenly|Custom",
         | 
| 533 | 
            -
                                             default="Creative")
         | 
| 534 | 
             
                llm_setting = JSONField(null=False, default={"temperature": 0.1, "top_p": 0.3, "frequency_penalty": 0.7,
         | 
| 535 | 
             
                                                             "presence_penalty": 0.4, "max_tokens": 215})
         | 
| 536 | 
             
                prompt_type = CharField(max_length=16, null=False, default="simple", help_text="simple|advanced")
         | 
|  | |
| 529 | 
             
                icon = CharField(max_length=16, null=False, help_text="dialog icon")
         | 
| 530 | 
             
                language = CharField(max_length=32, null=True, default="Chinese", help_text="English|Chinese")
         | 
| 531 | 
             
                llm_id = CharField(max_length=32, null=False, help_text="default llm ID")
         | 
|  | |
|  | |
| 532 | 
             
                llm_setting = JSONField(null=False, default={"temperature": 0.1, "top_p": 0.3, "frequency_penalty": 0.7,
         | 
| 533 | 
             
                                                             "presence_penalty": 0.4, "max_tokens": 215})
         | 
| 534 | 
             
                prompt_type = CharField(max_length=16, null=False, default="simple", help_text="simple|advanced")
         | 
    	
        deepdoc/__init__.py
    ADDED
    
    | 
            File without changes
         | 
    	
        {rag → deepdoc}/parser/__init__.py
    RENAMED
    
    | @@ -1,4 +1,3 @@ | |
| 1 | 
            -
            import copy
         | 
| 2 | 
             
            import random
         | 
| 3 |  | 
| 4 | 
             
            from .pdf_parser import HuParser as PdfParser
         | 
| @@ -10,7 +9,7 @@ import re | |
| 10 | 
             
            from nltk import word_tokenize
         | 
| 11 |  | 
| 12 | 
             
            from rag.nlp import stemmer, huqie
         | 
| 13 | 
            -
            from  | 
| 14 |  | 
| 15 | 
             
            BULLET_PATTERN = [[
         | 
| 16 | 
             
                r"第[零一二三四五六七八九十百0-9]+(分?编|部分)",
         | 
|  | |
|  | |
| 1 | 
             
            import random
         | 
| 2 |  | 
| 3 | 
             
            from .pdf_parser import HuParser as PdfParser
         | 
|  | |
| 9 | 
             
            from nltk import word_tokenize
         | 
| 10 |  | 
| 11 | 
             
            from rag.nlp import stemmer, huqie
         | 
| 12 | 
            +
            from rag.utils import num_tokens_from_string
         | 
| 13 |  | 
| 14 | 
             
            BULLET_PATTERN = [[
         | 
| 15 | 
             
                r"第[零一二三四五六七八九十百0-9]+(分?编|部分)",
         | 
    	
        {rag → deepdoc}/parser/docx_parser.py
    RENAMED
    
    | 
            File without changes
         | 
    	
        {rag → deepdoc}/parser/excel_parser.py
    RENAMED
    
    | 
            File without changes
         | 
    	
        {rag → deepdoc}/parser/pdf_parser.py
    RENAMED
    
    | @@ -1,7 +1,6 @@ | |
| 1 | 
             
            # -*- coding: utf-8 -*-
         | 
| 2 | 
             
            import os
         | 
| 3 | 
             
            import random
         | 
| 4 | 
            -
            from functools import partial
         | 
| 5 |  | 
| 6 | 
             
            import fitz
         | 
| 7 | 
             
            import requests
         | 
| @@ -15,6 +14,7 @@ from PIL import Image | |
| 15 | 
             
            import numpy as np
         | 
| 16 |  | 
| 17 | 
             
            from api.db import ParserType
         | 
|  | |
| 18 | 
             
            from rag.nlp import huqie
         | 
| 19 | 
             
            from collections import Counter
         | 
| 20 | 
             
            from copy import deepcopy
         | 
| @@ -26,13 +26,32 @@ logging.getLogger("pdfminer").setLevel(logging.WARNING) | |
| 26 |  | 
| 27 | 
             
            class HuParser:
         | 
| 28 | 
             
                def __init__(self):
         | 
| 29 | 
            -
                     | 
| 30 | 
            -
                    logging.getLogger("ppocr").setLevel(logging.ERROR)
         | 
| 31 | 
            -
                    self.ocr = PaddleOCR(use_angle_cls=False, lang="ch")
         | 
| 32 | 
             
                    if not hasattr(self, "model_speciess"):
         | 
| 33 | 
             
                        self.model_speciess = ParserType.GENERAL.value
         | 
| 34 | 
            -
                    self. | 
| 35 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 36 |  | 
| 37 | 
             
                    self.updown_cnt_mdl = xgb.Booster()
         | 
| 38 | 
             
                    if torch.cuda.is_available():
         | 
| @@ -56,7 +75,7 @@ class HuParser: | |
| 56 | 
             
                    token = os.environ.get("INFINIFLOW_TOKEN")
         | 
| 57 | 
             
                    if not url or not token:
         | 
| 58 | 
             
                        logging.warning("INFINIFLOW_SERVER is not specified. To maximize the effectiveness, please visit https://github.com/infiniflow/ragflow, and sign in the our demo web site to get token. It's FREE! Using 'export' to set both environment variables: INFINIFLOW_SERVER and INFINIFLOW_TOKEN.")
         | 
| 59 | 
            -
                        return []
         | 
| 60 |  | 
| 61 | 
             
                    def convert_image_to_bytes(PILimage):
         | 
| 62 | 
             
                        image = BytesIO()
         | 
| @@ -382,7 +401,7 @@ class HuParser: | |
| 382 |  | 
| 383 | 
             
                    return layouts
         | 
| 384 |  | 
| 385 | 
            -
                def  | 
| 386 | 
             
                    tbls = self.tbl_det(images, thr=0.5)
         | 
| 387 | 
             
                    res = []
         | 
| 388 | 
             
                    # align left&right for rows, align top&bottom for columns
         | 
| @@ -452,7 +471,7 @@ class HuParser: | |
| 452 | 
             
                    assert len(self.page_images) == len(tbcnt) - 1
         | 
| 453 | 
             
                    if not imgs:
         | 
| 454 | 
             
                        return
         | 
| 455 | 
            -
                    recos = self. | 
| 456 | 
             
                    tbcnt = np.cumsum(tbcnt)
         | 
| 457 | 
             
                    for i in range(len(tbcnt) - 1):  # for page
         | 
| 458 | 
             
                        pg = []
         | 
| @@ -517,8 +536,8 @@ class HuParser: | |
| 517 | 
             
                            b["H_right"] = spans[ii]["x1"]
         | 
| 518 | 
             
                            b["SP"] = ii
         | 
| 519 |  | 
| 520 | 
            -
                def  | 
| 521 | 
            -
                    bxs = self.ocr | 
| 522 | 
             
                    if not bxs:
         | 
| 523 | 
             
                        self.boxes.append([])
         | 
| 524 | 
             
                        return
         | 
| @@ -557,11 +576,12 @@ class HuParser: | |
| 557 |  | 
| 558 | 
             
                    self.boxes.append(bxs)
         | 
| 559 |  | 
| 560 | 
            -
                def  | 
| 561 | 
             
                    assert len(self.page_images) == len(self.boxes)
         | 
| 562 | 
             
                    # Tag layout type
         | 
| 563 | 
             
                    boxes = []
         | 
| 564 | 
             
                    layouts = self.layouter(self.page_images)
         | 
|  | |
| 565 | 
             
                    assert len(self.page_images) == len(layouts)
         | 
| 566 | 
             
                    for pn, lts in enumerate(layouts):
         | 
| 567 | 
             
                        bxs = self.boxes[pn]
         | 
| @@ -1741,7 +1761,7 @@ class HuParser: | |
| 1741 | 
             
                        #     else:
         | 
| 1742 | 
             
                        #         self.page_cum_height.append(
         | 
| 1743 | 
             
                        #             np.max([c["bottom"] for c in chars]))
         | 
| 1744 | 
            -
                        self. | 
| 1745 |  | 
| 1746 | 
             
                    if not self.is_english and not any([c for c in self.page_chars]) and self.boxes:
         | 
| 1747 | 
             
                        bxes = [b for bxs in self.boxes for b in bxs]
         | 
| @@ -1754,7 +1774,7 @@ class HuParser: | |
| 1754 |  | 
| 1755 | 
             
                def __call__(self, fnm, need_image=True, zoomin=3, return_html=False):
         | 
| 1756 | 
             
                    self.__images__(fnm, zoomin)
         | 
| 1757 | 
            -
                    self. | 
| 1758 | 
             
                    self._table_transformer_job(zoomin)
         | 
| 1759 | 
             
                    self._text_merge()
         | 
| 1760 | 
             
                    self._concat_downward()
         | 
|  | |
| 1 | 
             
            # -*- coding: utf-8 -*-
         | 
| 2 | 
             
            import os
         | 
| 3 | 
             
            import random
         | 
|  | |
| 4 |  | 
| 5 | 
             
            import fitz
         | 
| 6 | 
             
            import requests
         | 
|  | |
| 14 | 
             
            import numpy as np
         | 
| 15 |  | 
| 16 | 
             
            from api.db import ParserType
         | 
| 17 | 
            +
            from deepdoc.visual import OCR, Recognizer
         | 
| 18 | 
             
            from rag.nlp import huqie
         | 
| 19 | 
             
            from collections import Counter
         | 
| 20 | 
             
            from copy import deepcopy
         | 
|  | |
| 26 |  | 
| 27 | 
             
            class HuParser:
         | 
| 28 | 
             
                def __init__(self):
         | 
| 29 | 
            +
                    self.ocr = OCR()
         | 
|  | |
|  | |
| 30 | 
             
                    if not hasattr(self, "model_speciess"):
         | 
| 31 | 
             
                        self.model_speciess = ParserType.GENERAL.value
         | 
| 32 | 
            +
                    self.layout_labels = [
         | 
| 33 | 
            +
                         "_background_",
         | 
| 34 | 
            +
                         "Text",
         | 
| 35 | 
            +
                         "Title",
         | 
| 36 | 
            +
                         "Figure",
         | 
| 37 | 
            +
                         "Figure caption",
         | 
| 38 | 
            +
                         "Table",
         | 
| 39 | 
            +
                         "Table caption",
         | 
| 40 | 
            +
                         "Header",
         | 
| 41 | 
            +
                         "Footer",
         | 
| 42 | 
            +
                         "Reference",
         | 
| 43 | 
            +
                         "Equation",
         | 
| 44 | 
            +
                    ]
         | 
| 45 | 
            +
                    self.tsr_labels = [
         | 
| 46 | 
            +
                        "table",
         | 
| 47 | 
            +
                        "table column",
         | 
| 48 | 
            +
                        "table row",
         | 
| 49 | 
            +
                        "table column header",
         | 
| 50 | 
            +
                        "table projected row header",
         | 
| 51 | 
            +
                        "table spanning cell",
         | 
| 52 | 
            +
                    ]
         | 
| 53 | 
            +
                    self.layouter = Recognizer(self.layout_labels, "layout", "/data/newpeak/medical-gpt/res/ppdet/")
         | 
| 54 | 
            +
                    self.tbl_det = Recognizer(self.tsr_labels, "tsr", "/data/newpeak/medical-gpt/res/ppdet.tbl/")
         | 
| 55 |  | 
| 56 | 
             
                    self.updown_cnt_mdl = xgb.Booster()
         | 
| 57 | 
             
                    if torch.cuda.is_available():
         | 
|  | |
| 75 | 
             
                    token = os.environ.get("INFINIFLOW_TOKEN")
         | 
| 76 | 
             
                    if not url or not token:
         | 
| 77 | 
             
                        logging.warning("INFINIFLOW_SERVER is not specified. To maximize the effectiveness, please visit https://github.com/infiniflow/ragflow, and sign in the our demo web site to get token. It's FREE! Using 'export' to set both environment variables: INFINIFLOW_SERVER and INFINIFLOW_TOKEN.")
         | 
| 78 | 
            +
                        return [[] for _ in range(len(images))]
         | 
| 79 |  | 
| 80 | 
             
                    def convert_image_to_bytes(PILimage):
         | 
| 81 | 
             
                        image = BytesIO()
         | 
|  | |
| 401 |  | 
| 402 | 
             
                    return layouts
         | 
| 403 |  | 
| 404 | 
            +
                def __table_tsr(self, images):
         | 
| 405 | 
             
                    tbls = self.tbl_det(images, thr=0.5)
         | 
| 406 | 
             
                    res = []
         | 
| 407 | 
             
                    # align left&right for rows, align top&bottom for columns
         | 
|  | |
| 471 | 
             
                    assert len(self.page_images) == len(tbcnt) - 1
         | 
| 472 | 
             
                    if not imgs:
         | 
| 473 | 
             
                        return
         | 
| 474 | 
            +
                    recos = self.__table_tsr(imgs)
         | 
| 475 | 
             
                    tbcnt = np.cumsum(tbcnt)
         | 
| 476 | 
             
                    for i in range(len(tbcnt) - 1):  # for page
         | 
| 477 | 
             
                        pg = []
         | 
|  | |
| 536 | 
             
                            b["H_right"] = spans[ii]["x1"]
         | 
| 537 | 
             
                            b["SP"] = ii
         | 
| 538 |  | 
| 539 | 
            +
                def __ocr(self, pagenum, img, chars, ZM=3):
         | 
| 540 | 
            +
                    bxs = self.ocr(np.array(img))
         | 
| 541 | 
             
                    if not bxs:
         | 
| 542 | 
             
                        self.boxes.append([])
         | 
| 543 | 
             
                        return
         | 
|  | |
| 576 |  | 
| 577 | 
             
                    self.boxes.append(bxs)
         | 
| 578 |  | 
| 579 | 
            +
                def _layouts_rec(self, ZM):
         | 
| 580 | 
             
                    assert len(self.page_images) == len(self.boxes)
         | 
| 581 | 
             
                    # Tag layout type
         | 
| 582 | 
             
                    boxes = []
         | 
| 583 | 
             
                    layouts = self.layouter(self.page_images)
         | 
| 584 | 
            +
                    #save_results(self.page_images, layouts, self.layout_labels, output_dir='output/', threshold=0.7)
         | 
| 585 | 
             
                    assert len(self.page_images) == len(layouts)
         | 
| 586 | 
             
                    for pn, lts in enumerate(layouts):
         | 
| 587 | 
             
                        bxs = self.boxes[pn]
         | 
|  | |
| 1761 | 
             
                        #     else:
         | 
| 1762 | 
             
                        #         self.page_cum_height.append(
         | 
| 1763 | 
             
                        #             np.max([c["bottom"] for c in chars]))
         | 
| 1764 | 
            +
                        self.__ocr(i + 1, img, chars, zoomin)
         | 
| 1765 |  | 
| 1766 | 
             
                    if not self.is_english and not any([c for c in self.page_chars]) and self.boxes:
         | 
| 1767 | 
             
                        bxes = [b for bxs in self.boxes for b in bxs]
         | 
|  | |
| 1774 |  | 
| 1775 | 
             
                def __call__(self, fnm, need_image=True, zoomin=3, return_html=False):
         | 
| 1776 | 
             
                    self.__images__(fnm, zoomin)
         | 
| 1777 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 1778 | 
             
                    self._table_transformer_job(zoomin)
         | 
| 1779 | 
             
                    self._text_merge()
         | 
| 1780 | 
             
                    self._concat_downward()
         | 
    	
        deepdoc/visual/__init__.py
    ADDED
    
    | @@ -0,0 +1,2 @@ | |
|  | |
|  | 
|  | |
| 1 | 
            +
            from .ocr import OCR
         | 
| 2 | 
            +
            from .recognizer import Recognizer
         | 
    	
        deepdoc/visual/ocr.py
    ADDED
    
    | @@ -0,0 +1,561 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            import copy
         | 
| 15 | 
            +
            import time
         | 
| 16 | 
            +
            import os
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            from huggingface_hub import snapshot_download
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            from .operators import *
         | 
| 21 | 
            +
            import numpy as np
         | 
| 22 | 
            +
            import onnxruntime as ort
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            from api.utils.file_utils import get_project_base_directory
         | 
| 25 | 
            +
            from .postprocess import build_post_process
         | 
| 26 | 
            +
            from rag.settings import cron_logger
         | 
| 27 | 
            +
             | 
| 28 | 
            +
             | 
| 29 | 
            +
            def transform(data, ops=None):
         | 
| 30 | 
            +
                """ transform """
         | 
| 31 | 
            +
                if ops is None:
         | 
| 32 | 
            +
                    ops = []
         | 
| 33 | 
            +
                for op in ops:
         | 
| 34 | 
            +
                    data = op(data)
         | 
| 35 | 
            +
                    if data is None:
         | 
| 36 | 
            +
                        return None
         | 
| 37 | 
            +
                return data
         | 
| 38 | 
            +
             | 
| 39 | 
            +
             | 
| 40 | 
            +
            def create_operators(op_param_list, global_config=None):
         | 
| 41 | 
            +
                """
         | 
| 42 | 
            +
                create operators based on the config
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                Args:
         | 
| 45 | 
            +
                    params(list): a dict list, used to create some operators
         | 
| 46 | 
            +
                """
         | 
| 47 | 
            +
                assert isinstance(
         | 
| 48 | 
            +
                    op_param_list, list), ('operator config should be a list')
         | 
| 49 | 
            +
                ops = []
         | 
| 50 | 
            +
                for operator in op_param_list:
         | 
| 51 | 
            +
                    assert isinstance(operator,
         | 
| 52 | 
            +
                                      dict) and len(operator) == 1, "yaml format error"
         | 
| 53 | 
            +
                    op_name = list(operator)[0]
         | 
| 54 | 
            +
                    param = {} if operator[op_name] is None else operator[op_name]
         | 
| 55 | 
            +
                    if global_config is not None:
         | 
| 56 | 
            +
                        param.update(global_config)
         | 
| 57 | 
            +
                    op = eval(op_name)(**param)
         | 
| 58 | 
            +
                    ops.append(op)
         | 
| 59 | 
            +
                return ops
         | 
| 60 | 
            +
             | 
| 61 | 
            +
             | 
| 62 | 
            +
            def load_model(model_dir, nm):
         | 
| 63 | 
            +
                model_file_path = os.path.join(model_dir, nm + ".onnx")
         | 
| 64 | 
            +
                if not os.path.exists(model_file_path):
         | 
| 65 | 
            +
                    raise ValueError("not find model file path {}".format(
         | 
| 66 | 
            +
                        model_file_path))
         | 
| 67 | 
            +
                sess = ort.InferenceSession(model_file_path)
         | 
| 68 | 
            +
                return sess, sess.get_inputs()[0]
         | 
| 69 | 
            +
             | 
| 70 | 
            +
             | 
| 71 | 
            +
            class TextRecognizer(object):
         | 
| 72 | 
            +
                def __init__(self, model_dir):
         | 
| 73 | 
            +
                    self.rec_image_shape = [int(v) for v in "3, 48, 320".split(",")]
         | 
| 74 | 
            +
                    self.rec_batch_num = 16
         | 
| 75 | 
            +
                    postprocess_params = {
         | 
| 76 | 
            +
                        'name': 'CTCLabelDecode',
         | 
| 77 | 
            +
                        "character_dict_path": os.path.join(get_project_base_directory(), "rag/res", "ocr.res"),
         | 
| 78 | 
            +
                        "use_space_char": True
         | 
| 79 | 
            +
                    }
         | 
| 80 | 
            +
                    self.postprocess_op = build_post_process(postprocess_params)
         | 
| 81 | 
            +
                    self.predictor, self.input_tensor = load_model(model_dir, 'rec')
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                def resize_norm_img(self, img, max_wh_ratio):
         | 
| 84 | 
            +
                    imgC, imgH, imgW = self.rec_image_shape
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                    assert imgC == img.shape[2]
         | 
| 87 | 
            +
                    imgW = int((imgH * max_wh_ratio))
         | 
| 88 | 
            +
                    w = self.input_tensor.shape[3:][0]
         | 
| 89 | 
            +
                    if isinstance(w, str):
         | 
| 90 | 
            +
                        pass
         | 
| 91 | 
            +
                    elif w is not None and w > 0:
         | 
| 92 | 
            +
                        imgW = w
         | 
| 93 | 
            +
                    h, w = img.shape[:2]
         | 
| 94 | 
            +
                    ratio = w / float(h)
         | 
| 95 | 
            +
                    if math.ceil(imgH * ratio) > imgW:
         | 
| 96 | 
            +
                        resized_w = imgW
         | 
| 97 | 
            +
                    else:
         | 
| 98 | 
            +
                        resized_w = int(math.ceil(imgH * ratio))
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    resized_image = cv2.resize(img, (resized_w, imgH))
         | 
| 101 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 102 | 
            +
                    resized_image = resized_image.transpose((2, 0, 1)) / 255
         | 
| 103 | 
            +
                    resized_image -= 0.5
         | 
| 104 | 
            +
                    resized_image /= 0.5
         | 
| 105 | 
            +
                    padding_im = np.zeros((imgC, imgH, imgW), dtype=np.float32)
         | 
| 106 | 
            +
                    padding_im[:, :, 0:resized_w] = resized_image
         | 
| 107 | 
            +
                    return padding_im
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                def resize_norm_img_vl(self, img, image_shape):
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                    imgC, imgH, imgW = image_shape
         | 
| 112 | 
            +
                    img = img[:, :, ::-1]  # bgr2rgb
         | 
| 113 | 
            +
                    resized_image = cv2.resize(
         | 
| 114 | 
            +
                        img, (imgW, imgH), interpolation=cv2.INTER_LINEAR)
         | 
| 115 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 116 | 
            +
                    resized_image = resized_image.transpose((2, 0, 1)) / 255
         | 
| 117 | 
            +
                    return resized_image
         | 
| 118 | 
            +
             | 
| 119 | 
            +
                def resize_norm_img_srn(self, img, image_shape):
         | 
| 120 | 
            +
                    imgC, imgH, imgW = image_shape
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                    img_black = np.zeros((imgH, imgW))
         | 
| 123 | 
            +
                    im_hei = img.shape[0]
         | 
| 124 | 
            +
                    im_wid = img.shape[1]
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                    if im_wid <= im_hei * 1:
         | 
| 127 | 
            +
                        img_new = cv2.resize(img, (imgH * 1, imgH))
         | 
| 128 | 
            +
                    elif im_wid <= im_hei * 2:
         | 
| 129 | 
            +
                        img_new = cv2.resize(img, (imgH * 2, imgH))
         | 
| 130 | 
            +
                    elif im_wid <= im_hei * 3:
         | 
| 131 | 
            +
                        img_new = cv2.resize(img, (imgH * 3, imgH))
         | 
| 132 | 
            +
                    else:
         | 
| 133 | 
            +
                        img_new = cv2.resize(img, (imgW, imgH))
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                    img_np = np.asarray(img_new)
         | 
| 136 | 
            +
                    img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
         | 
| 137 | 
            +
                    img_black[:, 0:img_np.shape[1]] = img_np
         | 
| 138 | 
            +
                    img_black = img_black[:, :, np.newaxis]
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                    row, col, c = img_black.shape
         | 
| 141 | 
            +
                    c = 1
         | 
| 142 | 
            +
             | 
| 143 | 
            +
                    return np.reshape(img_black, (c, row, col)).astype(np.float32)
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                def srn_other_inputs(self, image_shape, num_heads, max_text_length):
         | 
| 146 | 
            +
             | 
| 147 | 
            +
                    imgC, imgH, imgW = image_shape
         | 
| 148 | 
            +
                    feature_dim = int((imgH / 8) * (imgW / 8))
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                    encoder_word_pos = np.array(range(0, feature_dim)).reshape(
         | 
| 151 | 
            +
                        (feature_dim, 1)).astype('int64')
         | 
| 152 | 
            +
                    gsrm_word_pos = np.array(range(0, max_text_length)).reshape(
         | 
| 153 | 
            +
                        (max_text_length, 1)).astype('int64')
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                    gsrm_attn_bias_data = np.ones((1, max_text_length, max_text_length))
         | 
| 156 | 
            +
                    gsrm_slf_attn_bias1 = np.triu(gsrm_attn_bias_data, 1).reshape(
         | 
| 157 | 
            +
                        [-1, 1, max_text_length, max_text_length])
         | 
| 158 | 
            +
                    gsrm_slf_attn_bias1 = np.tile(
         | 
| 159 | 
            +
                        gsrm_slf_attn_bias1,
         | 
| 160 | 
            +
                        [1, num_heads, 1, 1]).astype('float32') * [-1e9]
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                    gsrm_slf_attn_bias2 = np.tril(gsrm_attn_bias_data, -1).reshape(
         | 
| 163 | 
            +
                        [-1, 1, max_text_length, max_text_length])
         | 
| 164 | 
            +
                    gsrm_slf_attn_bias2 = np.tile(
         | 
| 165 | 
            +
                        gsrm_slf_attn_bias2,
         | 
| 166 | 
            +
                        [1, num_heads, 1, 1]).astype('float32') * [-1e9]
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                    encoder_word_pos = encoder_word_pos[np.newaxis, :]
         | 
| 169 | 
            +
                    gsrm_word_pos = gsrm_word_pos[np.newaxis, :]
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                    return [
         | 
| 172 | 
            +
                        encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1,
         | 
| 173 | 
            +
                        gsrm_slf_attn_bias2
         | 
| 174 | 
            +
                    ]
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                def process_image_srn(self, img, image_shape, num_heads, max_text_length):
         | 
| 177 | 
            +
                    norm_img = self.resize_norm_img_srn(img, image_shape)
         | 
| 178 | 
            +
                    norm_img = norm_img[np.newaxis, :]
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                    [encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1, gsrm_slf_attn_bias2] = \
         | 
| 181 | 
            +
                        self.srn_other_inputs(image_shape, num_heads, max_text_length)
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                    gsrm_slf_attn_bias1 = gsrm_slf_attn_bias1.astype(np.float32)
         | 
| 184 | 
            +
                    gsrm_slf_attn_bias2 = gsrm_slf_attn_bias2.astype(np.float32)
         | 
| 185 | 
            +
                    encoder_word_pos = encoder_word_pos.astype(np.int64)
         | 
| 186 | 
            +
                    gsrm_word_pos = gsrm_word_pos.astype(np.int64)
         | 
| 187 | 
            +
             | 
| 188 | 
            +
                    return (norm_img, encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1,
         | 
| 189 | 
            +
                            gsrm_slf_attn_bias2)
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                def resize_norm_img_sar(self, img, image_shape,
         | 
| 192 | 
            +
                                        width_downsample_ratio=0.25):
         | 
| 193 | 
            +
                    imgC, imgH, imgW_min, imgW_max = image_shape
         | 
| 194 | 
            +
                    h = img.shape[0]
         | 
| 195 | 
            +
                    w = img.shape[1]
         | 
| 196 | 
            +
                    valid_ratio = 1.0
         | 
| 197 | 
            +
                    # make sure new_width is an integral multiple of width_divisor.
         | 
| 198 | 
            +
                    width_divisor = int(1 / width_downsample_ratio)
         | 
| 199 | 
            +
                    # resize
         | 
| 200 | 
            +
                    ratio = w / float(h)
         | 
| 201 | 
            +
                    resize_w = math.ceil(imgH * ratio)
         | 
| 202 | 
            +
                    if resize_w % width_divisor != 0:
         | 
| 203 | 
            +
                        resize_w = round(resize_w / width_divisor) * width_divisor
         | 
| 204 | 
            +
                    if imgW_min is not None:
         | 
| 205 | 
            +
                        resize_w = max(imgW_min, resize_w)
         | 
| 206 | 
            +
                    if imgW_max is not None:
         | 
| 207 | 
            +
                        valid_ratio = min(1.0, 1.0 * resize_w / imgW_max)
         | 
| 208 | 
            +
                        resize_w = min(imgW_max, resize_w)
         | 
| 209 | 
            +
                    resized_image = cv2.resize(img, (resize_w, imgH))
         | 
| 210 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 211 | 
            +
                    # norm
         | 
| 212 | 
            +
                    if image_shape[0] == 1:
         | 
| 213 | 
            +
                        resized_image = resized_image / 255
         | 
| 214 | 
            +
                        resized_image = resized_image[np.newaxis, :]
         | 
| 215 | 
            +
                    else:
         | 
| 216 | 
            +
                        resized_image = resized_image.transpose((2, 0, 1)) / 255
         | 
| 217 | 
            +
                    resized_image -= 0.5
         | 
| 218 | 
            +
                    resized_image /= 0.5
         | 
| 219 | 
            +
                    resize_shape = resized_image.shape
         | 
| 220 | 
            +
                    padding_im = -1.0 * np.ones((imgC, imgH, imgW_max), dtype=np.float32)
         | 
| 221 | 
            +
                    padding_im[:, :, 0:resize_w] = resized_image
         | 
| 222 | 
            +
                    pad_shape = padding_im.shape
         | 
| 223 | 
            +
             | 
| 224 | 
            +
                    return padding_im, resize_shape, pad_shape, valid_ratio
         | 
| 225 | 
            +
             | 
| 226 | 
            +
                def resize_norm_img_spin(self, img):
         | 
| 227 | 
            +
                    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
         | 
| 228 | 
            +
                    # return padding_im
         | 
| 229 | 
            +
                    img = cv2.resize(img, tuple([100, 32]), cv2.INTER_CUBIC)
         | 
| 230 | 
            +
                    img = np.array(img, np.float32)
         | 
| 231 | 
            +
                    img = np.expand_dims(img, -1)
         | 
| 232 | 
            +
                    img = img.transpose((2, 0, 1))
         | 
| 233 | 
            +
                    mean = [127.5]
         | 
| 234 | 
            +
                    std = [127.5]
         | 
| 235 | 
            +
                    mean = np.array(mean, dtype=np.float32)
         | 
| 236 | 
            +
                    std = np.array(std, dtype=np.float32)
         | 
| 237 | 
            +
                    mean = np.float32(mean.reshape(1, -1))
         | 
| 238 | 
            +
                    stdinv = 1 / np.float32(std.reshape(1, -1))
         | 
| 239 | 
            +
                    img -= mean
         | 
| 240 | 
            +
                    img *= stdinv
         | 
| 241 | 
            +
                    return img
         | 
| 242 | 
            +
             | 
| 243 | 
            +
                def resize_norm_img_svtr(self, img, image_shape):
         | 
| 244 | 
            +
             | 
| 245 | 
            +
                    imgC, imgH, imgW = image_shape
         | 
| 246 | 
            +
                    resized_image = cv2.resize(
         | 
| 247 | 
            +
                        img, (imgW, imgH), interpolation=cv2.INTER_LINEAR)
         | 
| 248 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 249 | 
            +
                    resized_image = resized_image.transpose((2, 0, 1)) / 255
         | 
| 250 | 
            +
                    resized_image -= 0.5
         | 
| 251 | 
            +
                    resized_image /= 0.5
         | 
| 252 | 
            +
                    return resized_image
         | 
| 253 | 
            +
             | 
| 254 | 
            +
                def resize_norm_img_abinet(self, img, image_shape):
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                    imgC, imgH, imgW = image_shape
         | 
| 257 | 
            +
             | 
| 258 | 
            +
                    resized_image = cv2.resize(
         | 
| 259 | 
            +
                        img, (imgW, imgH), interpolation=cv2.INTER_LINEAR)
         | 
| 260 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 261 | 
            +
                    resized_image = resized_image / 255.
         | 
| 262 | 
            +
             | 
| 263 | 
            +
                    mean = np.array([0.485, 0.456, 0.406])
         | 
| 264 | 
            +
                    std = np.array([0.229, 0.224, 0.225])
         | 
| 265 | 
            +
                    resized_image = (
         | 
| 266 | 
            +
                        resized_image - mean[None, None, ...]) / std[None, None, ...]
         | 
| 267 | 
            +
                    resized_image = resized_image.transpose((2, 0, 1))
         | 
| 268 | 
            +
                    resized_image = resized_image.astype('float32')
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                    return resized_image
         | 
| 271 | 
            +
             | 
| 272 | 
            +
                def norm_img_can(self, img, image_shape):
         | 
| 273 | 
            +
             | 
| 274 | 
            +
                    img = cv2.cvtColor(
         | 
| 275 | 
            +
                        img, cv2.COLOR_BGR2GRAY)  # CAN only predict gray scale image
         | 
| 276 | 
            +
             | 
| 277 | 
            +
                    if self.rec_image_shape[0] == 1:
         | 
| 278 | 
            +
                        h, w = img.shape
         | 
| 279 | 
            +
                        _, imgH, imgW = self.rec_image_shape
         | 
| 280 | 
            +
                        if h < imgH or w < imgW:
         | 
| 281 | 
            +
                            padding_h = max(imgH - h, 0)
         | 
| 282 | 
            +
                            padding_w = max(imgW - w, 0)
         | 
| 283 | 
            +
                            img_padded = np.pad(img, ((0, padding_h), (0, padding_w)),
         | 
| 284 | 
            +
                                                'constant',
         | 
| 285 | 
            +
                                                constant_values=(255))
         | 
| 286 | 
            +
                            img = img_padded
         | 
| 287 | 
            +
             | 
| 288 | 
            +
                    img = np.expand_dims(img, 0) / 255.0  # h,w,c -> c,h,w
         | 
| 289 | 
            +
                    img = img.astype('float32')
         | 
| 290 | 
            +
             | 
| 291 | 
            +
                    return img
         | 
| 292 | 
            +
             | 
| 293 | 
            +
                def __call__(self, img_list):
         | 
| 294 | 
            +
                    img_num = len(img_list)
         | 
| 295 | 
            +
                    # Calculate the aspect ratio of all text bars
         | 
| 296 | 
            +
                    width_list = []
         | 
| 297 | 
            +
                    for img in img_list:
         | 
| 298 | 
            +
                        width_list.append(img.shape[1] / float(img.shape[0]))
         | 
| 299 | 
            +
                    # Sorting can speed up the recognition process
         | 
| 300 | 
            +
                    indices = np.argsort(np.array(width_list))
         | 
| 301 | 
            +
                    rec_res = [['', 0.0]] * img_num
         | 
| 302 | 
            +
                    batch_num = self.rec_batch_num
         | 
| 303 | 
            +
                    st = time.time()
         | 
| 304 | 
            +
             | 
| 305 | 
            +
                    for beg_img_no in range(0, img_num, batch_num):
         | 
| 306 | 
            +
                        end_img_no = min(img_num, beg_img_no + batch_num)
         | 
| 307 | 
            +
                        norm_img_batch = []
         | 
| 308 | 
            +
                        imgC, imgH, imgW = self.rec_image_shape[:3]
         | 
| 309 | 
            +
                        max_wh_ratio = imgW / imgH
         | 
| 310 | 
            +
                        # max_wh_ratio = 0
         | 
| 311 | 
            +
                        for ino in range(beg_img_no, end_img_no):
         | 
| 312 | 
            +
                            h, w = img_list[indices[ino]].shape[0:2]
         | 
| 313 | 
            +
                            wh_ratio = w * 1.0 / h
         | 
| 314 | 
            +
                            max_wh_ratio = max(max_wh_ratio, wh_ratio)
         | 
| 315 | 
            +
                        for ino in range(beg_img_no, end_img_no):
         | 
| 316 | 
            +
                            norm_img = self.resize_norm_img(img_list[indices[ino]],
         | 
| 317 | 
            +
                                                            max_wh_ratio)
         | 
| 318 | 
            +
                            norm_img = norm_img[np.newaxis, :]
         | 
| 319 | 
            +
                            norm_img_batch.append(norm_img)
         | 
| 320 | 
            +
                        norm_img_batch = np.concatenate(norm_img_batch)
         | 
| 321 | 
            +
                        norm_img_batch = norm_img_batch.copy()
         | 
| 322 | 
            +
             | 
| 323 | 
            +
                        input_dict = {}
         | 
| 324 | 
            +
                        input_dict[self.input_tensor.name] = norm_img_batch
         | 
| 325 | 
            +
                        outputs = self.predictor.run(None, input_dict)
         | 
| 326 | 
            +
                        preds = outputs[0]
         | 
| 327 | 
            +
                        rec_result = self.postprocess_op(preds)
         | 
| 328 | 
            +
                        for rno in range(len(rec_result)):
         | 
| 329 | 
            +
                            rec_res[indices[beg_img_no + rno]] = rec_result[rno]
         | 
| 330 | 
            +
             | 
| 331 | 
            +
                    return rec_res, time.time() - st
         | 
| 332 | 
            +
             | 
| 333 | 
            +
             | 
| 334 | 
            +
            class TextDetector(object):
         | 
| 335 | 
            +
                def __init__(self, model_dir):
         | 
| 336 | 
            +
                    pre_process_list = [{
         | 
| 337 | 
            +
                        'DetResizeForTest': {
         | 
| 338 | 
            +
                            'limit_side_len': 960,
         | 
| 339 | 
            +
                            'limit_type': "max",
         | 
| 340 | 
            +
                        }
         | 
| 341 | 
            +
                    }, {
         | 
| 342 | 
            +
                        'NormalizeImage': {
         | 
| 343 | 
            +
                            'std': [0.229, 0.224, 0.225],
         | 
| 344 | 
            +
                            'mean': [0.485, 0.456, 0.406],
         | 
| 345 | 
            +
                            'scale': '1./255.',
         | 
| 346 | 
            +
                            'order': 'hwc'
         | 
| 347 | 
            +
                        }
         | 
| 348 | 
            +
                    }, {
         | 
| 349 | 
            +
                        'ToCHWImage': None
         | 
| 350 | 
            +
                    }, {
         | 
| 351 | 
            +
                        'KeepKeys': {
         | 
| 352 | 
            +
                            'keep_keys': ['image', 'shape']
         | 
| 353 | 
            +
                        }
         | 
| 354 | 
            +
                    }]
         | 
| 355 | 
            +
                    postprocess_params = {"name": "DBPostProcess", "thresh": 0.3, "box_thresh": 0.6, "max_candidates": 1000,
         | 
| 356 | 
            +
                                          "unclip_ratio": 1.5, "use_dilation": False, "score_mode": "fast", "box_type": "quad"}
         | 
| 357 | 
            +
             | 
| 358 | 
            +
                    self.postprocess_op = build_post_process(postprocess_params)
         | 
| 359 | 
            +
                    self.predictor, self.input_tensor = load_model(model_dir, 'det')
         | 
| 360 | 
            +
             | 
| 361 | 
            +
                    img_h, img_w = self.input_tensor.shape[2:]
         | 
| 362 | 
            +
                    if isinstance(img_h, str) or isinstance(img_w, str):
         | 
| 363 | 
            +
                        pass
         | 
| 364 | 
            +
                    elif img_h is not None and img_w is not None and img_h > 0 and img_w > 0:
         | 
| 365 | 
            +
                        pre_process_list[0] = {
         | 
| 366 | 
            +
                            'DetResizeForTest': {
         | 
| 367 | 
            +
                                'image_shape': [img_h, img_w]
         | 
| 368 | 
            +
                            }
         | 
| 369 | 
            +
                        }
         | 
| 370 | 
            +
                    self.preprocess_op = create_operators(pre_process_list)
         | 
| 371 | 
            +
             | 
| 372 | 
            +
                def order_points_clockwise(self, pts):
         | 
| 373 | 
            +
                    rect = np.zeros((4, 2), dtype="float32")
         | 
| 374 | 
            +
                    s = pts.sum(axis=1)
         | 
| 375 | 
            +
                    rect[0] = pts[np.argmin(s)]
         | 
| 376 | 
            +
                    rect[2] = pts[np.argmax(s)]
         | 
| 377 | 
            +
                    tmp = np.delete(pts, (np.argmin(s), np.argmax(s)), axis=0)
         | 
| 378 | 
            +
                    diff = np.diff(np.array(tmp), axis=1)
         | 
| 379 | 
            +
                    rect[1] = tmp[np.argmin(diff)]
         | 
| 380 | 
            +
                    rect[3] = tmp[np.argmax(diff)]
         | 
| 381 | 
            +
                    return rect
         | 
| 382 | 
            +
             | 
| 383 | 
            +
                def clip_det_res(self, points, img_height, img_width):
         | 
| 384 | 
            +
                    for pno in range(points.shape[0]):
         | 
| 385 | 
            +
                        points[pno, 0] = int(min(max(points[pno, 0], 0), img_width - 1))
         | 
| 386 | 
            +
                        points[pno, 1] = int(min(max(points[pno, 1], 0), img_height - 1))
         | 
| 387 | 
            +
                    return points
         | 
| 388 | 
            +
             | 
| 389 | 
            +
                def filter_tag_det_res(self, dt_boxes, image_shape):
         | 
| 390 | 
            +
                    img_height, img_width = image_shape[0:2]
         | 
| 391 | 
            +
                    dt_boxes_new = []
         | 
| 392 | 
            +
                    for box in dt_boxes:
         | 
| 393 | 
            +
                        if isinstance(box, list):
         | 
| 394 | 
            +
                            box = np.array(box)
         | 
| 395 | 
            +
                        box = self.order_points_clockwise(box)
         | 
| 396 | 
            +
                        box = self.clip_det_res(box, img_height, img_width)
         | 
| 397 | 
            +
                        rect_width = int(np.linalg.norm(box[0] - box[1]))
         | 
| 398 | 
            +
                        rect_height = int(np.linalg.norm(box[0] - box[3]))
         | 
| 399 | 
            +
                        if rect_width <= 3 or rect_height <= 3:
         | 
| 400 | 
            +
                            continue
         | 
| 401 | 
            +
                        dt_boxes_new.append(box)
         | 
| 402 | 
            +
                    dt_boxes = np.array(dt_boxes_new)
         | 
| 403 | 
            +
                    return dt_boxes
         | 
| 404 | 
            +
             | 
| 405 | 
            +
                def filter_tag_det_res_only_clip(self, dt_boxes, image_shape):
         | 
| 406 | 
            +
                    img_height, img_width = image_shape[0:2]
         | 
| 407 | 
            +
                    dt_boxes_new = []
         | 
| 408 | 
            +
                    for box in dt_boxes:
         | 
| 409 | 
            +
                        if isinstance(box, list):
         | 
| 410 | 
            +
                            box = np.array(box)
         | 
| 411 | 
            +
                        box = self.clip_det_res(box, img_height, img_width)
         | 
| 412 | 
            +
                        dt_boxes_new.append(box)
         | 
| 413 | 
            +
                    dt_boxes = np.array(dt_boxes_new)
         | 
| 414 | 
            +
                    return dt_boxes
         | 
| 415 | 
            +
             | 
| 416 | 
            +
                def __call__(self, img):
         | 
| 417 | 
            +
                    ori_im = img.copy()
         | 
| 418 | 
            +
                    data = {'image': img}
         | 
| 419 | 
            +
             | 
| 420 | 
            +
                    st = time.time()
         | 
| 421 | 
            +
                    data = transform(data, self.preprocess_op)
         | 
| 422 | 
            +
                    img, shape_list = data
         | 
| 423 | 
            +
                    if img is None:
         | 
| 424 | 
            +
                        return None, 0
         | 
| 425 | 
            +
                    img = np.expand_dims(img, axis=0)
         | 
| 426 | 
            +
                    shape_list = np.expand_dims(shape_list, axis=0)
         | 
| 427 | 
            +
                    img = img.copy()
         | 
| 428 | 
            +
                    input_dict = {}
         | 
| 429 | 
            +
                    input_dict[self.input_tensor.name] = img
         | 
| 430 | 
            +
                    outputs = self.predictor.run(None, input_dict)
         | 
| 431 | 
            +
             | 
| 432 | 
            +
                    post_result = self.postprocess_op({"maps": outputs[0]}, shape_list)
         | 
| 433 | 
            +
                    dt_boxes = post_result[0]['points']
         | 
| 434 | 
            +
                    dt_boxes = self.filter_tag_det_res(dt_boxes, ori_im.shape)
         | 
| 435 | 
            +
             | 
| 436 | 
            +
                    return dt_boxes, time.time() - st
         | 
| 437 | 
            +
             | 
| 438 | 
            +
             | 
| 439 | 
            +
            class OCR(object):
         | 
| 440 | 
            +
                def __init__(self, model_dir=None):
         | 
| 441 | 
            +
                    """
         | 
| 442 | 
            +
                    If you have trouble downloading HuggingFace models, -_^ this might help!!
         | 
| 443 | 
            +
             | 
| 444 | 
            +
                    For Linux:
         | 
| 445 | 
            +
                    export HF_ENDPOINT=https://hf-mirror.com
         | 
| 446 | 
            +
             | 
| 447 | 
            +
                    For Windows:
         | 
| 448 | 
            +
                    Good luck
         | 
| 449 | 
            +
                    ^_-
         | 
| 450 | 
            +
             | 
| 451 | 
            +
                    """
         | 
| 452 | 
            +
                    if not model_dir:
         | 
| 453 | 
            +
                        model_dir = snapshot_download(repo_id="InfiniFlow/ocr")
         | 
| 454 | 
            +
             | 
| 455 | 
            +
                    self.text_detector = TextDetector(model_dir)
         | 
| 456 | 
            +
                    self.text_recognizer = TextRecognizer(model_dir)
         | 
| 457 | 
            +
                    self.drop_score = 0.5
         | 
| 458 | 
            +
                    self.crop_image_res_index = 0
         | 
| 459 | 
            +
             | 
| 460 | 
            +
                def get_rotate_crop_image(self, img, points):
         | 
| 461 | 
            +
                    '''
         | 
| 462 | 
            +
                    img_height, img_width = img.shape[0:2]
         | 
| 463 | 
            +
                    left = int(np.min(points[:, 0]))
         | 
| 464 | 
            +
                    right = int(np.max(points[:, 0]))
         | 
| 465 | 
            +
                    top = int(np.min(points[:, 1]))
         | 
| 466 | 
            +
                    bottom = int(np.max(points[:, 1]))
         | 
| 467 | 
            +
                    img_crop = img[top:bottom, left:right, :].copy()
         | 
| 468 | 
            +
                    points[:, 0] = points[:, 0] - left
         | 
| 469 | 
            +
                    points[:, 1] = points[:, 1] - top
         | 
| 470 | 
            +
                    '''
         | 
| 471 | 
            +
                    assert len(points) == 4, "shape of points must be 4*2"
         | 
| 472 | 
            +
                    img_crop_width = int(
         | 
| 473 | 
            +
                        max(
         | 
| 474 | 
            +
                            np.linalg.norm(points[0] - points[1]),
         | 
| 475 | 
            +
                            np.linalg.norm(points[2] - points[3])))
         | 
| 476 | 
            +
                    img_crop_height = int(
         | 
| 477 | 
            +
                        max(
         | 
| 478 | 
            +
                            np.linalg.norm(points[0] - points[3]),
         | 
| 479 | 
            +
                            np.linalg.norm(points[1] - points[2])))
         | 
| 480 | 
            +
                    pts_std = np.float32([[0, 0], [img_crop_width, 0],
         | 
| 481 | 
            +
                                          [img_crop_width, img_crop_height],
         | 
| 482 | 
            +
                                          [0, img_crop_height]])
         | 
| 483 | 
            +
                    M = cv2.getPerspectiveTransform(points, pts_std)
         | 
| 484 | 
            +
                    dst_img = cv2.warpPerspective(
         | 
| 485 | 
            +
                        img,
         | 
| 486 | 
            +
                        M, (img_crop_width, img_crop_height),
         | 
| 487 | 
            +
                        borderMode=cv2.BORDER_REPLICATE,
         | 
| 488 | 
            +
                        flags=cv2.INTER_CUBIC)
         | 
| 489 | 
            +
                    dst_img_height, dst_img_width = dst_img.shape[0:2]
         | 
| 490 | 
            +
                    if dst_img_height * 1.0 / dst_img_width >= 1.5:
         | 
| 491 | 
            +
                        dst_img = np.rot90(dst_img)
         | 
| 492 | 
            +
                    return dst_img
         | 
| 493 | 
            +
             | 
| 494 | 
            +
                def sorted_boxes(self, dt_boxes):
         | 
| 495 | 
            +
                    """
         | 
| 496 | 
            +
                    Sort text boxes in order from top to bottom, left to right
         | 
| 497 | 
            +
                    args:
         | 
| 498 | 
            +
                        dt_boxes(array):detected text boxes with shape [4, 2]
         | 
| 499 | 
            +
                    return:
         | 
| 500 | 
            +
                        sorted boxes(array) with shape [4, 2]
         | 
| 501 | 
            +
                    """
         | 
| 502 | 
            +
                    num_boxes = dt_boxes.shape[0]
         | 
| 503 | 
            +
                    sorted_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0]))
         | 
| 504 | 
            +
                    _boxes = list(sorted_boxes)
         | 
| 505 | 
            +
             | 
| 506 | 
            +
                    for i in range(num_boxes - 1):
         | 
| 507 | 
            +
                        for j in range(i, -1, -1):
         | 
| 508 | 
            +
                            if abs(_boxes[j + 1][0][1] - _boxes[j][0][1]) < 10 and \
         | 
| 509 | 
            +
                                    (_boxes[j + 1][0][0] < _boxes[j][0][0]):
         | 
| 510 | 
            +
                                tmp = _boxes[j]
         | 
| 511 | 
            +
                                _boxes[j] = _boxes[j + 1]
         | 
| 512 | 
            +
                                _boxes[j + 1] = tmp
         | 
| 513 | 
            +
                            else:
         | 
| 514 | 
            +
                                break
         | 
| 515 | 
            +
                    return _boxes
         | 
| 516 | 
            +
             | 
| 517 | 
            +
                def __call__(self, img, cls=True):
         | 
| 518 | 
            +
                    time_dict = {'det': 0, 'rec': 0, 'cls': 0, 'all': 0}
         | 
| 519 | 
            +
             | 
| 520 | 
            +
                    if img is None:
         | 
| 521 | 
            +
                        return None, None, time_dict
         | 
| 522 | 
            +
             | 
| 523 | 
            +
                    start = time.time()
         | 
| 524 | 
            +
                    ori_im = img.copy()
         | 
| 525 | 
            +
                    dt_boxes, elapse = self.text_detector(img)
         | 
| 526 | 
            +
                    time_dict['det'] = elapse
         | 
| 527 | 
            +
             | 
| 528 | 
            +
                    if dt_boxes is None:
         | 
| 529 | 
            +
                        end = time.time()
         | 
| 530 | 
            +
                        time_dict['all'] = end - start
         | 
| 531 | 
            +
                        return None, None, time_dict
         | 
| 532 | 
            +
                    else:
         | 
| 533 | 
            +
                        cron_logger.debug("dt_boxes num : {}, elapsed : {}".format(
         | 
| 534 | 
            +
                            len(dt_boxes), elapse))
         | 
| 535 | 
            +
                    img_crop_list = []
         | 
| 536 | 
            +
             | 
| 537 | 
            +
                    dt_boxes = self.sorted_boxes(dt_boxes)
         | 
| 538 | 
            +
             | 
| 539 | 
            +
                    for bno in range(len(dt_boxes)):
         | 
| 540 | 
            +
                        tmp_box = copy.deepcopy(dt_boxes[bno])
         | 
| 541 | 
            +
                        img_crop = self.get_rotate_crop_image(ori_im, tmp_box)
         | 
| 542 | 
            +
                        img_crop_list.append(img_crop)
         | 
| 543 | 
            +
             | 
| 544 | 
            +
                    rec_res, elapse = self.text_recognizer(img_crop_list)
         | 
| 545 | 
            +
                    time_dict['rec'] = elapse
         | 
| 546 | 
            +
                    cron_logger.debug("rec_res num  : {}, elapsed : {}".format(
         | 
| 547 | 
            +
                        len(rec_res), elapse))
         | 
| 548 | 
            +
             | 
| 549 | 
            +
                    filter_boxes, filter_rec_res = [], []
         | 
| 550 | 
            +
                    for box, rec_result in zip(dt_boxes, rec_res):
         | 
| 551 | 
            +
                        text, score = rec_result
         | 
| 552 | 
            +
                        if score >= self.drop_score:
         | 
| 553 | 
            +
                            filter_boxes.append(box)
         | 
| 554 | 
            +
                            filter_rec_res.append(rec_result)
         | 
| 555 | 
            +
                    end = time.time()
         | 
| 556 | 
            +
                    time_dict['all'] = end - start
         | 
| 557 | 
            +
             | 
| 558 | 
            +
                    #for bno in range(len(img_crop_list)):
         | 
| 559 | 
            +
                    #    print(f"{bno}, {rec_res[bno]}")
         | 
| 560 | 
            +
             | 
| 561 | 
            +
                    return list(zip([a.tolist() for a in filter_boxes], filter_rec_res))
         | 
    	
        deepdoc/visual/ocr.res
    ADDED
    
    | @@ -0,0 +1,6623 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            '
         | 
| 2 | 
            +
            疗
         | 
| 3 | 
            +
            绚
         | 
| 4 | 
            +
            诚
         | 
| 5 | 
            +
            娇
         | 
| 6 | 
            +
            溜
         | 
| 7 | 
            +
            题
         | 
| 8 | 
            +
            贿
         | 
| 9 | 
            +
            者
         | 
| 10 | 
            +
            廖
         | 
| 11 | 
            +
            更
         | 
| 12 | 
            +
            纳
         | 
| 13 | 
            +
            加
         | 
| 14 | 
            +
            奉
         | 
| 15 | 
            +
            公
         | 
| 16 | 
            +
            一
         | 
| 17 | 
            +
            就
         | 
| 18 | 
            +
            汴
         | 
| 19 | 
            +
            计
         | 
| 20 | 
            +
            与
         | 
| 21 | 
            +
            路
         | 
| 22 | 
            +
            房
         | 
| 23 | 
            +
            原
         | 
| 24 | 
            +
            妇
         | 
| 25 | 
            +
            2
         | 
| 26 | 
            +
            0
         | 
| 27 | 
            +
            8
         | 
| 28 | 
            +
            -
         | 
| 29 | 
            +
            7
         | 
| 30 | 
            +
            其
         | 
| 31 | 
            +
            >
         | 
| 32 | 
            +
            :
         | 
| 33 | 
            +
            ]
         | 
| 34 | 
            +
            ,
         | 
| 35 | 
            +
            ,
         | 
| 36 | 
            +
            骑
         | 
| 37 | 
            +
            刈
         | 
| 38 | 
            +
            全
         | 
| 39 | 
            +
            消
         | 
| 40 | 
            +
            昏
         | 
| 41 | 
            +
            傈
         | 
| 42 | 
            +
            安
         | 
| 43 | 
            +
            久
         | 
| 44 | 
            +
            钟
         | 
| 45 | 
            +
            嗅
         | 
| 46 | 
            +
            不
         | 
| 47 | 
            +
            影
         | 
| 48 | 
            +
            处
         | 
| 49 | 
            +
            驽
         | 
| 50 | 
            +
            蜿
         | 
| 51 | 
            +
            资
         | 
| 52 | 
            +
            关
         | 
| 53 | 
            +
            椤
         | 
| 54 | 
            +
            地
         | 
| 55 | 
            +
            瘸
         | 
| 56 | 
            +
            专
         | 
| 57 | 
            +
            问
         | 
| 58 | 
            +
            忖
         | 
| 59 | 
            +
            票
         | 
| 60 | 
            +
            嫉
         | 
| 61 | 
            +
            炎
         | 
| 62 | 
            +
            韵
         | 
| 63 | 
            +
            要
         | 
| 64 | 
            +
            月
         | 
| 65 | 
            +
            田
         | 
| 66 | 
            +
            节
         | 
| 67 | 
            +
            陂
         | 
| 68 | 
            +
            鄙
         | 
| 69 | 
            +
            捌
         | 
| 70 | 
            +
            备
         | 
| 71 | 
            +
            拳
         | 
| 72 | 
            +
            伺
         | 
| 73 | 
            +
            眼
         | 
| 74 | 
            +
            网
         | 
| 75 | 
            +
            盎
         | 
| 76 | 
            +
            大
         | 
| 77 | 
            +
            傍
         | 
| 78 | 
            +
            心
         | 
| 79 | 
            +
            东
         | 
| 80 | 
            +
            愉
         | 
| 81 | 
            +
            汇
         | 
| 82 | 
            +
            蹿
         | 
| 83 | 
            +
            科
         | 
| 84 | 
            +
            每
         | 
| 85 | 
            +
            业
         | 
| 86 | 
            +
            里
         | 
| 87 | 
            +
            航
         | 
| 88 | 
            +
            晏
         | 
| 89 | 
            +
            字
         | 
| 90 | 
            +
            平
         | 
| 91 | 
            +
            录
         | 
| 92 | 
            +
            先
         | 
| 93 | 
            +
            1
         | 
| 94 | 
            +
            3
         | 
| 95 | 
            +
            彤
         | 
| 96 | 
            +
            鲶
         | 
| 97 | 
            +
            产
         | 
| 98 | 
            +
            稍
         | 
| 99 | 
            +
            督
         | 
| 100 | 
            +
            腴
         | 
| 101 | 
            +
            有
         | 
| 102 | 
            +
            象
         | 
| 103 | 
            +
            岳
         | 
| 104 | 
            +
            注
         | 
| 105 | 
            +
            绍
         | 
| 106 | 
            +
            在
         | 
| 107 | 
            +
            泺
         | 
| 108 | 
            +
            文
         | 
| 109 | 
            +
            定
         | 
| 110 | 
            +
            核
         | 
| 111 | 
            +
            名
         | 
| 112 | 
            +
            水
         | 
| 113 | 
            +
            过
         | 
| 114 | 
            +
            理
         | 
| 115 | 
            +
            让
         | 
| 116 | 
            +
            偷
         | 
| 117 | 
            +
            率
         | 
| 118 | 
            +
            等
         | 
| 119 | 
            +
            这
         | 
| 120 | 
            +
            发
         | 
| 121 | 
            +
            ”
         | 
| 122 | 
            +
            为
         | 
| 123 | 
            +
            含
         | 
| 124 | 
            +
            肥
         | 
| 125 | 
            +
            酉
         | 
| 126 | 
            +
            相
         | 
| 127 | 
            +
            鄱
         | 
| 128 | 
            +
            七
         | 
| 129 | 
            +
            编
         | 
| 130 | 
            +
            猥
         | 
| 131 | 
            +
            锛
         | 
| 132 | 
            +
            日
         | 
| 133 | 
            +
            镀
         | 
| 134 | 
            +
            蒂
         | 
| 135 | 
            +
            掰
         | 
| 136 | 
            +
            倒
         | 
| 137 | 
            +
            辆
         | 
| 138 | 
            +
            栾
         | 
| 139 | 
            +
            栗
         | 
| 140 | 
            +
            综
         | 
| 141 | 
            +
            涩
         | 
| 142 | 
            +
            州
         | 
| 143 | 
            +
            雌
         | 
| 144 | 
            +
            滑
         | 
| 145 | 
            +
            馀
         | 
| 146 | 
            +
            了
         | 
| 147 | 
            +
            机
         | 
| 148 | 
            +
            块
         | 
| 149 | 
            +
            司
         | 
| 150 | 
            +
            宰
         | 
| 151 | 
            +
            甙
         | 
| 152 | 
            +
            兴
         | 
| 153 | 
            +
            矽
         | 
| 154 | 
            +
            抚
         | 
| 155 | 
            +
            保
         | 
| 156 | 
            +
            用
         | 
| 157 | 
            +
            沧
         | 
| 158 | 
            +
            秩
         | 
| 159 | 
            +
            如
         | 
| 160 | 
            +
            收
         | 
| 161 | 
            +
            息
         | 
| 162 | 
            +
            滥
         | 
| 163 | 
            +
            页
         | 
| 164 | 
            +
            疑
         | 
| 165 | 
            +
            埠
         | 
| 166 | 
            +
            !
         | 
| 167 | 
            +
            !
         | 
| 168 | 
            +
            姥
         | 
| 169 | 
            +
            异
         | 
| 170 | 
            +
            橹
         | 
| 171 | 
            +
            钇
         | 
| 172 | 
            +
            向
         | 
| 173 | 
            +
            下
         | 
| 174 | 
            +
            跄
         | 
| 175 | 
            +
            的
         | 
| 176 | 
            +
            椴
         | 
| 177 | 
            +
            沫
         | 
| 178 | 
            +
            国
         | 
| 179 | 
            +
            绥
         | 
| 180 | 
            +
            獠
         | 
| 181 | 
            +
            报
         | 
| 182 | 
            +
            开
         | 
| 183 | 
            +
            民
         | 
| 184 | 
            +
            蜇
         | 
| 185 | 
            +
            何
         | 
| 186 | 
            +
            分
         | 
| 187 | 
            +
            凇
         | 
| 188 | 
            +
            长
         | 
| 189 | 
            +
            讥
         | 
| 190 | 
            +
            藏
         | 
| 191 | 
            +
            掏
         | 
| 192 | 
            +
            施
         | 
| 193 | 
            +
            羽
         | 
| 194 | 
            +
            中
         | 
| 195 | 
            +
            讲
         | 
| 196 | 
            +
            派
         | 
| 197 | 
            +
            嘟
         | 
| 198 | 
            +
            人
         | 
| 199 | 
            +
            提
         | 
| 200 | 
            +
            浼
         | 
| 201 | 
            +
            间
         | 
| 202 | 
            +
            世
         | 
| 203 | 
            +
            而
         | 
| 204 | 
            +
            古
         | 
| 205 | 
            +
            多
         | 
| 206 | 
            +
            倪
         | 
| 207 | 
            +
            唇
         | 
| 208 | 
            +
            饯
         | 
| 209 | 
            +
            控
         | 
| 210 | 
            +
            庚
         | 
| 211 | 
            +
            首
         | 
| 212 | 
            +
            赛
         | 
| 213 | 
            +
            蜓
         | 
| 214 | 
            +
            味
         | 
| 215 | 
            +
            断
         | 
| 216 | 
            +
            制
         | 
| 217 | 
            +
            觉
         | 
| 218 | 
            +
            技
         | 
| 219 | 
            +
            替
         | 
| 220 | 
            +
            艰
         | 
| 221 | 
            +
            溢
         | 
| 222 | 
            +
            潮
         | 
| 223 | 
            +
            夕
         | 
| 224 | 
            +
            钺
         | 
| 225 | 
            +
            外
         | 
| 226 | 
            +
            摘
         | 
| 227 | 
            +
            枋
         | 
| 228 | 
            +
            动
         | 
| 229 | 
            +
            双
         | 
| 230 | 
            +
            单
         | 
| 231 | 
            +
            啮
         | 
| 232 | 
            +
            户
         | 
| 233 | 
            +
            枇
         | 
| 234 | 
            +
            确
         | 
| 235 | 
            +
            锦
         | 
| 236 | 
            +
            曜
         | 
| 237 | 
            +
            杜
         | 
| 238 | 
            +
            或
         | 
| 239 | 
            +
            能
         | 
| 240 | 
            +
            效
         | 
| 241 | 
            +
            霜
         | 
| 242 | 
            +
            盒
         | 
| 243 | 
            +
            然
         | 
| 244 | 
            +
            侗
         | 
| 245 | 
            +
            电
         | 
| 246 | 
            +
            晁
         | 
| 247 | 
            +
            放
         | 
| 248 | 
            +
            步
         | 
| 249 | 
            +
            鹃
         | 
| 250 | 
            +
            新
         | 
| 251 | 
            +
            杖
         | 
| 252 | 
            +
            蜂
         | 
| 253 | 
            +
            吒
         | 
| 254 | 
            +
            濂
         | 
| 255 | 
            +
            瞬
         | 
| 256 | 
            +
            评
         | 
| 257 | 
            +
            总
         | 
| 258 | 
            +
            隍
         | 
| 259 | 
            +
            对
         | 
| 260 | 
            +
            独
         | 
| 261 | 
            +
            合
         | 
| 262 | 
            +
            也
         | 
| 263 | 
            +
            是
         | 
| 264 | 
            +
            府
         | 
| 265 | 
            +
            青
         | 
| 266 | 
            +
            天
         | 
| 267 | 
            +
            诲
         | 
| 268 | 
            +
            墙
         | 
| 269 | 
            +
            组
         | 
| 270 | 
            +
            滴
         | 
| 271 | 
            +
            级
         | 
| 272 | 
            +
            邀
         | 
| 273 | 
            +
            帘
         | 
| 274 | 
            +
            示
         | 
| 275 | 
            +
            已
         | 
| 276 | 
            +
            时
         | 
| 277 | 
            +
            骸
         | 
| 278 | 
            +
            仄
         | 
| 279 | 
            +
            泅
         | 
| 280 | 
            +
            和
         | 
| 281 | 
            +
            遨
         | 
| 282 | 
            +
            店
         | 
| 283 | 
            +
            雇
         | 
| 284 | 
            +
            疫
         | 
| 285 | 
            +
            持
         | 
| 286 | 
            +
            巍
         | 
| 287 | 
            +
            踮
         | 
| 288 | 
            +
            境
         | 
| 289 | 
            +
            只
         | 
| 290 | 
            +
            亨
         | 
| 291 | 
            +
            目
         | 
| 292 | 
            +
            鉴
         | 
| 293 | 
            +
            崤
         | 
| 294 | 
            +
            闲
         | 
| 295 | 
            +
            体
         | 
| 296 | 
            +
            泄
         | 
| 297 | 
            +
            杂
         | 
| 298 | 
            +
            作
         | 
| 299 | 
            +
            般
         | 
| 300 | 
            +
            轰
         | 
| 301 | 
            +
            化
         | 
| 302 | 
            +
            解
         | 
| 303 | 
            +
            迂
         | 
| 304 | 
            +
            诿
         | 
| 305 | 
            +
            蛭
         | 
| 306 | 
            +
            璀
         | 
| 307 | 
            +
            腾
         | 
| 308 | 
            +
            告
         | 
| 309 | 
            +
            版
         | 
| 310 | 
            +
            服
         | 
| 311 | 
            +
            省
         | 
| 312 | 
            +
            师
         | 
| 313 | 
            +
            小
         | 
| 314 | 
            +
            规
         | 
| 315 | 
            +
            程
         | 
| 316 | 
            +
            线
         | 
| 317 | 
            +
            海
         | 
| 318 | 
            +
            办
         | 
| 319 | 
            +
            引
         | 
| 320 | 
            +
            二
         | 
| 321 | 
            +
            桧
         | 
| 322 | 
            +
            牌
         | 
| 323 | 
            +
            砺
         | 
| 324 | 
            +
            洄
         | 
| 325 | 
            +
            裴
         | 
| 326 | 
            +
            修
         | 
| 327 | 
            +
            图
         | 
| 328 | 
            +
            痫
         | 
| 329 | 
            +
            胡
         | 
| 330 | 
            +
            许
         | 
| 331 | 
            +
            犊
         | 
| 332 | 
            +
            事
         | 
| 333 | 
            +
            郛
         | 
| 334 | 
            +
            基
         | 
| 335 | 
            +
            柴
         | 
| 336 | 
            +
            呼
         | 
| 337 | 
            +
            食
         | 
| 338 | 
            +
            研
         | 
| 339 | 
            +
            奶
         | 
| 340 | 
            +
            律
         | 
| 341 | 
            +
            蛋
         | 
| 342 | 
            +
            因
         | 
| 343 | 
            +
            葆
         | 
| 344 | 
            +
            察
         | 
| 345 | 
            +
            戏
         | 
| 346 | 
            +
            褒
         | 
| 347 | 
            +
            戒
         | 
| 348 | 
            +
            再
         | 
| 349 | 
            +
            李
         | 
| 350 | 
            +
            骁
         | 
| 351 | 
            +
            工
         | 
| 352 | 
            +
            貂
         | 
| 353 | 
            +
            油
         | 
| 354 | 
            +
            鹅
         | 
| 355 | 
            +
            章
         | 
| 356 | 
            +
            啄
         | 
| 357 | 
            +
            休
         | 
| 358 | 
            +
            场
         | 
| 359 | 
            +
            给
         | 
| 360 | 
            +
            睡
         | 
| 361 | 
            +
            纷
         | 
| 362 | 
            +
            豆
         | 
| 363 | 
            +
            器
         | 
| 364 | 
            +
            捎
         | 
| 365 | 
            +
            说
         | 
| 366 | 
            +
            敏
         | 
| 367 | 
            +
            学
         | 
| 368 | 
            +
            会
         | 
| 369 | 
            +
            浒
         | 
| 370 | 
            +
            设
         | 
| 371 | 
            +
            诊
         | 
| 372 | 
            +
            格
         | 
| 373 | 
            +
            廓
         | 
| 374 | 
            +
            查
         | 
| 375 | 
            +
            来
         | 
| 376 | 
            +
            霓
         | 
| 377 | 
            +
            室
         | 
| 378 | 
            +
            溆
         | 
| 379 | 
            +
            ¢
         | 
| 380 | 
            +
            诡
         | 
| 381 | 
            +
            寥
         | 
| 382 | 
            +
            焕
         | 
| 383 | 
            +
            舜
         | 
| 384 | 
            +
            柒
         | 
| 385 | 
            +
            狐
         | 
| 386 | 
            +
            回
         | 
| 387 | 
            +
            戟
         | 
| 388 | 
            +
            砾
         | 
| 389 | 
            +
            厄
         | 
| 390 | 
            +
            实
         | 
| 391 | 
            +
            翩
         | 
| 392 | 
            +
            尿
         | 
| 393 | 
            +
            五
         | 
| 394 | 
            +
            入
         | 
| 395 | 
            +
            径
         | 
| 396 | 
            +
            惭
         | 
| 397 | 
            +
            喹
         | 
| 398 | 
            +
            股
         | 
| 399 | 
            +
            宇
         | 
| 400 | 
            +
            篝
         | 
| 401 | 
            +
            |
         | 
| 402 | 
            +
            ;
         | 
| 403 | 
            +
            美
         | 
| 404 | 
            +
            期
         | 
| 405 | 
            +
            云
         | 
| 406 | 
            +
            九
         | 
| 407 | 
            +
            祺
         | 
| 408 | 
            +
            扮
         | 
| 409 | 
            +
            靠
         | 
| 410 | 
            +
            锝
         | 
| 411 | 
            +
            槌
         | 
| 412 | 
            +
            系
         | 
| 413 | 
            +
            企
         | 
| 414 | 
            +
            酰
         | 
| 415 | 
            +
            阊
         | 
| 416 | 
            +
            暂
         | 
| 417 | 
            +
            蚕
         | 
| 418 | 
            +
            忻
         | 
| 419 | 
            +
            豁
         | 
| 420 | 
            +
            本
         | 
| 421 | 
            +
            羹
         | 
| 422 | 
            +
            执
         | 
| 423 | 
            +
            条
         | 
| 424 | 
            +
            钦
         | 
| 425 | 
            +
            H
         | 
| 426 | 
            +
            獒
         | 
| 427 | 
            +
            限
         | 
| 428 | 
            +
            进
         | 
| 429 | 
            +
            季
         | 
| 430 | 
            +
            楦
         | 
| 431 | 
            +
            于
         | 
| 432 | 
            +
            芘
         | 
| 433 | 
            +
            玖
         | 
| 434 | 
            +
            铋
         | 
| 435 | 
            +
            茯
         | 
| 436 | 
            +
            未
         | 
| 437 | 
            +
            答
         | 
| 438 | 
            +
            粘
         | 
| 439 | 
            +
            括
         | 
| 440 | 
            +
            样
         | 
| 441 | 
            +
            精
         | 
| 442 | 
            +
            欠
         | 
| 443 | 
            +
            矢
         | 
| 444 | 
            +
            甥
         | 
| 445 | 
            +
            帷
         | 
| 446 | 
            +
            嵩
         | 
| 447 | 
            +
            扣
         | 
| 448 | 
            +
            令
         | 
| 449 | 
            +
            仔
         | 
| 450 | 
            +
            风
         | 
| 451 | 
            +
            皈
         | 
| 452 | 
            +
            行
         | 
| 453 | 
            +
            支
         | 
| 454 | 
            +
            部
         | 
| 455 | 
            +
            蓉
         | 
| 456 | 
            +
            刮
         | 
| 457 | 
            +
            站
         | 
| 458 | 
            +
            蜡
         | 
| 459 | 
            +
            救
         | 
| 460 | 
            +
            钊
         | 
| 461 | 
            +
            汗
         | 
| 462 | 
            +
            松
         | 
| 463 | 
            +
            嫌
         | 
| 464 | 
            +
            成
         | 
| 465 | 
            +
            可
         | 
| 466 | 
            +
            .
         | 
| 467 | 
            +
            鹤
         | 
| 468 | 
            +
            院
         | 
| 469 | 
            +
            从
         | 
| 470 | 
            +
            交
         | 
| 471 | 
            +
            政
         | 
| 472 | 
            +
            怕
         | 
| 473 | 
            +
            活
         | 
| 474 | 
            +
            调
         | 
| 475 | 
            +
            球
         | 
| 476 | 
            +
            局
         | 
| 477 | 
            +
            验
         | 
| 478 | 
            +
            髌
         | 
| 479 | 
            +
            第
         | 
| 480 | 
            +
            韫
         | 
| 481 | 
            +
            谗
         | 
| 482 | 
            +
            串
         | 
| 483 | 
            +
            到
         | 
| 484 | 
            +
            圆
         | 
| 485 | 
            +
            年
         | 
| 486 | 
            +
            米
         | 
| 487 | 
            +
            /
         | 
| 488 | 
            +
            *
         | 
| 489 | 
            +
            友
         | 
| 490 | 
            +
            忿
         | 
| 491 | 
            +
            检
         | 
| 492 | 
            +
            区
         | 
| 493 | 
            +
            看
         | 
| 494 | 
            +
            自
         | 
| 495 | 
            +
            敢
         | 
| 496 | 
            +
            刃
         | 
| 497 | 
            +
            个
         | 
| 498 | 
            +
            兹
         | 
| 499 | 
            +
            弄
         | 
| 500 | 
            +
            流
         | 
| 501 | 
            +
            留
         | 
| 502 | 
            +
            同
         | 
| 503 | 
            +
            没
         | 
| 504 | 
            +
            齿
         | 
| 505 | 
            +
            星
         | 
| 506 | 
            +
            聆
         | 
| 507 | 
            +
            轼
         | 
| 508 | 
            +
            湖
         | 
| 509 | 
            +
            什
         | 
| 510 | 
            +
            三
         | 
| 511 | 
            +
            建
         | 
| 512 | 
            +
            蛔
         | 
| 513 | 
            +
            儿
         | 
| 514 | 
            +
            椋
         | 
| 515 | 
            +
            汕
         | 
| 516 | 
            +
            震
         | 
| 517 | 
            +
            颧
         | 
| 518 | 
            +
            鲤
         | 
| 519 | 
            +
            跟
         | 
| 520 | 
            +
            力
         | 
| 521 | 
            +
            情
         | 
| 522 | 
            +
            璺
         | 
| 523 | 
            +
            铨
         | 
| 524 | 
            +
            陪
         | 
| 525 | 
            +
            务
         | 
| 526 | 
            +
            指
         | 
| 527 | 
            +
            族
         | 
| 528 | 
            +
            训
         | 
| 529 | 
            +
            滦
         | 
| 530 | 
            +
            鄣
         | 
| 531 | 
            +
            濮
         | 
| 532 | 
            +
            扒
         | 
| 533 | 
            +
            商
         | 
| 534 | 
            +
            箱
         | 
| 535 | 
            +
            十
         | 
| 536 | 
            +
            召
         | 
| 537 | 
            +
            慷
         | 
| 538 | 
            +
            辗
         | 
| 539 | 
            +
            所
         | 
| 540 | 
            +
            莞
         | 
| 541 | 
            +
            管
         | 
| 542 | 
            +
            护
         | 
| 543 | 
            +
            臭
         | 
| 544 | 
            +
            横
         | 
| 545 | 
            +
            硒
         | 
| 546 | 
            +
            嗓
         | 
| 547 | 
            +
            接
         | 
| 548 | 
            +
            侦
         | 
| 549 | 
            +
            六
         | 
| 550 | 
            +
            露
         | 
| 551 | 
            +
            党
         | 
| 552 | 
            +
            馋
         | 
| 553 | 
            +
            驾
         | 
| 554 | 
            +
            剖
         | 
| 555 | 
            +
            高
         | 
| 556 | 
            +
            侬
         | 
| 557 | 
            +
            妪
         | 
| 558 | 
            +
            幂
         | 
| 559 | 
            +
            猗
         | 
| 560 | 
            +
            绺
         | 
| 561 | 
            +
            骐
         | 
| 562 | 
            +
            央
         | 
| 563 | 
            +
            酐
         | 
| 564 | 
            +
            孝
         | 
| 565 | 
            +
            筝
         | 
| 566 | 
            +
            课
         | 
| 567 | 
            +
            徇
         | 
| 568 | 
            +
            缰
         | 
| 569 | 
            +
            门
         | 
| 570 | 
            +
            男
         | 
| 571 | 
            +
            西
         | 
| 572 | 
            +
            项
         | 
| 573 | 
            +
            句
         | 
| 574 | 
            +
            谙
         | 
| 575 | 
            +
            瞒
         | 
| 576 | 
            +
            秃
         | 
| 577 | 
            +
            篇
         | 
| 578 | 
            +
            教
         | 
| 579 | 
            +
            碲
         | 
| 580 | 
            +
            罚
         | 
| 581 | 
            +
            声
         | 
| 582 | 
            +
            呐
         | 
| 583 | 
            +
            景
         | 
| 584 | 
            +
            前
         | 
| 585 | 
            +
            富
         | 
| 586 | 
            +
            嘴
         | 
| 587 | 
            +
            鳌
         | 
| 588 | 
            +
            稀
         | 
| 589 | 
            +
            免
         | 
| 590 | 
            +
            朋
         | 
| 591 | 
            +
            啬
         | 
| 592 | 
            +
            睐
         | 
| 593 | 
            +
            去
         | 
| 594 | 
            +
            赈
         | 
| 595 | 
            +
            鱼
         | 
| 596 | 
            +
            住
         | 
| 597 | 
            +
            肩
         | 
| 598 | 
            +
            愕
         | 
| 599 | 
            +
            速
         | 
| 600 | 
            +
            旁
         | 
| 601 | 
            +
            波
         | 
| 602 | 
            +
            厅
         | 
| 603 | 
            +
            健
         | 
| 604 | 
            +
            茼
         | 
| 605 | 
            +
            厥
         | 
| 606 | 
            +
            鲟
         | 
| 607 | 
            +
            谅
         | 
| 608 | 
            +
            投
         | 
| 609 | 
            +
            攸
         | 
| 610 | 
            +
            炔
         | 
| 611 | 
            +
            数
         | 
| 612 | 
            +
            方
         | 
| 613 | 
            +
            击
         | 
| 614 | 
            +
            呋
         | 
| 615 | 
            +
            谈
         | 
| 616 | 
            +
            绩
         | 
| 617 | 
            +
            别
         | 
| 618 | 
            +
            愫
         | 
| 619 | 
            +
            僚
         | 
| 620 | 
            +
            躬
         | 
| 621 | 
            +
            鹧
         | 
| 622 | 
            +
            胪
         | 
| 623 | 
            +
            炳
         | 
| 624 | 
            +
            招
         | 
| 625 | 
            +
            喇
         | 
| 626 | 
            +
            膨
         | 
| 627 | 
            +
            泵
         | 
| 628 | 
            +
            蹦
         | 
| 629 | 
            +
            毛
         | 
| 630 | 
            +
            结
         | 
| 631 | 
            +
            5
         | 
| 632 | 
            +
            4
         | 
| 633 | 
            +
            谱
         | 
| 634 | 
            +
            识
         | 
| 635 | 
            +
            陕
         | 
| 636 | 
            +
            粽
         | 
| 637 | 
            +
            婚
         | 
| 638 | 
            +
            拟
         | 
| 639 | 
            +
            构
         | 
| 640 | 
            +
            且
         | 
| 641 | 
            +
            搜
         | 
| 642 | 
            +
            任
         | 
| 643 | 
            +
            潘
         | 
| 644 | 
            +
            比
         | 
| 645 | 
            +
            郢
         | 
| 646 | 
            +
            妨
         | 
| 647 | 
            +
            醪
         | 
| 648 | 
            +
            陀
         | 
| 649 | 
            +
            桔
         | 
| 650 | 
            +
            碘
         | 
| 651 | 
            +
            扎
         | 
| 652 | 
            +
            选
         | 
| 653 | 
            +
            哈
         | 
| 654 | 
            +
            骷
         | 
| 655 | 
            +
            楷
         | 
| 656 | 
            +
            亿
         | 
| 657 | 
            +
            明
         | 
| 658 | 
            +
            缆
         | 
| 659 | 
            +
            脯
         | 
| 660 | 
            +
            监
         | 
| 661 | 
            +
            睫
         | 
| 662 | 
            +
            逻
         | 
| 663 | 
            +
            婵
         | 
| 664 | 
            +
            共
         | 
| 665 | 
            +
            赴
         | 
| 666 | 
            +
            淝
         | 
| 667 | 
            +
            凡
         | 
| 668 | 
            +
            惦
         | 
| 669 | 
            +
            及
         | 
| 670 | 
            +
            达
         | 
| 671 | 
            +
            揖
         | 
| 672 | 
            +
            谩
         | 
| 673 | 
            +
            澹
         | 
| 674 | 
            +
            减
         | 
| 675 | 
            +
            焰
         | 
| 676 | 
            +
            蛹
         | 
| 677 | 
            +
            番
         | 
| 678 | 
            +
            祁
         | 
| 679 | 
            +
            柏
         | 
| 680 | 
            +
            员
         | 
| 681 | 
            +
            禄
         | 
| 682 | 
            +
            怡
         | 
| 683 | 
            +
            峤
         | 
| 684 | 
            +
            龙
         | 
| 685 | 
            +
            白
         | 
| 686 | 
            +
            叽
         | 
| 687 | 
            +
            生
         | 
| 688 | 
            +
            闯
         | 
| 689 | 
            +
            起
         | 
| 690 | 
            +
            细
         | 
| 691 | 
            +
            装
         | 
| 692 | 
            +
            谕
         | 
| 693 | 
            +
            竟
         | 
| 694 | 
            +
            聚
         | 
| 695 | 
            +
            钙
         | 
| 696 | 
            +
            上
         | 
| 697 | 
            +
            导
         | 
| 698 | 
            +
            渊
         | 
| 699 | 
            +
            按
         | 
| 700 | 
            +
            艾
         | 
| 701 | 
            +
            辘
         | 
| 702 | 
            +
            挡
         | 
| 703 | 
            +
            耒
         | 
| 704 | 
            +
            盹
         | 
| 705 | 
            +
            饪
         | 
| 706 | 
            +
            臀
         | 
| 707 | 
            +
            记
         | 
| 708 | 
            +
            邮
         | 
| 709 | 
            +
            蕙
         | 
| 710 | 
            +
            受
         | 
| 711 | 
            +
            各
         | 
| 712 | 
            +
            医
         | 
| 713 | 
            +
            搂
         | 
| 714 | 
            +
            普
         | 
| 715 | 
            +
            滇
         | 
| 716 | 
            +
            朗
         | 
| 717 | 
            +
            茸
         | 
| 718 | 
            +
            带
         | 
| 719 | 
            +
            翻
         | 
| 720 | 
            +
            酚
         | 
| 721 | 
            +
            (
         | 
| 722 | 
            +
            光
         | 
| 723 | 
            +
            堤
         | 
| 724 | 
            +
            墟
         | 
| 725 | 
            +
            蔷
         | 
| 726 | 
            +
            万
         | 
| 727 | 
            +
            幻
         | 
| 728 | 
            +
            〓
         | 
| 729 | 
            +
            瑙
         | 
| 730 | 
            +
            辈
         | 
| 731 | 
            +
            昧
         | 
| 732 | 
            +
            盏
         | 
| 733 | 
            +
            亘
         | 
| 734 | 
            +
            蛀
         | 
| 735 | 
            +
            吉
         | 
| 736 | 
            +
            铰
         | 
| 737 | 
            +
            请
         | 
| 738 | 
            +
            子
         | 
| 739 | 
            +
            假
         | 
| 740 | 
            +
            闻
         | 
| 741 | 
            +
            税
         | 
| 742 | 
            +
            井
         | 
| 743 | 
            +
            诩
         | 
| 744 | 
            +
            哨
         | 
| 745 | 
            +
            嫂
         | 
| 746 | 
            +
            好
         | 
| 747 | 
            +
            面
         | 
| 748 | 
            +
            琐
         | 
| 749 | 
            +
            校
         | 
| 750 | 
            +
            馊
         | 
| 751 | 
            +
            鬣
         | 
| 752 | 
            +
            缂
         | 
| 753 | 
            +
            营
         | 
| 754 | 
            +
            访
         | 
| 755 | 
            +
            炖
         | 
| 756 | 
            +
            占
         | 
| 757 | 
            +
            农
         | 
| 758 | 
            +
            缀
         | 
| 759 | 
            +
            否
         | 
| 760 | 
            +
            经
         | 
| 761 | 
            +
            钚
         | 
| 762 | 
            +
            棵
         | 
| 763 | 
            +
            趟
         | 
| 764 | 
            +
            张
         | 
| 765 | 
            +
            亟
         | 
| 766 | 
            +
            吏
         | 
| 767 | 
            +
            茶
         | 
| 768 | 
            +
            谨
         | 
| 769 | 
            +
            捻
         | 
| 770 | 
            +
            论
         | 
| 771 | 
            +
            迸
         | 
| 772 | 
            +
            堂
         | 
| 773 | 
            +
            玉
         | 
| 774 | 
            +
            信
         | 
| 775 | 
            +
            吧
         | 
| 776 | 
            +
            瞠
         | 
| 777 | 
            +
            乡
         | 
| 778 | 
            +
            姬
         | 
| 779 | 
            +
            寺
         | 
| 780 | 
            +
            咬
         | 
| 781 | 
            +
            溏
         | 
| 782 | 
            +
            苄
         | 
| 783 | 
            +
            皿
         | 
| 784 | 
            +
            意
         | 
| 785 | 
            +
            赉
         | 
| 786 | 
            +
            宝
         | 
| 787 | 
            +
            尔
         | 
| 788 | 
            +
            钰
         | 
| 789 | 
            +
            艺
         | 
| 790 | 
            +
            特
         | 
| 791 | 
            +
            唳
         | 
| 792 | 
            +
            踉
         | 
| 793 | 
            +
            都
         | 
| 794 | 
            +
            荣
         | 
| 795 | 
            +
            倚
         | 
| 796 | 
            +
            登
         | 
| 797 | 
            +
            荐
         | 
| 798 | 
            +
            丧
         | 
| 799 | 
            +
            奇
         | 
| 800 | 
            +
            涵
         | 
| 801 | 
            +
            批
         | 
| 802 | 
            +
            炭
         | 
| 803 | 
            +
            近
         | 
| 804 | 
            +
            符
         | 
| 805 | 
            +
            傩
         | 
| 806 | 
            +
            感
         | 
| 807 | 
            +
            道
         | 
| 808 | 
            +
            着
         | 
| 809 | 
            +
            菊
         | 
| 810 | 
            +
            虹
         | 
| 811 | 
            +
            仲
         | 
| 812 | 
            +
            众
         | 
| 813 | 
            +
            懈
         | 
| 814 | 
            +
            濯
         | 
| 815 | 
            +
            颞
         | 
| 816 | 
            +
            眺
         | 
| 817 | 
            +
            南
         | 
| 818 | 
            +
            释
         | 
| 819 | 
            +
            北
         | 
| 820 | 
            +
            缝
         | 
| 821 | 
            +
            标
         | 
| 822 | 
            +
            既
         | 
| 823 | 
            +
            茗
         | 
| 824 | 
            +
            整
         | 
| 825 | 
            +
            撼
         | 
| 826 | 
            +
            迤
         | 
| 827 | 
            +
            贲
         | 
| 828 | 
            +
            挎
         | 
| 829 | 
            +
            耱
         | 
| 830 | 
            +
            拒
         | 
| 831 | 
            +
            某
         | 
| 832 | 
            +
            妍
         | 
| 833 | 
            +
            卫
         | 
| 834 | 
            +
            哇
         | 
| 835 | 
            +
            英
         | 
| 836 | 
            +
            矶
         | 
| 837 | 
            +
            藩
         | 
| 838 | 
            +
            治
         | 
| 839 | 
            +
            他
         | 
| 840 | 
            +
            元
         | 
| 841 | 
            +
            领
         | 
| 842 | 
            +
            膜
         | 
| 843 | 
            +
            遮
         | 
| 844 | 
            +
            穗
         | 
| 845 | 
            +
            蛾
         | 
| 846 | 
            +
            飞
         | 
| 847 | 
            +
            荒
         | 
| 848 | 
            +
            棺
         | 
| 849 | 
            +
            劫
         | 
| 850 | 
            +
            么
         | 
| 851 | 
            +
            市
         | 
| 852 | 
            +
            火
         | 
| 853 | 
            +
            温
         | 
| 854 | 
            +
            拈
         | 
| 855 | 
            +
            棚
         | 
| 856 | 
            +
            洼
         | 
| 857 | 
            +
            转
         | 
| 858 | 
            +
            ��
         | 
| 859 | 
            +
            奕
         | 
| 860 | 
            +
            卸
         | 
| 861 | 
            +
            迪
         | 
| 862 | 
            +
            伸
         | 
| 863 | 
            +
            泳
         | 
| 864 | 
            +
            斗
         | 
| 865 | 
            +
            邡
         | 
| 866 | 
            +
            侄
         | 
| 867 | 
            +
            涨
         | 
| 868 | 
            +
            屯
         | 
| 869 | 
            +
            萋
         | 
| 870 | 
            +
            胭
         | 
| 871 | 
            +
            氡
         | 
| 872 | 
            +
            崮
         | 
| 873 | 
            +
            枞
         | 
| 874 | 
            +
            惧
         | 
| 875 | 
            +
            冒
         | 
| 876 | 
            +
            彩
         | 
| 877 | 
            +
            斜
         | 
| 878 | 
            +
            手
         | 
| 879 | 
            +
            豚
         | 
| 880 | 
            +
            随
         | 
| 881 | 
            +
            旭
         | 
| 882 | 
            +
            淑
         | 
| 883 | 
            +
            妞
         | 
| 884 | 
            +
            形
         | 
| 885 | 
            +
            菌
         | 
| 886 | 
            +
            吲
         | 
| 887 | 
            +
            沱
         | 
| 888 | 
            +
            争
         | 
| 889 | 
            +
            驯
         | 
| 890 | 
            +
            歹
         | 
| 891 | 
            +
            挟
         | 
| 892 | 
            +
            兆
         | 
| 893 | 
            +
            柱
         | 
| 894 | 
            +
            传
         | 
| 895 | 
            +
            至
         | 
| 896 | 
            +
            包
         | 
| 897 | 
            +
            内
         | 
| 898 | 
            +
            响
         | 
| 899 | 
            +
            临
         | 
| 900 | 
            +
            红
         | 
| 901 | 
            +
            功
         | 
| 902 | 
            +
            弩
         | 
| 903 | 
            +
            衡
         | 
| 904 | 
            +
            寂
         | 
| 905 | 
            +
            禁
         | 
| 906 | 
            +
            老
         | 
| 907 | 
            +
            棍
         | 
| 908 | 
            +
            耆
         | 
| 909 | 
            +
            渍
         | 
| 910 | 
            +
            织
         | 
| 911 | 
            +
            害
         | 
| 912 | 
            +
            氵
         | 
| 913 | 
            +
            渑
         | 
| 914 | 
            +
            布
         | 
| 915 | 
            +
            载
         | 
| 916 | 
            +
            靥
         | 
| 917 | 
            +
            嗬
         | 
| 918 | 
            +
            虽
         | 
| 919 | 
            +
            苹
         | 
| 920 | 
            +
            咨
         | 
| 921 | 
            +
            娄
         | 
| 922 | 
            +
            库
         | 
| 923 | 
            +
            雉
         | 
| 924 | 
            +
            榜
         | 
| 925 | 
            +
            帜
         | 
| 926 | 
            +
            嘲
         | 
| 927 | 
            +
            套
         | 
| 928 | 
            +
            瑚
         | 
| 929 | 
            +
            亲
         | 
| 930 | 
            +
            簸
         | 
| 931 | 
            +
            欧
         | 
| 932 | 
            +
            边
         | 
| 933 | 
            +
            6
         | 
| 934 | 
            +
            腿
         | 
| 935 | 
            +
            旮
         | 
| 936 | 
            +
            抛
         | 
| 937 | 
            +
            吹
         | 
| 938 | 
            +
            瞳
         | 
| 939 | 
            +
            得
         | 
| 940 | 
            +
            镓
         | 
| 941 | 
            +
            梗
         | 
| 942 | 
            +
            厨
         | 
| 943 | 
            +
            继
         | 
| 944 | 
            +
            漾
         | 
| 945 | 
            +
            愣
         | 
| 946 | 
            +
            憨
         | 
| 947 | 
            +
            士
         | 
| 948 | 
            +
            策
         | 
| 949 | 
            +
            窑
         | 
| 950 | 
            +
            抑
         | 
| 951 | 
            +
            躯
         | 
| 952 | 
            +
            襟
         | 
| 953 | 
            +
            脏
         | 
| 954 | 
            +
            参
         | 
| 955 | 
            +
            贸
         | 
| 956 | 
            +
            言
         | 
| 957 | 
            +
            干
         | 
| 958 | 
            +
            绸
         | 
| 959 | 
            +
            鳄
         | 
| 960 | 
            +
            穷
         | 
| 961 | 
            +
            藜
         | 
| 962 | 
            +
            音
         | 
| 963 | 
            +
            折
         | 
| 964 | 
            +
            详
         | 
| 965 | 
            +
            )
         | 
| 966 | 
            +
            举
         | 
| 967 | 
            +
            悍
         | 
| 968 | 
            +
            甸
         | 
| 969 | 
            +
            癌
         | 
| 970 | 
            +
            黎
         | 
| 971 | 
            +
            谴
         | 
| 972 | 
            +
            死
         | 
| 973 | 
            +
            罩
         | 
| 974 | 
            +
            迁
         | 
| 975 | 
            +
            寒
         | 
| 976 | 
            +
            驷
         | 
| 977 | 
            +
            袖
         | 
| 978 | 
            +
            媒
         | 
| 979 | 
            +
            蒋
         | 
| 980 | 
            +
            掘
         | 
| 981 | 
            +
            模
         | 
| 982 | 
            +
            纠
         | 
| 983 | 
            +
            恣
         | 
| 984 | 
            +
            观
         | 
| 985 | 
            +
            祖
         | 
| 986 | 
            +
            蛆
         | 
| 987 | 
            +
            碍
         | 
| 988 | 
            +
            位
         | 
| 989 | 
            +
            稿
         | 
| 990 | 
            +
            主
         | 
| 991 | 
            +
            澧
         | 
| 992 | 
            +
            跌
         | 
| 993 | 
            +
            筏
         | 
| 994 | 
            +
            京
         | 
| 995 | 
            +
            锏
         | 
| 996 | 
            +
            帝
         | 
| 997 | 
            +
            贴
         | 
| 998 | 
            +
            证
         | 
| 999 | 
            +
            糠
         | 
| 1000 | 
            +
            才
         | 
| 1001 | 
            +
            黄
         | 
| 1002 | 
            +
            鲸
         | 
| 1003 | 
            +
            略
         | 
| 1004 | 
            +
            炯
         | 
| 1005 | 
            +
            饱
         | 
| 1006 | 
            +
            四
         | 
| 1007 | 
            +
            出
         | 
| 1008 | 
            +
            园
         | 
| 1009 | 
            +
            犀
         | 
| 1010 | 
            +
            牧
         | 
| 1011 | 
            +
            容
         | 
| 1012 | 
            +
            汉
         | 
| 1013 | 
            +
            杆
         | 
| 1014 | 
            +
            浈
         | 
| 1015 | 
            +
            汰
         | 
| 1016 | 
            +
            瑷
         | 
| 1017 | 
            +
            造
         | 
| 1018 | 
            +
            虫
         | 
| 1019 | 
            +
            瘩
         | 
| 1020 | 
            +
            怪
         | 
| 1021 | 
            +
            驴
         | 
| 1022 | 
            +
            济
         | 
| 1023 | 
            +
            应
         | 
| 1024 | 
            +
            花
         | 
| 1025 | 
            +
            沣
         | 
| 1026 | 
            +
            谔
         | 
| 1027 | 
            +
            夙
         | 
| 1028 | 
            +
            旅
         | 
| 1029 | 
            +
            价
         | 
| 1030 | 
            +
            矿
         | 
| 1031 | 
            +
            以
         | 
| 1032 | 
            +
            考
         | 
| 1033 | 
            +
            s
         | 
| 1034 | 
            +
            u
         | 
| 1035 | 
            +
            呦
         | 
| 1036 | 
            +
            晒
         | 
| 1037 | 
            +
            巡
         | 
| 1038 | 
            +
            茅
         | 
| 1039 | 
            +
            准
         | 
| 1040 | 
            +
            肟
         | 
| 1041 | 
            +
            瓴
         | 
| 1042 | 
            +
            詹
         | 
| 1043 | 
            +
            仟
         | 
| 1044 | 
            +
            褂
         | 
| 1045 | 
            +
            译
         | 
| 1046 | 
            +
            桌
         | 
| 1047 | 
            +
            混
         | 
| 1048 | 
            +
            宁
         | 
| 1049 | 
            +
            怦
         | 
| 1050 | 
            +
            郑
         | 
| 1051 | 
            +
            抿
         | 
| 1052 | 
            +
            些
         | 
| 1053 | 
            +
            余
         | 
| 1054 | 
            +
            鄂
         | 
| 1055 | 
            +
            饴
         | 
| 1056 | 
            +
            攒
         | 
| 1057 | 
            +
            珑
         | 
| 1058 | 
            +
            群
         | 
| 1059 | 
            +
            阖
         | 
| 1060 | 
            +
            岔
         | 
| 1061 | 
            +
            琨
         | 
| 1062 | 
            +
            藓
         | 
| 1063 | 
            +
            预
         | 
| 1064 | 
            +
            环
         | 
| 1065 | 
            +
            洮
         | 
| 1066 | 
            +
            岌
         | 
| 1067 | 
            +
            宀
         | 
| 1068 | 
            +
            杲
         | 
| 1069 | 
            +
            瀵
         | 
| 1070 | 
            +
            最
         | 
| 1071 | 
            +
            常
         | 
| 1072 | 
            +
            囡
         | 
| 1073 | 
            +
            周
         | 
| 1074 | 
            +
            踊
         | 
| 1075 | 
            +
            女
         | 
| 1076 | 
            +
            鼓
         | 
| 1077 | 
            +
            袭
         | 
| 1078 | 
            +
            喉
         | 
| 1079 | 
            +
            简
         | 
| 1080 | 
            +
            范
         | 
| 1081 | 
            +
            薯
         | 
| 1082 | 
            +
            遐
         | 
| 1083 | 
            +
            疏
         | 
| 1084 | 
            +
            粱
         | 
| 1085 | 
            +
            黜
         | 
| 1086 | 
            +
            禧
         | 
| 1087 | 
            +
            法
         | 
| 1088 | 
            +
            箔
         | 
| 1089 | 
            +
            斤
         | 
| 1090 | 
            +
            遥
         | 
| 1091 | 
            +
            汝
         | 
| 1092 | 
            +
            奥
         | 
| 1093 | 
            +
            直
         | 
| 1094 | 
            +
            贞
         | 
| 1095 | 
            +
            撑
         | 
| 1096 | 
            +
            置
         | 
| 1097 | 
            +
            绱
         | 
| 1098 | 
            +
            集
         | 
| 1099 | 
            +
            她
         | 
| 1100 | 
            +
            馅
         | 
| 1101 | 
            +
            逗
         | 
| 1102 | 
            +
            钧
         | 
| 1103 | 
            +
            橱
         | 
| 1104 | 
            +
            魉
         | 
| 1105 | 
            +
            [
         | 
| 1106 | 
            +
            恙
         | 
| 1107 | 
            +
            躁
         | 
| 1108 | 
            +
            唤
         | 
| 1109 | 
            +
            9
         | 
| 1110 | 
            +
            旺
         | 
| 1111 | 
            +
            膘
         | 
| 1112 | 
            +
            待
         | 
| 1113 | 
            +
            脾
         | 
| 1114 | 
            +
            惫
         | 
| 1115 | 
            +
            购
         | 
| 1116 | 
            +
            吗
         | 
| 1117 | 
            +
            依
         | 
| 1118 | 
            +
            盲
         | 
| 1119 | 
            +
            度
         | 
| 1120 | 
            +
            瘿
         | 
| 1121 | 
            +
            蠖
         | 
| 1122 | 
            +
            俾
         | 
| 1123 | 
            +
            之
         | 
| 1124 | 
            +
            镗
         | 
| 1125 | 
            +
            拇
         | 
| 1126 | 
            +
            鲵
         | 
| 1127 | 
            +
            厝
         | 
| 1128 | 
            +
            簧
         | 
| 1129 | 
            +
            续
         | 
| 1130 | 
            +
            款
         | 
| 1131 | 
            +
            展
         | 
| 1132 | 
            +
            啃
         | 
| 1133 | 
            +
            表
         | 
| 1134 | 
            +
            剔
         | 
| 1135 | 
            +
            品
         | 
| 1136 | 
            +
            钻
         | 
| 1137 | 
            +
            腭
         | 
| 1138 | 
            +
            损
         | 
| 1139 | 
            +
            清
         | 
| 1140 | 
            +
            锶
         | 
| 1141 | 
            +
            统
         | 
| 1142 | 
            +
            涌
         | 
| 1143 | 
            +
            寸
         | 
| 1144 | 
            +
            滨
         | 
| 1145 | 
            +
            贪
         | 
| 1146 | 
            +
            链
         | 
| 1147 | 
            +
            吠
         | 
| 1148 | 
            +
            冈
         | 
| 1149 | 
            +
            伎
         | 
| 1150 | 
            +
            迥
         | 
| 1151 | 
            +
            咏
         | 
| 1152 | 
            +
            吁
         | 
| 1153 | 
            +
            览
         | 
| 1154 | 
            +
            防
         | 
| 1155 | 
            +
            迅
         | 
| 1156 | 
            +
            失
         | 
| 1157 | 
            +
            汾
         | 
| 1158 | 
            +
            阔
         | 
| 1159 | 
            +
            逵
         | 
| 1160 | 
            +
            绀
         | 
| 1161 | 
            +
            蔑
         | 
| 1162 | 
            +
            列
         | 
| 1163 | 
            +
            川
         | 
| 1164 | 
            +
            凭
         | 
| 1165 | 
            +
            努
         | 
| 1166 | 
            +
            熨
         | 
| 1167 | 
            +
            揪
         | 
| 1168 | 
            +
            利
         | 
| 1169 | 
            +
            俱
         | 
| 1170 | 
            +
            绉
         | 
| 1171 | 
            +
            抢
         | 
| 1172 | 
            +
            鸨
         | 
| 1173 | 
            +
            我
         | 
| 1174 | 
            +
            即
         | 
| 1175 | 
            +
            责
         | 
| 1176 | 
            +
            膦
         | 
| 1177 | 
            +
            易
         | 
| 1178 | 
            +
            毓
         | 
| 1179 | 
            +
            鹊
         | 
| 1180 | 
            +
            刹
         | 
| 1181 | 
            +
            玷
         | 
| 1182 | 
            +
            岿
         | 
| 1183 | 
            +
            空
         | 
| 1184 | 
            +
            嘞
         | 
| 1185 | 
            +
            绊
         | 
| 1186 | 
            +
            排
         | 
| 1187 | 
            +
            术
         | 
| 1188 | 
            +
            估
         | 
| 1189 | 
            +
            锷
         | 
| 1190 | 
            +
            违
         | 
| 1191 | 
            +
            们
         | 
| 1192 | 
            +
            苟
         | 
| 1193 | 
            +
            铜
         | 
| 1194 | 
            +
            播
         | 
| 1195 | 
            +
            肘
         | 
| 1196 | 
            +
            件
         | 
| 1197 | 
            +
            烫
         | 
| 1198 | 
            +
            审
         | 
| 1199 | 
            +
            鲂
         | 
| 1200 | 
            +
            广
         | 
| 1201 | 
            +
            像
         | 
| 1202 | 
            +
            铌
         | 
| 1203 | 
            +
            惰
         | 
| 1204 | 
            +
            铟
         | 
| 1205 | 
            +
            巳
         | 
| 1206 | 
            +
            胍
         | 
| 1207 | 
            +
            鲍
         | 
| 1208 | 
            +
            康
         | 
| 1209 | 
            +
            憧
         | 
| 1210 | 
            +
            色
         | 
| 1211 | 
            +
            恢
         | 
| 1212 | 
            +
            想
         | 
| 1213 | 
            +
            拷
         | 
| 1214 | 
            +
            尤
         | 
| 1215 | 
            +
            疳
         | 
| 1216 | 
            +
            知
         | 
| 1217 | 
            +
            S
         | 
| 1218 | 
            +
            Y
         | 
| 1219 | 
            +
            F
         | 
| 1220 | 
            +
            D
         | 
| 1221 | 
            +
            A
         | 
| 1222 | 
            +
            峄
         | 
| 1223 | 
            +
            裕
         | 
| 1224 | 
            +
            帮
         | 
| 1225 | 
            +
            握
         | 
| 1226 | 
            +
            搔
         | 
| 1227 | 
            +
            氐
         | 
| 1228 | 
            +
            氘
         | 
| 1229 | 
            +
            难
         | 
| 1230 | 
            +
            墒
         | 
| 1231 | 
            +
            沮
         | 
| 1232 | 
            +
            雨
         | 
| 1233 | 
            +
            叁
         | 
| 1234 | 
            +
            缥
         | 
| 1235 | 
            +
            悴
         | 
| 1236 | 
            +
            藐
         | 
| 1237 | 
            +
            湫
         | 
| 1238 | 
            +
            娟
         | 
| 1239 | 
            +
            苑
         | 
| 1240 | 
            +
            稠
         | 
| 1241 | 
            +
            颛
         | 
| 1242 | 
            +
            簇
         | 
| 1243 | 
            +
            后
         | 
| 1244 | 
            +
            阕
         | 
| 1245 | 
            +
            闭
         | 
| 1246 | 
            +
            蕤
         | 
| 1247 | 
            +
            缚
         | 
| 1248 | 
            +
            怎
         | 
| 1249 | 
            +
            佞
         | 
| 1250 | 
            +
            码
         | 
| 1251 | 
            +
            嘤
         | 
| 1252 | 
            +
            蔡
         | 
| 1253 | 
            +
            痊
         | 
| 1254 | 
            +
            舱
         | 
| 1255 | 
            +
            螯
         | 
| 1256 | 
            +
            帕
         | 
| 1257 | 
            +
            赫
         | 
| 1258 | 
            +
            昵
         | 
| 1259 | 
            +
            升
         | 
| 1260 | 
            +
            烬
         | 
| 1261 | 
            +
            岫
         | 
| 1262 | 
            +
            、
         | 
| 1263 | 
            +
            疵
         | 
| 1264 | 
            +
            蜻
         | 
| 1265 | 
            +
            髁
         | 
| 1266 | 
            +
            蕨
         | 
| 1267 | 
            +
            隶
         | 
| 1268 | 
            +
            烛
         | 
| 1269 | 
            +
            械
         | 
| 1270 | 
            +
            丑
         | 
| 1271 | 
            +
            盂
         | 
| 1272 | 
            +
            梁
         | 
| 1273 | 
            +
            强
         | 
| 1274 | 
            +
            鲛
         | 
| 1275 | 
            +
            由
         | 
| 1276 | 
            +
            拘
         | 
| 1277 | 
            +
            揉
         | 
| 1278 | 
            +
            劭
         | 
| 1279 | 
            +
            龟
         | 
| 1280 | 
            +
            撤
         | 
| 1281 | 
            +
            钩
         | 
| 1282 | 
            +
            呕
         | 
| 1283 | 
            +
            孛
         | 
| 1284 | 
            +
            费
         | 
| 1285 | 
            +
            妻
         | 
| 1286 | 
            +
            漂
         | 
| 1287 | 
            +
            求
         | 
| 1288 | 
            +
            阑
         | 
| 1289 | 
            +
            崖
         | 
| 1290 | 
            +
            秤
         | 
| 1291 | 
            +
            甘
         | 
| 1292 | 
            +
            通
         | 
| 1293 | 
            +
            深
         | 
| 1294 | 
            +
            补
         | 
| 1295 | 
            +
            赃
         | 
| 1296 | 
            +
            坎
         | 
| 1297 | 
            +
            床
         | 
| 1298 | 
            +
            啪
         | 
| 1299 | 
            +
            承
         | 
| 1300 | 
            +
            吼
         | 
| 1301 | 
            +
            量
         | 
| 1302 | 
            +
            暇
         | 
| 1303 | 
            +
            钼
         | 
| 1304 | 
            +
            烨
         | 
| 1305 | 
            +
            阂
         | 
| 1306 | 
            +
            擎
         | 
| 1307 | 
            +
            脱
         | 
| 1308 | 
            +
            逮
         | 
| 1309 | 
            +
            称
         | 
| 1310 | 
            +
            P
         | 
| 1311 | 
            +
            神
         | 
| 1312 | 
            +
            属
         | 
| 1313 | 
            +
            矗
         | 
| 1314 | 
            +
            华
         | 
| 1315 | 
            +
            届
         | 
| 1316 | 
            +
            狍
         | 
| 1317 | 
            +
            葑
         | 
| 1318 | 
            +
            汹
         | 
| 1319 | 
            +
            育
         | 
| 1320 | 
            +
            患
         | 
| 1321 | 
            +
            窒
         | 
| 1322 | 
            +
            蛰
         | 
| 1323 | 
            +
            佼
         | 
| 1324 | 
            +
            静
         | 
| 1325 | 
            +
            槎
         | 
| 1326 | 
            +
            运
         | 
| 1327 | 
            +
            鳗
         | 
| 1328 | 
            +
            庆
         | 
| 1329 | 
            +
            逝
         | 
| 1330 | 
            +
            曼
         | 
| 1331 | 
            +
            疱
         | 
| 1332 | 
            +
            克
         | 
| 1333 | 
            +
            代
         | 
| 1334 | 
            +
            官
         | 
| 1335 | 
            +
            此
         | 
| 1336 | 
            +
            麸
         | 
| 1337 | 
            +
            耧
         | 
| 1338 | 
            +
            蚌
         | 
| 1339 | 
            +
            晟
         | 
| 1340 | 
            +
            例
         | 
| 1341 | 
            +
            础
         | 
| 1342 | 
            +
            榛
         | 
| 1343 | 
            +
            副
         | 
| 1344 | 
            +
            测
         | 
| 1345 | 
            +
            唰
         | 
| 1346 | 
            +
            缢
         | 
| 1347 | 
            +
            迹
         | 
| 1348 | 
            +
            灬
         | 
| 1349 | 
            +
            霁
         | 
| 1350 | 
            +
            身
         | 
| 1351 | 
            +
            岁
         | 
| 1352 | 
            +
            赭
         | 
| 1353 | 
            +
            扛
         | 
| 1354 | 
            +
            又
         | 
| 1355 | 
            +
            菡
         | 
| 1356 | 
            +
            乜
         | 
| 1357 | 
            +
            雾
         | 
| 1358 | 
            +
            板
         | 
| 1359 | 
            +
            读
         | 
| 1360 | 
            +
            陷
         | 
| 1361 | 
            +
            徉
         | 
| 1362 | 
            +
            贯
         | 
| 1363 | 
            +
            郁
         | 
| 1364 | 
            +
            虑
         | 
| 1365 | 
            +
            变
         | 
| 1366 | 
            +
            钓
         | 
| 1367 | 
            +
            菜
         | 
| 1368 | 
            +
            圾
         | 
| 1369 | 
            +
            现
         | 
| 1370 | 
            +
            琢
         | 
| 1371 | 
            +
            式
         | 
| 1372 | 
            +
            乐
         | 
| 1373 | 
            +
            维
         | 
| 1374 | 
            +
            渔
         | 
| 1375 | 
            +
            浜
         | 
| 1376 | 
            +
            左
         | 
| 1377 | 
            +
            吾
         | 
| 1378 | 
            +
            脑
         | 
| 1379 | 
            +
            钡
         | 
| 1380 | 
            +
            警
         | 
| 1381 | 
            +
            T
         | 
| 1382 | 
            +
            啵
         | 
| 1383 | 
            +
            拴
         | 
| 1384 | 
            +
            偌
         | 
| 1385 | 
            +
            漱
         | 
| 1386 | 
            +
            湿
         | 
| 1387 | 
            +
            硕
         | 
| 1388 | 
            +
            止
         | 
| 1389 | 
            +
            骼
         | 
| 1390 | 
            +
            魄
         | 
| 1391 | 
            +
            积
         | 
| 1392 | 
            +
            燥
         | 
| 1393 | 
            +
            联
         | 
| 1394 | 
            +
            踢
         | 
| 1395 | 
            +
            玛
         | 
| 1396 | 
            +
            则
         | 
| 1397 | 
            +
            窿
         | 
| 1398 | 
            +
            见
         | 
| 1399 | 
            +
            振
         | 
| 1400 | 
            +
            畿
         | 
| 1401 | 
            +
            送
         | 
| 1402 | 
            +
            班
         | 
| 1403 | 
            +
            钽
         | 
| 1404 | 
            +
            您
         | 
| 1405 | 
            +
            赵
         | 
| 1406 | 
            +
            刨
         | 
| 1407 | 
            +
            印
         | 
| 1408 | 
            +
            讨
         | 
| 1409 | 
            +
            踝
         | 
| 1410 | 
            +
            籍
         | 
| 1411 | 
            +
            谡
         | 
| 1412 | 
            +
            舌
         | 
| 1413 | 
            +
            崧
         | 
| 1414 | 
            +
            汽
         | 
| 1415 | 
            +
            蔽
         | 
| 1416 | 
            +
            沪
         | 
| 1417 | 
            +
            酥
         | 
| 1418 | 
            +
            绒
         | 
| 1419 | 
            +
            怖
         | 
| 1420 | 
            +
            财
         | 
| 1421 | 
            +
            帖
         | 
| 1422 | 
            +
            肱
         | 
| 1423 | 
            +
            私
         | 
| 1424 | 
            +
            莎
         | 
| 1425 | 
            +
            勋
         | 
| 1426 | 
            +
            羔
         | 
| 1427 | 
            +
            霸
         | 
| 1428 | 
            +
            励
         | 
| 1429 | 
            +
            哼
         | 
| 1430 | 
            +
            帐
         | 
| 1431 | 
            +
            将
         | 
| 1432 | 
            +
            帅
         | 
| 1433 | 
            +
            渠
         | 
| 1434 | 
            +
            纪
         | 
| 1435 | 
            +
            婴
         | 
| 1436 | 
            +
            娩
         | 
| 1437 | 
            +
            岭
         | 
| 1438 | 
            +
            厘
         | 
| 1439 | 
            +
            滕
         | 
| 1440 | 
            +
            吻
         | 
| 1441 | 
            +
            伤
         | 
| 1442 | 
            +
            坝
         | 
| 1443 | 
            +
            冠
         | 
| 1444 | 
            +
            戊
         | 
| 1445 | 
            +
            隆
         | 
| 1446 | 
            +
            瘁
         | 
| 1447 | 
            +
            介
         | 
| 1448 | 
            +
            涧
         | 
| 1449 | 
            +
            物
         | 
| 1450 | 
            +
            黍
         | 
| 1451 | 
            +
            并
         | 
| 1452 | 
            +
            姗
         | 
| 1453 | 
            +
            奢
         | 
| 1454 | 
            +
            蹑
         | 
| 1455 | 
            +
            掣
         | 
| 1456 | 
            +
            垸
         | 
| 1457 | 
            +
            锴
         | 
| 1458 | 
            +
            命
         | 
| 1459 | 
            +
            箍
         | 
| 1460 | 
            +
            捉
         | 
| 1461 | 
            +
            病
         | 
| 1462 | 
            +
            辖
         | 
| 1463 | 
            +
            琰
         | 
| 1464 | 
            +
            眭
         | 
| 1465 | 
            +
            迩
         | 
| 1466 | 
            +
            艘
         | 
| 1467 | 
            +
            绌
         | 
| 1468 | 
            +
            繁
         | 
| 1469 | 
            +
            寅
         | 
| 1470 | 
            +
            若
         | 
| 1471 | 
            +
            毋
         | 
| 1472 | 
            +
            思
         | 
| 1473 | 
            +
            诉
         | 
| 1474 | 
            +
            类
         | 
| 1475 | 
            +
            诈
         | 
| 1476 | 
            +
            燮
         | 
| 1477 | 
            +
            轲
         | 
| 1478 | 
            +
            酮
         | 
| 1479 | 
            +
            狂
         | 
| 1480 | 
            +
            重
         | 
| 1481 | 
            +
            反
         | 
| 1482 | 
            +
            职
         | 
| 1483 | 
            +
            筱
         | 
| 1484 | 
            +
            县
         | 
| 1485 | 
            +
            委
         | 
| 1486 | 
            +
            磕
         | 
| 1487 | 
            +
            绣
         | 
| 1488 | 
            +
            奖
         | 
| 1489 | 
            +
            晋
         | 
| 1490 | 
            +
            濉
         | 
| 1491 | 
            +
            志
         | 
| 1492 | 
            +
            徽
         | 
| 1493 | 
            +
            肠
         | 
| 1494 | 
            +
            呈
         | 
| 1495 | 
            +
            獐
         | 
| 1496 | 
            +
            坻
         | 
| 1497 | 
            +
            口
         | 
| 1498 | 
            +
            片
         | 
| 1499 | 
            +
            碰
         | 
| 1500 | 
            +
            几
         | 
| 1501 | 
            +
            村
         | 
| 1502 | 
            +
            柿
         | 
| 1503 | 
            +
            劳
         | 
| 1504 | 
            +
            料
         | 
| 1505 | 
            +
            获
         | 
| 1506 | 
            +
            亩
         | 
| 1507 | 
            +
            惕
         | 
| 1508 | 
            +
            晕
         | 
| 1509 | 
            +
            厌
         | 
| 1510 | 
            +
            号
         | 
| 1511 | 
            +
            罢
         | 
| 1512 | 
            +
            池
         | 
| 1513 | 
            +
            正
         | 
| 1514 | 
            +
            鏖
         | 
| 1515 | 
            +
            煨
         | 
| 1516 | 
            +
            家
         | 
| 1517 | 
            +
            棕
         | 
| 1518 | 
            +
            复
         | 
| 1519 | 
            +
            尝
         | 
| 1520 | 
            +
            懋
         | 
| 1521 | 
            +
            蜥
         | 
| 1522 | 
            +
            锅
         | 
| 1523 | 
            +
            岛
         | 
| 1524 | 
            +
            扰
         | 
| 1525 | 
            +
            队
         | 
| 1526 | 
            +
            坠
         | 
| 1527 | 
            +
            瘾
         | 
| 1528 | 
            +
            钬
         | 
| 1529 | 
            +
            @
         | 
| 1530 | 
            +
            卧
         | 
| 1531 | 
            +
            疣
         | 
| 1532 | 
            +
            镇
         | 
| 1533 | 
            +
            譬
         | 
| 1534 | 
            +
            冰
         | 
| 1535 | 
            +
            彷
         | 
| 1536 | 
            +
            频
         | 
| 1537 | 
            +
            黯
         | 
| 1538 | 
            +
            据
         | 
| 1539 | 
            +
            垄
         | 
| 1540 | 
            +
            采
         | 
| 1541 | 
            +
            八
         | 
| 1542 | 
            +
            缪
         | 
| 1543 | 
            +
            瘫
         | 
| 1544 | 
            +
            型
         | 
| 1545 | 
            +
            熹
         | 
| 1546 | 
            +
            砰
         | 
| 1547 | 
            +
            楠
         | 
| 1548 | 
            +
            襁
         | 
| 1549 | 
            +
            箐
         | 
| 1550 | 
            +
            但
         | 
| 1551 | 
            +
            嘶
         | 
| 1552 | 
            +
            绳
         | 
| 1553 | 
            +
            啤
         | 
| 1554 | 
            +
            拍
         | 
| 1555 | 
            +
            盥
         | 
| 1556 | 
            +
            穆
         | 
| 1557 | 
            +
            傲
         | 
| 1558 | 
            +
            洗
         | 
| 1559 | 
            +
            盯
         | 
| 1560 | 
            +
            塘
         | 
| 1561 | 
            +
            怔
         | 
| 1562 | 
            +
            筛
         | 
| 1563 | 
            +
            丿
         | 
| 1564 | 
            +
            台
         | 
| 1565 | 
            +
            恒
         | 
| 1566 | 
            +
            喂
         | 
| 1567 | 
            +
            葛
         | 
| 1568 | 
            +
            永
         | 
| 1569 | 
            +
            ¥
         | 
| 1570 | 
            +
            烟
         | 
| 1571 | 
            +
            酒
         | 
| 1572 | 
            +
            桦
         | 
| 1573 | 
            +
            书
         | 
| 1574 | 
            +
            砂
         | 
| 1575 | 
            +
            蚝
         | 
| 1576 | 
            +
            缉
         | 
| 1577 | 
            +
            态
         | 
| 1578 | 
            +
            瀚
         | 
| 1579 | 
            +
            袄
         | 
| 1580 | 
            +
            圳
         | 
| 1581 | 
            +
            轻
         | 
| 1582 | 
            +
            蛛
         | 
| 1583 | 
            +
            超
         | 
| 1584 | 
            +
            榧
         | 
| 1585 | 
            +
            遛
         | 
| 1586 | 
            +
            姒
         | 
| 1587 | 
            +
            奘
         | 
| 1588 | 
            +
            铮
         | 
| 1589 | 
            +
            右
         | 
| 1590 | 
            +
            荽
         | 
| 1591 | 
            +
            望
         | 
| 1592 | 
            +
            偻
         | 
| 1593 | 
            +
            卡
         | 
| 1594 | 
            +
            丶
         | 
| 1595 | 
            +
            氰
         | 
| 1596 | 
            +
            附
         | 
| 1597 | 
            +
            做
         | 
| 1598 | 
            +
            革
         | 
| 1599 | 
            +
            索
         | 
| 1600 | 
            +
            戚
         | 
| 1601 | 
            +
            坨
         | 
| 1602 | 
            +
            桷
         | 
| 1603 | 
            +
            唁
         | 
| 1604 | 
            +
            垅
         | 
| 1605 | 
            +
            榻
         | 
| 1606 | 
            +
            岐
         | 
| 1607 | 
            +
            偎
         | 
| 1608 | 
            +
            坛
         | 
| 1609 | 
            +
            莨
         | 
| 1610 | 
            +
            山
         | 
| 1611 | 
            +
            殊
         | 
| 1612 | 
            +
            微
         | 
| 1613 | 
            +
            骇
         | 
| 1614 | 
            +
            陈
         | 
| 1615 | 
            +
            爨
         | 
| 1616 | 
            +
            推
         | 
| 1617 | 
            +
            嗝
         | 
| 1618 | 
            +
            驹
         | 
| 1619 | 
            +
            澡
         | 
| 1620 | 
            +
            藁
         | 
| 1621 | 
            +
            呤
         | 
| 1622 | 
            +
            卤
         | 
| 1623 | 
            +
            嘻
         | 
| 1624 | 
            +
            糅
         | 
| 1625 | 
            +
            逛
         | 
| 1626 | 
            +
            侵
         | 
| 1627 | 
            +
            郓
         | 
| 1628 | 
            +
            酌
         | 
| 1629 | 
            +
            德
         | 
| 1630 | 
            +
            摇
         | 
| 1631 | 
            +
            ※
         | 
| 1632 | 
            +
            鬃
         | 
| 1633 | 
            +
            被
         | 
| 1634 | 
            +
            慨
         | 
| 1635 | 
            +
            殡
         | 
| 1636 | 
            +
            羸
         | 
| 1637 | 
            +
            昌
         | 
| 1638 | 
            +
            泡
         | 
| 1639 | 
            +
            戛
         | 
| 1640 | 
            +
            鞋
         | 
| 1641 | 
            +
            河
         | 
| 1642 | 
            +
            宪
         | 
| 1643 | 
            +
            沿
         | 
| 1644 | 
            +
            玲
         | 
| 1645 | 
            +
            鲨
         | 
| 1646 | 
            +
            翅
         | 
| 1647 | 
            +
            哽
         | 
| 1648 | 
            +
            源
         | 
| 1649 | 
            +
            铅
         | 
| 1650 | 
            +
            语
         | 
| 1651 | 
            +
            照
         | 
| 1652 | 
            +
            邯
         | 
| 1653 | 
            +
            址
         | 
| 1654 | 
            +
            荃
         | 
| 1655 | 
            +
            佬
         | 
| 1656 | 
            +
            顺
         | 
| 1657 | 
            +
            鸳
         | 
| 1658 | 
            +
            町
         | 
| 1659 | 
            +
            霭
         | 
| 1660 | 
            +
            睾
         | 
| 1661 | 
            +
            瓢
         | 
| 1662 | 
            +
            夸
         | 
| 1663 | 
            +
            椁
         | 
| 1664 | 
            +
            晓
         | 
| 1665 | 
            +
            酿
         | 
| 1666 | 
            +
            痈
         | 
| 1667 | 
            +
            咔
         | 
| 1668 | 
            +
            侏
         | 
| 1669 | 
            +
            券
         | 
| 1670 | 
            +
            噎
         | 
| 1671 | 
            +
            湍
         | 
| 1672 | 
            +
            签
         | 
| 1673 | 
            +
            嚷
         | 
| 1674 | 
            +
            离
         | 
| 1675 | 
            +
            午
         | 
| 1676 | 
            +
            尚
         | 
| 1677 | 
            +
            社
         | 
| 1678 | 
            +
            锤
         | 
| 1679 | 
            +
            背
         | 
| 1680 | 
            +
            孟
         | 
| 1681 | 
            +
            使
         | 
| 1682 | 
            +
            浪
         | 
| 1683 | 
            +
            缦
         | 
| 1684 | 
            +
            潍
         | 
| 1685 | 
            +
            鞅
         | 
| 1686 | 
            +
            军
         | 
| 1687 | 
            +
            姹
         | 
| 1688 | 
            +
            驶
         | 
| 1689 | 
            +
            笑
         | 
| 1690 | 
            +
            鳟
         | 
| 1691 | 
            +
            鲁
         | 
| 1692 | 
            +
            》
         | 
| 1693 | 
            +
            孽
         | 
| 1694 | 
            +
            钜
         | 
| 1695 | 
            +
            绿
         | 
| 1696 | 
            +
            洱
         | 
| 1697 | 
            +
            礴
         | 
| 1698 | 
            +
            焯
         | 
| 1699 | 
            +
            椰
         | 
| 1700 | 
            +
            颖
         | 
| 1701 | 
            +
            囔
         | 
| 1702 | 
            +
            乌
         | 
| 1703 | 
            +
            孔
         | 
| 1704 | 
            +
            巴
         | 
| 1705 | 
            +
            互
         | 
| 1706 | 
            +
            性
         | 
| 1707 | 
            +
            椽
         | 
| 1708 | 
            +
            哞
         | 
| 1709 | 
            +
            聘
         | 
| 1710 | 
            +
            昨
         | 
| 1711 | 
            +
            早
         | 
| 1712 | 
            +
            暮
         | 
| 1713 | 
            +
            胶
         | 
| 1714 | 
            +
            炀
         | 
| 1715 | 
            +
            隧
         | 
| 1716 | 
            +
            ��
         | 
| 1717 | 
            +
            彗
         | 
| 1718 | 
            +
            昝
         | 
| 1719 | 
            +
            铁
         | 
| 1720 | 
            +
            呓
         | 
| 1721 | 
            +
            氽
         | 
| 1722 | 
            +
            藉
         | 
| 1723 | 
            +
            喔
         | 
| 1724 | 
            +
            癖
         | 
| 1725 | 
            +
            瑗
         | 
| 1726 | 
            +
            姨
         | 
| 1727 | 
            +
            权
         | 
| 1728 | 
            +
            胱
         | 
| 1729 | 
            +
            韦
         | 
| 1730 | 
            +
            堑
         | 
| 1731 | 
            +
            蜜
         | 
| 1732 | 
            +
            酋
         | 
| 1733 | 
            +
            楝
         | 
| 1734 | 
            +
            砝
         | 
| 1735 | 
            +
            毁
         | 
| 1736 | 
            +
            靓
         | 
| 1737 | 
            +
            歙
         | 
| 1738 | 
            +
            锲
         | 
| 1739 | 
            +
            究
         | 
| 1740 | 
            +
            屋
         | 
| 1741 | 
            +
            喳
         | 
| 1742 | 
            +
            骨
         | 
| 1743 | 
            +
            辨
         | 
| 1744 | 
            +
            碑
         | 
| 1745 | 
            +
            武
         | 
| 1746 | 
            +
            鸠
         | 
| 1747 | 
            +
            宫
         | 
| 1748 | 
            +
            辜
         | 
| 1749 | 
            +
            烊
         | 
| 1750 | 
            +
            适
         | 
| 1751 | 
            +
            坡
         | 
| 1752 | 
            +
            殃
         | 
| 1753 | 
            +
            培
         | 
| 1754 | 
            +
            佩
         | 
| 1755 | 
            +
            供
         | 
| 1756 | 
            +
            走
         | 
| 1757 | 
            +
            蜈
         | 
| 1758 | 
            +
            迟
         | 
| 1759 | 
            +
            翼
         | 
| 1760 | 
            +
            况
         | 
| 1761 | 
            +
            姣
         | 
| 1762 | 
            +
            凛
         | 
| 1763 | 
            +
            浔
         | 
| 1764 | 
            +
            吃
         | 
| 1765 | 
            +
            飘
         | 
| 1766 | 
            +
            债
         | 
| 1767 | 
            +
            犟
         | 
| 1768 | 
            +
            金
         | 
| 1769 | 
            +
            促
         | 
| 1770 | 
            +
            苛
         | 
| 1771 | 
            +
            崇
         | 
| 1772 | 
            +
            坂
         | 
| 1773 | 
            +
            莳
         | 
| 1774 | 
            +
            畔
         | 
| 1775 | 
            +
            绂
         | 
| 1776 | 
            +
            兵
         | 
| 1777 | 
            +
            蠕
         | 
| 1778 | 
            +
            斋
         | 
| 1779 | 
            +
            根
         | 
| 1780 | 
            +
            砍
         | 
| 1781 | 
            +
            亢
         | 
| 1782 | 
            +
            欢
         | 
| 1783 | 
            +
            恬
         | 
| 1784 | 
            +
            崔
         | 
| 1785 | 
            +
            剁
         | 
| 1786 | 
            +
            餐
         | 
| 1787 | 
            +
            榫
         | 
| 1788 | 
            +
            快
         | 
| 1789 | 
            +
            扶
         | 
| 1790 | 
            +
            ‖
         | 
| 1791 | 
            +
            濒
         | 
| 1792 | 
            +
            缠
         | 
| 1793 | 
            +
            鳜
         | 
| 1794 | 
            +
            当
         | 
| 1795 | 
            +
            彭
         | 
| 1796 | 
            +
            驭
         | 
| 1797 | 
            +
            浦
         | 
| 1798 | 
            +
            篮
         | 
| 1799 | 
            +
            昀
         | 
| 1800 | 
            +
            锆
         | 
| 1801 | 
            +
            秸
         | 
| 1802 | 
            +
            钳
         | 
| 1803 | 
            +
            弋
         | 
| 1804 | 
            +
            娣
         | 
| 1805 | 
            +
            瞑
         | 
| 1806 | 
            +
            夷
         | 
| 1807 | 
            +
            龛
         | 
| 1808 | 
            +
            苫
         | 
| 1809 | 
            +
            拱
         | 
| 1810 | 
            +
            致
         | 
| 1811 | 
            +
            %
         | 
| 1812 | 
            +
            嵊
         | 
| 1813 | 
            +
            障
         | 
| 1814 | 
            +
            隐
         | 
| 1815 | 
            +
            弑
         | 
| 1816 | 
            +
            初
         | 
| 1817 | 
            +
            娓
         | 
| 1818 | 
            +
            抉
         | 
| 1819 | 
            +
            汩
         | 
| 1820 | 
            +
            累
         | 
| 1821 | 
            +
            蓖
         | 
| 1822 | 
            +
            "
         | 
| 1823 | 
            +
            唬
         | 
| 1824 | 
            +
            助
         | 
| 1825 | 
            +
            苓
         | 
| 1826 | 
            +
            昙
         | 
| 1827 | 
            +
            押
         | 
| 1828 | 
            +
            毙
         | 
| 1829 | 
            +
            破
         | 
| 1830 | 
            +
            城
         | 
| 1831 | 
            +
            郧
         | 
| 1832 | 
            +
            逢
         | 
| 1833 | 
            +
            嚏
         | 
| 1834 | 
            +
            獭
         | 
| 1835 | 
            +
            瞻
         | 
| 1836 | 
            +
            溱
         | 
| 1837 | 
            +
            婿
         | 
| 1838 | 
            +
            赊
         | 
| 1839 | 
            +
            跨
         | 
| 1840 | 
            +
            恼
         | 
| 1841 | 
            +
            璧
         | 
| 1842 | 
            +
            萃
         | 
| 1843 | 
            +
            姻
         | 
| 1844 | 
            +
            貉
         | 
| 1845 | 
            +
            灵
         | 
| 1846 | 
            +
            炉
         | 
| 1847 | 
            +
            密
         | 
| 1848 | 
            +
            氛
         | 
| 1849 | 
            +
            陶
         | 
| 1850 | 
            +
            砸
         | 
| 1851 | 
            +
            谬
         | 
| 1852 | 
            +
            衔
         | 
| 1853 | 
            +
            点
         | 
| 1854 | 
            +
            琛
         | 
| 1855 | 
            +
            沛
         | 
| 1856 | 
            +
            枳
         | 
| 1857 | 
            +
            层
         | 
| 1858 | 
            +
            岱
         | 
| 1859 | 
            +
            诺
         | 
| 1860 | 
            +
            脍
         | 
| 1861 | 
            +
            榈
         | 
| 1862 | 
            +
            埂
         | 
| 1863 | 
            +
            征
         | 
| 1864 | 
            +
            冷
         | 
| 1865 | 
            +
            裁
         | 
| 1866 | 
            +
            打
         | 
| 1867 | 
            +
            蹴
         | 
| 1868 | 
            +
            素
         | 
| 1869 | 
            +
            瘘
         | 
| 1870 | 
            +
            逞
         | 
| 1871 | 
            +
            蛐
         | 
| 1872 | 
            +
            聊
         | 
| 1873 | 
            +
            激
         | 
| 1874 | 
            +
            腱
         | 
| 1875 | 
            +
            萘
         | 
| 1876 | 
            +
            踵
         | 
| 1877 | 
            +
            飒
         | 
| 1878 | 
            +
            蓟
         | 
| 1879 | 
            +
            吆
         | 
| 1880 | 
            +
            取
         | 
| 1881 | 
            +
            咙
         | 
| 1882 | 
            +
            簋
         | 
| 1883 | 
            +
            涓
         | 
| 1884 | 
            +
            矩
         | 
| 1885 | 
            +
            曝
         | 
| 1886 | 
            +
            挺
         | 
| 1887 | 
            +
            揣
         | 
| 1888 | 
            +
            座
         | 
| 1889 | 
            +
            你
         | 
| 1890 | 
            +
            史
         | 
| 1891 | 
            +
            舵
         | 
| 1892 | 
            +
            焱
         | 
| 1893 | 
            +
            尘
         | 
| 1894 | 
            +
            苏
         | 
| 1895 | 
            +
            笈
         | 
| 1896 | 
            +
            脚
         | 
| 1897 | 
            +
            溉
         | 
| 1898 | 
            +
            榨
         | 
| 1899 | 
            +
            诵
         | 
| 1900 | 
            +
            樊
         | 
| 1901 | 
            +
            邓
         | 
| 1902 | 
            +
            焊
         | 
| 1903 | 
            +
            义
         | 
| 1904 | 
            +
            庶
         | 
| 1905 | 
            +
            儋
         | 
| 1906 | 
            +
            蟋
         | 
| 1907 | 
            +
            蒲
         | 
| 1908 | 
            +
            赦
         | 
| 1909 | 
            +
            呷
         | 
| 1910 | 
            +
            杞
         | 
| 1911 | 
            +
            诠
         | 
| 1912 | 
            +
            豪
         | 
| 1913 | 
            +
            还
         | 
| 1914 | 
            +
            试
         | 
| 1915 | 
            +
            颓
         | 
| 1916 | 
            +
            茉
         | 
| 1917 | 
            +
            太
         | 
| 1918 | 
            +
            除
         | 
| 1919 | 
            +
            紫
         | 
| 1920 | 
            +
            逃
         | 
| 1921 | 
            +
            痴
         | 
| 1922 | 
            +
            草
         | 
| 1923 | 
            +
            充
         | 
| 1924 | 
            +
            鳕
         | 
| 1925 | 
            +
            珉
         | 
| 1926 | 
            +
            祗
         | 
| 1927 | 
            +
            墨
         | 
| 1928 | 
            +
            渭
         | 
| 1929 | 
            +
            烩
         | 
| 1930 | 
            +
            蘸
         | 
| 1931 | 
            +
            慕
         | 
| 1932 | 
            +
            璇
         | 
| 1933 | 
            +
            镶
         | 
| 1934 | 
            +
            穴
         | 
| 1935 | 
            +
            嵘
         | 
| 1936 | 
            +
            恶
         | 
| 1937 | 
            +
            骂
         | 
| 1938 | 
            +
            险
         | 
| 1939 | 
            +
            绋
         | 
| 1940 | 
            +
            幕
         | 
| 1941 | 
            +
            碉
         | 
| 1942 | 
            +
            肺
         | 
| 1943 | 
            +
            戳
         | 
| 1944 | 
            +
            刘
         | 
| 1945 | 
            +
            潞
         | 
| 1946 | 
            +
            秣
         | 
| 1947 | 
            +
            纾
         | 
| 1948 | 
            +
            潜
         | 
| 1949 | 
            +
            銮
         | 
| 1950 | 
            +
            洛
         | 
| 1951 | 
            +
            须
         | 
| 1952 | 
            +
            罘
         | 
| 1953 | 
            +
            销
         | 
| 1954 | 
            +
            瘪
         | 
| 1955 | 
            +
            汞
         | 
| 1956 | 
            +
            兮
         | 
| 1957 | 
            +
            屉
         | 
| 1958 | 
            +
            r
         | 
| 1959 | 
            +
            林
         | 
| 1960 | 
            +
            厕
         | 
| 1961 | 
            +
            质
         | 
| 1962 | 
            +
            探
         | 
| 1963 | 
            +
            划
         | 
| 1964 | 
            +
            狸
         | 
| 1965 | 
            +
            殚
         | 
| 1966 | 
            +
            善
         | 
| 1967 | 
            +
            煊
         | 
| 1968 | 
            +
            烹
         | 
| 1969 | 
            +
            〒
         | 
| 1970 | 
            +
            锈
         | 
| 1971 | 
            +
            逯
         | 
| 1972 | 
            +
            宸
         | 
| 1973 | 
            +
            辍
         | 
| 1974 | 
            +
            泱
         | 
| 1975 | 
            +
            柚
         | 
| 1976 | 
            +
            袍
         | 
| 1977 | 
            +
            远
         | 
| 1978 | 
            +
            蹋
         | 
| 1979 | 
            +
            嶙
         | 
| 1980 | 
            +
            绝
         | 
| 1981 | 
            +
            峥
         | 
| 1982 | 
            +
            娥
         | 
| 1983 | 
            +
            缍
         | 
| 1984 | 
            +
            雀
         | 
| 1985 | 
            +
            徵
         | 
| 1986 | 
            +
            认
         | 
| 1987 | 
            +
            镱
         | 
| 1988 | 
            +
            谷
         | 
| 1989 | 
            +
            =
         | 
| 1990 | 
            +
            贩
         | 
| 1991 | 
            +
            勉
         | 
| 1992 | 
            +
            撩
         | 
| 1993 | 
            +
            鄯
         | 
| 1994 | 
            +
            斐
         | 
| 1995 | 
            +
            洋
         | 
| 1996 | 
            +
            非
         | 
| 1997 | 
            +
            祚
         | 
| 1998 | 
            +
            泾
         | 
| 1999 | 
            +
            诒
         | 
| 2000 | 
            +
            饿
         | 
| 2001 | 
            +
            撬
         | 
| 2002 | 
            +
            威
         | 
| 2003 | 
            +
            晷
         | 
| 2004 | 
            +
            搭
         | 
| 2005 | 
            +
            芍
         | 
| 2006 | 
            +
            锥
         | 
| 2007 | 
            +
            笺
         | 
| 2008 | 
            +
            蓦
         | 
| 2009 | 
            +
            候
         | 
| 2010 | 
            +
            琊
         | 
| 2011 | 
            +
            档
         | 
| 2012 | 
            +
            礁
         | 
| 2013 | 
            +
            沼
         | 
| 2014 | 
            +
            卵
         | 
| 2015 | 
            +
            荠
         | 
| 2016 | 
            +
            忑
         | 
| 2017 | 
            +
            朝
         | 
| 2018 | 
            +
            凹
         | 
| 2019 | 
            +
            瑞
         | 
| 2020 | 
            +
            头
         | 
| 2021 | 
            +
            仪
         | 
| 2022 | 
            +
            弧
         | 
| 2023 | 
            +
            孵
         | 
| 2024 | 
            +
            畏
         | 
| 2025 | 
            +
            铆
         | 
| 2026 | 
            +
            突
         | 
| 2027 | 
            +
            衲
         | 
| 2028 | 
            +
            车
         | 
| 2029 | 
            +
            浩
         | 
| 2030 | 
            +
            气
         | 
| 2031 | 
            +
            茂
         | 
| 2032 | 
            +
            悖
         | 
| 2033 | 
            +
            厢
         | 
| 2034 | 
            +
            枕
         | 
| 2035 | 
            +
            酝
         | 
| 2036 | 
            +
            戴
         | 
| 2037 | 
            +
            湾
         | 
| 2038 | 
            +
            邹
         | 
| 2039 | 
            +
            飚
         | 
| 2040 | 
            +
            攘
         | 
| 2041 | 
            +
            锂
         | 
| 2042 | 
            +
            写
         | 
| 2043 | 
            +
            宵
         | 
| 2044 | 
            +
            翁
         | 
| 2045 | 
            +
            岷
         | 
| 2046 | 
            +
            无
         | 
| 2047 | 
            +
            喜
         | 
| 2048 | 
            +
            丈
         | 
| 2049 | 
            +
            挑
         | 
| 2050 | 
            +
            嗟
         | 
| 2051 | 
            +
            绛
         | 
| 2052 | 
            +
            殉
         | 
| 2053 | 
            +
            议
         | 
| 2054 | 
            +
            槽
         | 
| 2055 | 
            +
            具
         | 
| 2056 | 
            +
            醇
         | 
| 2057 | 
            +
            淞
         | 
| 2058 | 
            +
            笃
         | 
| 2059 | 
            +
            郴
         | 
| 2060 | 
            +
            阅
         | 
| 2061 | 
            +
            饼
         | 
| 2062 | 
            +
            底
         | 
| 2063 | 
            +
            壕
         | 
| 2064 | 
            +
            砚
         | 
| 2065 | 
            +
            弈
         | 
| 2066 | 
            +
            询
         | 
| 2067 | 
            +
            缕
         | 
| 2068 | 
            +
            庹
         | 
| 2069 | 
            +
            翟
         | 
| 2070 | 
            +
            零
         | 
| 2071 | 
            +
            筷
         | 
| 2072 | 
            +
            暨
         | 
| 2073 | 
            +
            舟
         | 
| 2074 | 
            +
            闺
         | 
| 2075 | 
            +
            甯
         | 
| 2076 | 
            +
            撞
         | 
| 2077 | 
            +
            麂
         | 
| 2078 | 
            +
            茌
         | 
| 2079 | 
            +
            蔼
         | 
| 2080 | 
            +
            很
         | 
| 2081 | 
            +
            珲
         | 
| 2082 | 
            +
            捕
         | 
| 2083 | 
            +
            棠
         | 
| 2084 | 
            +
            角
         | 
| 2085 | 
            +
            阉
         | 
| 2086 | 
            +
            媛
         | 
| 2087 | 
            +
            娲
         | 
| 2088 | 
            +
            诽
         | 
| 2089 | 
            +
            剿
         | 
| 2090 | 
            +
            尉
         | 
| 2091 | 
            +
            爵
         | 
| 2092 | 
            +
            睬
         | 
| 2093 | 
            +
            韩
         | 
| 2094 | 
            +
            诰
         | 
| 2095 | 
            +
            匣
         | 
| 2096 | 
            +
            危
         | 
| 2097 | 
            +
            糍
         | 
| 2098 | 
            +
            镯
         | 
| 2099 | 
            +
            立
         | 
| 2100 | 
            +
            浏
         | 
| 2101 | 
            +
            阳
         | 
| 2102 | 
            +
            少
         | 
| 2103 | 
            +
            盆
         | 
| 2104 | 
            +
            舔
         | 
| 2105 | 
            +
            擘
         | 
| 2106 | 
            +
            匪
         | 
| 2107 | 
            +
            申
         | 
| 2108 | 
            +
            尬
         | 
| 2109 | 
            +
            铣
         | 
| 2110 | 
            +
            旯
         | 
| 2111 | 
            +
            抖
         | 
| 2112 | 
            +
            赘
         | 
| 2113 | 
            +
            瓯
         | 
| 2114 | 
            +
            居
         | 
| 2115 | 
            +
            ˇ
         | 
| 2116 | 
            +
            哮
         | 
| 2117 | 
            +
            游
         | 
| 2118 | 
            +
            锭
         | 
| 2119 | 
            +
            茏
         | 
| 2120 | 
            +
            歌
         | 
| 2121 | 
            +
            坏
         | 
| 2122 | 
            +
            甚
         | 
| 2123 | 
            +
            秒
         | 
| 2124 | 
            +
            舞
         | 
| 2125 | 
            +
            沙
         | 
| 2126 | 
            +
            仗
         | 
| 2127 | 
            +
            劲
         | 
| 2128 | 
            +
            潺
         | 
| 2129 | 
            +
            阿
         | 
| 2130 | 
            +
            燧
         | 
| 2131 | 
            +
            郭
         | 
| 2132 | 
            +
            嗖
         | 
| 2133 | 
            +
            霏
         | 
| 2134 | 
            +
            忠
         | 
| 2135 | 
            +
            材
         | 
| 2136 | 
            +
            奂
         | 
| 2137 | 
            +
            耐
         | 
| 2138 | 
            +
            跺
         | 
| 2139 | 
            +
            砀
         | 
| 2140 | 
            +
            输
         | 
| 2141 | 
            +
            岖
         | 
| 2142 | 
            +
            媳
         | 
| 2143 | 
            +
            氟
         | 
| 2144 | 
            +
            极
         | 
| 2145 | 
            +
            摆
         | 
| 2146 | 
            +
            灿
         | 
| 2147 | 
            +
            今
         | 
| 2148 | 
            +
            扔
         | 
| 2149 | 
            +
            腻
         | 
| 2150 | 
            +
            枝
         | 
| 2151 | 
            +
            奎
         | 
| 2152 | 
            +
            药
         | 
| 2153 | 
            +
            熄
         | 
| 2154 | 
            +
            吨
         | 
| 2155 | 
            +
            话
         | 
| 2156 | 
            +
            q
         | 
| 2157 | 
            +
            额
         | 
| 2158 | 
            +
            慑
         | 
| 2159 | 
            +
            嘌
         | 
| 2160 | 
            +
            协
         | 
| 2161 | 
            +
            喀
         | 
| 2162 | 
            +
            壳
         | 
| 2163 | 
            +
            埭
         | 
| 2164 | 
            +
            视
         | 
| 2165 | 
            +
            著
         | 
| 2166 | 
            +
            於
         | 
| 2167 | 
            +
            愧
         | 
| 2168 | 
            +
            陲
         | 
| 2169 | 
            +
            翌
         | 
| 2170 | 
            +
            峁
         | 
| 2171 | 
            +
            颅
         | 
| 2172 | 
            +
            佛
         | 
| 2173 | 
            +
            腹
         | 
| 2174 | 
            +
            聋
         | 
| 2175 | 
            +
            侯
         | 
| 2176 | 
            +
            咎
         | 
| 2177 | 
            +
            叟
         | 
| 2178 | 
            +
            秀
         | 
| 2179 | 
            +
            颇
         | 
| 2180 | 
            +
            存
         | 
| 2181 | 
            +
            较
         | 
| 2182 | 
            +
            罪
         | 
| 2183 | 
            +
            哄
         | 
| 2184 | 
            +
            岗
         | 
| 2185 | 
            +
            扫
         | 
| 2186 | 
            +
            栏
         | 
| 2187 | 
            +
            钾
         | 
| 2188 | 
            +
            羌
         | 
| 2189 | 
            +
            己
         | 
| 2190 | 
            +
            璨
         | 
| 2191 | 
            +
            枭
         | 
| 2192 | 
            +
            霉
         | 
| 2193 | 
            +
            煌
         | 
| 2194 | 
            +
            涸
         | 
| 2195 | 
            +
            衿
         | 
| 2196 | 
            +
            键
         | 
| 2197 | 
            +
            镝
         | 
| 2198 | 
            +
            益
         | 
| 2199 | 
            +
            岢
         | 
| 2200 | 
            +
            奏
         | 
| 2201 | 
            +
            连
         | 
| 2202 | 
            +
            夯
         | 
| 2203 | 
            +
            睿
         | 
| 2204 | 
            +
            冥
         | 
| 2205 | 
            +
            均
         | 
| 2206 | 
            +
            糖
         | 
| 2207 | 
            +
            狞
         | 
| 2208 | 
            +
            蹊
         | 
| 2209 | 
            +
            稻
         | 
| 2210 | 
            +
            爸
         | 
| 2211 | 
            +
            刿
         | 
| 2212 | 
            +
            胥
         | 
| 2213 | 
            +
            煜
         | 
| 2214 | 
            +
            丽
         | 
| 2215 | 
            +
            肿
         | 
| 2216 | 
            +
            璃
         | 
| 2217 | 
            +
            掸
         | 
| 2218 | 
            +
            跚
         | 
| 2219 | 
            +
            灾
         | 
| 2220 | 
            +
            垂
         | 
| 2221 | 
            +
            樾
         | 
| 2222 | 
            +
            濑
         | 
| 2223 | 
            +
            乎
         | 
| 2224 | 
            +
            莲
         | 
| 2225 | 
            +
            窄
         | 
| 2226 | 
            +
            犹
         | 
| 2227 | 
            +
            撮
         | 
| 2228 | 
            +
            战
         | 
| 2229 | 
            +
            馄
         | 
| 2230 | 
            +
            软
         | 
| 2231 | 
            +
            络
         | 
| 2232 | 
            +
            显
         | 
| 2233 | 
            +
            鸢
         | 
| 2234 | 
            +
            胸
         | 
| 2235 | 
            +
            宾
         | 
| 2236 | 
            +
            妲
         | 
| 2237 | 
            +
            恕
         | 
| 2238 | 
            +
            埔
         | 
| 2239 | 
            +
            蝌
         | 
| 2240 | 
            +
            份
         | 
| 2241 | 
            +
            遇
         | 
| 2242 | 
            +
            巧
         | 
| 2243 | 
            +
            瞟
         | 
| 2244 | 
            +
            粒
         | 
| 2245 | 
            +
            恰
         | 
| 2246 | 
            +
            剥
         | 
| 2247 | 
            +
            桡
         | 
| 2248 | 
            +
            博
         | 
| 2249 | 
            +
            讯
         | 
| 2250 | 
            +
            凯
         | 
| 2251 | 
            +
            堇
         | 
| 2252 | 
            +
            阶
         | 
| 2253 | 
            +
            滤
         | 
| 2254 | 
            +
            卖
         | 
| 2255 | 
            +
            斌
         | 
| 2256 | 
            +
            骚
         | 
| 2257 | 
            +
            彬
         | 
| 2258 | 
            +
            兑
         | 
| 2259 | 
            +
            磺
         | 
| 2260 | 
            +
            樱
         | 
| 2261 | 
            +
            舷
         | 
| 2262 | 
            +
            两
         | 
| 2263 | 
            +
            娱
         | 
| 2264 | 
            +
            福
         | 
| 2265 | 
            +
            仃
         | 
| 2266 | 
            +
            差
         | 
| 2267 | 
            +
            找
         | 
| 2268 | 
            +
            桁
         | 
| 2269 | 
            +
            ÷
         | 
| 2270 | 
            +
            净
         | 
| 2271 | 
            +
            把
         | 
| 2272 | 
            +
            阴
         | 
| 2273 | 
            +
            污
         | 
| 2274 | 
            +
            戬
         | 
| 2275 | 
            +
            雷
         | 
| 2276 | 
            +
            碓
         | 
| 2277 | 
            +
            蕲
         | 
| 2278 | 
            +
            楚
         | 
| 2279 | 
            +
            罡
         | 
| 2280 | 
            +
            焖
         | 
| 2281 | 
            +
            抽
         | 
| 2282 | 
            +
            妫
         | 
| 2283 | 
            +
            咒
         | 
| 2284 | 
            +
            仑
         | 
| 2285 | 
            +
            闱
         | 
| 2286 | 
            +
            尽
         | 
| 2287 | 
            +
            邑
         | 
| 2288 | 
            +
            菁
         | 
| 2289 | 
            +
            爱
         | 
| 2290 | 
            +
            贷
         | 
| 2291 | 
            +
            沥
         | 
| 2292 | 
            +
            鞑
         | 
| 2293 | 
            +
            牡
         | 
| 2294 | 
            +
            嗉
         | 
| 2295 | 
            +
            崴
         | 
| 2296 | 
            +
            骤
         | 
| 2297 | 
            +
            塌
         | 
| 2298 | 
            +
            嗦
         | 
| 2299 | 
            +
            订
         | 
| 2300 | 
            +
            拮
         | 
| 2301 | 
            +
            滓
         | 
| 2302 | 
            +
            捡
         | 
| 2303 | 
            +
            锻
         | 
| 2304 | 
            +
            次
         | 
| 2305 | 
            +
            坪
         | 
| 2306 | 
            +
            杩
         | 
| 2307 | 
            +
            臃
         | 
| 2308 | 
            +
            箬
         | 
| 2309 | 
            +
            融
         | 
| 2310 | 
            +
            珂
         | 
| 2311 | 
            +
            鹗
         | 
| 2312 | 
            +
            宗
         | 
| 2313 | 
            +
            枚
         | 
| 2314 | 
            +
            降
         | 
| 2315 | 
            +
            鸬
         | 
| 2316 | 
            +
            妯
         | 
| 2317 | 
            +
            阄
         | 
| 2318 | 
            +
            堰
         | 
| 2319 | 
            +
            盐
         | 
| 2320 | 
            +
            毅
         | 
| 2321 | 
            +
            必
         | 
| 2322 | 
            +
            杨
         | 
| 2323 | 
            +
            崃
         | 
| 2324 | 
            +
            俺
         | 
| 2325 | 
            +
            甬
         | 
| 2326 | 
            +
            状
         | 
| 2327 | 
            +
            莘
         | 
| 2328 | 
            +
            货
         | 
| 2329 | 
            +
            耸
         | 
| 2330 | 
            +
            菱
         | 
| 2331 | 
            +
            腼
         | 
| 2332 | 
            +
            铸
         | 
| 2333 | 
            +
            唏
         | 
| 2334 | 
            +
            痤
         | 
| 2335 | 
            +
            孚
         | 
| 2336 | 
            +
            澳
         | 
| 2337 | 
            +
            懒
         | 
| 2338 | 
            +
            溅
         | 
| 2339 | 
            +
            翘
         | 
| 2340 | 
            +
            疙
         | 
| 2341 | 
            +
            杷
         | 
| 2342 | 
            +
            淼
         | 
| 2343 | 
            +
            缙
         | 
| 2344 | 
            +
            骰
         | 
| 2345 | 
            +
            喊
         | 
| 2346 | 
            +
            悉
         | 
| 2347 | 
            +
            砻
         | 
| 2348 | 
            +
            坷
         | 
| 2349 | 
            +
            艇
         | 
| 2350 | 
            +
            赁
         | 
| 2351 | 
            +
            界
         | 
| 2352 | 
            +
            谤
         | 
| 2353 | 
            +
            纣
         | 
| 2354 | 
            +
            宴
         | 
| 2355 | 
            +
            晃
         | 
| 2356 | 
            +
            茹
         | 
| 2357 | 
            +
            归
         | 
| 2358 | 
            +
            饭
         | 
| 2359 | 
            +
            梢
         | 
| 2360 | 
            +
            铡
         | 
| 2361 | 
            +
            街
         | 
| 2362 | 
            +
            抄
         | 
| 2363 | 
            +
            肼
         | 
| 2364 | 
            +
            鬟
         | 
| 2365 | 
            +
            苯
         | 
| 2366 | 
            +
            颂
         | 
| 2367 | 
            +
            撷
         | 
| 2368 | 
            +
            戈
         | 
| 2369 | 
            +
            炒
         | 
| 2370 | 
            +
            咆
         | 
| 2371 | 
            +
            茭
         | 
| 2372 | 
            +
            瘙
         | 
| 2373 | 
            +
            负
         | 
| 2374 | 
            +
            仰
         | 
| 2375 | 
            +
            客
         | 
| 2376 | 
            +
            琉
         | 
| 2377 | 
            +
            铢
         | 
| 2378 | 
            +
            封
         | 
| 2379 | 
            +
            卑
         | 
| 2380 | 
            +
            珥
         | 
| 2381 | 
            +
            椿
         | 
| 2382 | 
            +
            镧
         | 
| 2383 | 
            +
            窨
         | 
| 2384 | 
            +
            鬲
         | 
| 2385 | 
            +
            寿
         | 
| 2386 | 
            +
            御
         | 
| 2387 | 
            +
            袤
         | 
| 2388 | 
            +
            铃
         | 
| 2389 | 
            +
            萎
         | 
| 2390 | 
            +
            砖
         | 
| 2391 | 
            +
            餮
         | 
| 2392 | 
            +
            脒
         | 
| 2393 | 
            +
            裳
         | 
| 2394 | 
            +
            肪
         | 
| 2395 | 
            +
            孕
         | 
| 2396 | 
            +
            嫣
         | 
| 2397 | 
            +
            馗
         | 
| 2398 | 
            +
            嵇
         | 
| 2399 | 
            +
            恳
         | 
| 2400 | 
            +
            氯
         | 
| 2401 | 
            +
            江
         | 
| 2402 | 
            +
            石
         | 
| 2403 | 
            +
            褶
         | 
| 2404 | 
            +
            冢
         | 
| 2405 | 
            +
            祸
         | 
| 2406 | 
            +
            阻
         | 
| 2407 | 
            +
            狈
         | 
| 2408 | 
            +
            羞
         | 
| 2409 | 
            +
            银
         | 
| 2410 | 
            +
            靳
         | 
| 2411 | 
            +
            透
         | 
| 2412 | 
            +
            咳
         | 
| 2413 | 
            +
            叼
         | 
| 2414 | 
            +
            敷
         | 
| 2415 | 
            +
            芷
         | 
| 2416 | 
            +
            啥
         | 
| 2417 | 
            +
            它
         | 
| 2418 | 
            +
            瓤
         | 
| 2419 | 
            +
            兰
         | 
| 2420 | 
            +
            痘
         | 
| 2421 | 
            +
            懊
         | 
| 2422 | 
            +
            逑
         | 
| 2423 | 
            +
            肌
         | 
| 2424 | 
            +
            往
         | 
| 2425 | 
            +
            捺
         | 
| 2426 | 
            +
            坊
         | 
| 2427 | 
            +
            甩
         | 
| 2428 | 
            +
            呻
         | 
| 2429 | 
            +
            〃
         | 
| 2430 | 
            +
            沦
         | 
| 2431 | 
            +
            忘
         | 
| 2432 | 
            +
            膻
         | 
| 2433 | 
            +
            祟
         | 
| 2434 | 
            +
            菅
         | 
| 2435 | 
            +
            剧
         | 
| 2436 | 
            +
            崆
         | 
| 2437 | 
            +
            智
         | 
| 2438 | 
            +
            坯
         | 
| 2439 | 
            +
            臧
         | 
| 2440 | 
            +
            霍
         | 
| 2441 | 
            +
            墅
         | 
| 2442 | 
            +
            攻
         | 
| 2443 | 
            +
            眯
         | 
| 2444 | 
            +
            倘
         | 
| 2445 | 
            +
            拢
         | 
| 2446 | 
            +
            骠
         | 
| 2447 | 
            +
            铐
         | 
| 2448 | 
            +
            庭
         | 
| 2449 | 
            +
            岙
         | 
| 2450 | 
            +
            瓠
         | 
| 2451 | 
            +
            ′
         | 
| 2452 | 
            +
            缺
         | 
| 2453 | 
            +
            泥
         | 
| 2454 | 
            +
            迢
         | 
| 2455 | 
            +
            捶
         | 
| 2456 | 
            +
            ?
         | 
| 2457 | 
            +
            ?
         | 
| 2458 | 
            +
            郏
         | 
| 2459 | 
            +
            喙
         | 
| 2460 | 
            +
            掷
         | 
| 2461 | 
            +
            沌
         | 
| 2462 | 
            +
            纯
         | 
| 2463 | 
            +
            秘
         | 
| 2464 | 
            +
            种
         | 
| 2465 | 
            +
            听
         | 
| 2466 | 
            +
            绘
         | 
| 2467 | 
            +
            固
         | 
| 2468 | 
            +
            螨
         | 
| 2469 | 
            +
            团
         | 
| 2470 | 
            +
            香
         | 
| 2471 | 
            +
            盗
         | 
| 2472 | 
            +
            妒
         | 
| 2473 | 
            +
            埚
         | 
| 2474 | 
            +
            蓝
         | 
| 2475 | 
            +
            拖
         | 
| 2476 | 
            +
            旱
         | 
| 2477 | 
            +
            荞
         | 
| 2478 | 
            +
            铀
         | 
| 2479 | 
            +
            血
         | 
| 2480 | 
            +
            遏
         | 
| 2481 | 
            +
            汲
         | 
| 2482 | 
            +
            辰
         | 
| 2483 | 
            +
            叩
         | 
| 2484 | 
            +
            拽
         | 
| 2485 | 
            +
            幅
         | 
| 2486 | 
            +
            硬
         | 
| 2487 | 
            +
            惶
         | 
| 2488 | 
            +
            桀
         | 
| 2489 | 
            +
            漠
         | 
| 2490 | 
            +
            措
         | 
| 2491 | 
            +
            泼
         | 
| 2492 | 
            +
            唑
         | 
| 2493 | 
            +
            齐
         | 
| 2494 | 
            +
            肾
         | 
| 2495 | 
            +
            念
         | 
| 2496 | 
            +
            酱
         | 
| 2497 | 
            +
            虚
         | 
| 2498 | 
            +
            屁
         | 
| 2499 | 
            +
            耶
         | 
| 2500 | 
            +
            旗
         | 
| 2501 | 
            +
            砦
         | 
| 2502 | 
            +
            闵
         | 
| 2503 | 
            +
            婉
         | 
| 2504 | 
            +
            馆
         | 
| 2505 | 
            +
            拭
         | 
| 2506 | 
            +
            绅
         | 
| 2507 | 
            +
            韧
         | 
| 2508 | 
            +
            忏
         | 
| 2509 | 
            +
            窝
         | 
| 2510 | 
            +
            醋
         | 
| 2511 | 
            +
            葺
         | 
| 2512 | 
            +
            顾
         | 
| 2513 | 
            +
            辞
         | 
| 2514 | 
            +
            倜
         | 
| 2515 | 
            +
            堆
         | 
| 2516 | 
            +
            辋
         | 
| 2517 | 
            +
            逆
         | 
| 2518 | 
            +
            玟
         | 
| 2519 | 
            +
            贱
         | 
| 2520 | 
            +
            疾
         | 
| 2521 | 
            +
            董
         | 
| 2522 | 
            +
            惘
         | 
| 2523 | 
            +
            倌
         | 
| 2524 | 
            +
            锕
         | 
| 2525 | 
            +
            淘
         | 
| 2526 | 
            +
            嘀
         | 
| 2527 | 
            +
            莽
         | 
| 2528 | 
            +
            俭
         | 
| 2529 | 
            +
            笏
         | 
| 2530 | 
            +
            绑
         | 
| 2531 | 
            +
            鲷
         | 
| 2532 | 
            +
            杈
         | 
| 2533 | 
            +
            择
         | 
| 2534 | 
            +
            蟀
         | 
| 2535 | 
            +
            粥
         | 
| 2536 | 
            +
            嗯
         | 
| 2537 | 
            +
            驰
         | 
| 2538 | 
            +
            逾
         | 
| 2539 | 
            +
            案
         | 
| 2540 | 
            +
            谪
         | 
| 2541 | 
            +
            褓
         | 
| 2542 | 
            +
            胫
         | 
| 2543 | 
            +
            哩
         | 
| 2544 | 
            +
            昕
         | 
| 2545 | 
            +
            颚
         | 
| 2546 | 
            +
            鲢
         | 
| 2547 | 
            +
            绠
         | 
| 2548 | 
            +
            躺
         | 
| 2549 | 
            +
            鹄
         | 
| 2550 | 
            +
            崂
         | 
| 2551 | 
            +
            儒
         | 
| 2552 | 
            +
            俨
         | 
| 2553 | 
            +
            丝
         | 
| 2554 | 
            +
            尕
         | 
| 2555 | 
            +
            泌
         | 
| 2556 | 
            +
            啊
         | 
| 2557 | 
            +
            萸
         | 
| 2558 | 
            +
            彰
         | 
| 2559 | 
            +
            幺
         | 
| 2560 | 
            +
            吟
         | 
| 2561 | 
            +
            骄
         | 
| 2562 | 
            +
            苣
         | 
| 2563 | 
            +
            弦
         | 
| 2564 | 
            +
            脊
         | 
| 2565 | 
            +
            瑰
         | 
| 2566 | 
            +
            〈
         | 
| 2567 | 
            +
            诛
         | 
| 2568 | 
            +
            镁
         | 
| 2569 | 
            +
            析
         | 
| 2570 | 
            +
            闪
         | 
| 2571 | 
            +
            剪
         | 
| 2572 | 
            +
            侧
         | 
| 2573 | 
            +
            哟
         | 
| 2574 | 
            +
            框
         | 
| 2575 | 
            +
            螃
         | 
| 2576 | 
            +
            守
         | 
| 2577 | 
            +
            嬗
         | 
| 2578 | 
            +
            燕
         | 
| 2579 | 
            +
            狭
         | 
| 2580 | 
            +
            铈
         | 
| 2581 | 
            +
            缮
         | 
| 2582 | 
            +
            概
         | 
| 2583 | 
            +
            迳
         | 
| 2584 | 
            +
            痧
         | 
| 2585 | 
            +
            鲲
         | 
| 2586 | 
            +
            俯
         | 
| 2587 | 
            +
            售
         | 
| 2588 | 
            +
            笼
         | 
| 2589 | 
            +
            痣
         | 
| 2590 | 
            +
            扉
         | 
| 2591 | 
            +
            挖
         | 
| 2592 | 
            +
            满
         | 
| 2593 | 
            +
            咋
         | 
| 2594 | 
            +
            援
         | 
| 2595 | 
            +
            邱
         | 
| 2596 | 
            +
            扇
         | 
| 2597 | 
            +
            歪
         | 
| 2598 | 
            +
            便
         | 
| 2599 | 
            +
            玑
         | 
| 2600 | 
            +
            绦
         | 
| 2601 | 
            +
            峡
         | 
| 2602 | 
            +
            蛇
         | 
| 2603 | 
            +
            叨
         | 
| 2604 | 
            +
            〖
         | 
| 2605 | 
            +
            泽
         | 
| 2606 | 
            +
            胃
         | 
| 2607 | 
            +
            斓
         | 
| 2608 | 
            +
            喋
         | 
| 2609 | 
            +
            怂
         | 
| 2610 | 
            +
            坟
         | 
| 2611 | 
            +
            猪
         | 
| 2612 | 
            +
            该
         | 
| 2613 | 
            +
            蚬
         | 
| 2614 | 
            +
            炕
         | 
| 2615 | 
            +
            弥
         | 
| 2616 | 
            +
            赞
         | 
| 2617 | 
            +
            棣
         | 
| 2618 | 
            +
            晔
         | 
| 2619 | 
            +
            娠
         | 
| 2620 | 
            +
            挲
         | 
| 2621 | 
            +
            狡
         | 
| 2622 | 
            +
            创
         | 
| 2623 | 
            +
            疖
         | 
| 2624 | 
            +
            铕
         | 
| 2625 | 
            +
            镭
         | 
| 2626 | 
            +
            稷
         | 
| 2627 | 
            +
            挫
         | 
| 2628 | 
            +
            弭
         | 
| 2629 | 
            +
            啾
         | 
| 2630 | 
            +
            翔
         | 
| 2631 | 
            +
            粉
         | 
| 2632 | 
            +
            履
         | 
| 2633 | 
            +
            苘
         | 
| 2634 | 
            +
            哦
         | 
| 2635 | 
            +
            楼
         | 
| 2636 | 
            +
            秕
         | 
| 2637 | 
            +
            铂
         | 
| 2638 | 
            +
            土
         | 
| 2639 | 
            +
            锣
         | 
| 2640 | 
            +
            瘟
         | 
| 2641 | 
            +
            挣
         | 
| 2642 | 
            +
            栉
         | 
| 2643 | 
            +
            习
         | 
| 2644 | 
            +
            享
         | 
| 2645 | 
            +
            桢
         | 
| 2646 | 
            +
            袅
         | 
| 2647 | 
            +
            磨
         | 
| 2648 | 
            +
            桂
         | 
| 2649 | 
            +
            谦
         | 
| 2650 | 
            +
            延
         | 
| 2651 | 
            +
            坚
         | 
| 2652 | 
            +
            蔚
         | 
| 2653 | 
            +
            噗
         | 
| 2654 | 
            +
            署
         | 
| 2655 | 
            +
            谟
         | 
| 2656 | 
            +
            猬
         | 
| 2657 | 
            +
            钎
         | 
| 2658 | 
            +
            恐
         | 
| 2659 | 
            +
            嬉
         | 
| 2660 | 
            +
            雒
         | 
| 2661 | 
            +
            倦
         | 
| 2662 | 
            +
            衅
         | 
| 2663 | 
            +
            亏
         | 
| 2664 | 
            +
            璩
         | 
| 2665 | 
            +
            睹
         | 
| 2666 | 
            +
            刻
         | 
| 2667 | 
            +
            殿
         | 
| 2668 | 
            +
            王
         | 
| 2669 | 
            +
            算
         | 
| 2670 | 
            +
            雕
         | 
| 2671 | 
            +
            麻
         | 
| 2672 | 
            +
            丘
         | 
| 2673 | 
            +
            柯
         | 
| 2674 | 
            +
            骆
         | 
| 2675 | 
            +
            丸
         | 
| 2676 | 
            +
            塍
         | 
| 2677 | 
            +
            谚
         | 
| 2678 | 
            +
            添
         | 
| 2679 | 
            +
            鲈
         | 
| 2680 | 
            +
            垓
         | 
| 2681 | 
            +
            桎
         | 
| 2682 | 
            +
            蚯
         | 
| 2683 | 
            +
            芥
         | 
| 2684 | 
            +
            予
         | 
| 2685 | 
            +
            飕
         | 
| 2686 | 
            +
            镦
         | 
| 2687 | 
            +
            谌
         | 
| 2688 | 
            +
            窗
         | 
| 2689 | 
            +
            醚
         | 
| 2690 | 
            +
            菀
         | 
| 2691 | 
            +
            亮
         | 
| 2692 | 
            +
            搪
         | 
| 2693 | 
            +
            莺
         | 
| 2694 | 
            +
            蒿
         | 
| 2695 | 
            +
            羁
         | 
| 2696 | 
            +
            足
         | 
| 2697 | 
            +
            J
         | 
| 2698 | 
            +
            真
         | 
| 2699 | 
            +
            轶
         | 
| 2700 | 
            +
            悬
         | 
| 2701 | 
            +
            衷
         | 
| 2702 | 
            +
            靛
         | 
| 2703 | 
            +
            翊
         | 
| 2704 | 
            +
            掩
         | 
| 2705 | 
            +
            哒
         | 
| 2706 | 
            +
            炅
         | 
| 2707 | 
            +
            掐
         | 
| 2708 | 
            +
            冼
         | 
| 2709 | 
            +
            妮
         | 
| 2710 | 
            +
            l
         | 
| 2711 | 
            +
            谐
         | 
| 2712 | 
            +
            稚
         | 
| 2713 | 
            +
            荆
         | 
| 2714 | 
            +
            擒
         | 
| 2715 | 
            +
            犯
         | 
| 2716 | 
            +
            陵
         | 
| 2717 | 
            +
            虏
         | 
| 2718 | 
            +
            浓
         | 
| 2719 | 
            +
            崽
         | 
| 2720 | 
            +
            刍
         | 
| 2721 | 
            +
            陌
         | 
| 2722 | 
            +
            傻
         | 
| 2723 | 
            +
            孜
         | 
| 2724 | 
            +
            千
         | 
| 2725 | 
            +
            靖
         | 
| 2726 | 
            +
            演
         | 
| 2727 | 
            +
            矜
         | 
| 2728 | 
            +
            钕
         | 
| 2729 | 
            +
            煽
         | 
| 2730 | 
            +
            杰
         | 
| 2731 | 
            +
            酗
         | 
| 2732 | 
            +
            渗
         | 
| 2733 | 
            +
            伞
         | 
| 2734 | 
            +
            栋
         | 
| 2735 | 
            +
            俗
         | 
| 2736 | 
            +
            泫
         | 
| 2737 | 
            +
            戍
         | 
| 2738 | 
            +
            罕
         | 
| 2739 | 
            +
            沾
         | 
| 2740 | 
            +
            疽
         | 
| 2741 | 
            +
            灏
         | 
| 2742 | 
            +
            煦
         | 
| 2743 | 
            +
            芬
         | 
| 2744 | 
            +
            磴
         | 
| 2745 | 
            +
            叱
         | 
| 2746 | 
            +
            阱
         | 
| 2747 | 
            +
            榉
         | 
| 2748 | 
            +
            湃
         | 
| 2749 | 
            +
            蜀
         | 
| 2750 | 
            +
            叉
         | 
| 2751 | 
            +
            醒
         | 
| 2752 | 
            +
            彪
         | 
| 2753 | 
            +
            租
         | 
| 2754 | 
            +
            郡
         | 
| 2755 | 
            +
            篷
         | 
| 2756 | 
            +
            屎
         | 
| 2757 | 
            +
            良
         | 
| 2758 | 
            +
            垢
         | 
| 2759 | 
            +
            隗
         | 
| 2760 | 
            +
            弱
         | 
| 2761 | 
            +
            陨
         | 
| 2762 | 
            +
            峪
         | 
| 2763 | 
            +
            砷
         | 
| 2764 | 
            +
            掴
         | 
| 2765 | 
            +
            颁
         | 
| 2766 | 
            +
            胎
         | 
| 2767 | 
            +
            雯
         | 
| 2768 | 
            +
            绵
         | 
| 2769 | 
            +
            贬
         | 
| 2770 | 
            +
            沐
         | 
| 2771 | 
            +
            撵
         | 
| 2772 | 
            +
            隘
         | 
| 2773 | 
            +
            篙
         | 
| 2774 | 
            +
            暖
         | 
| 2775 | 
            +
            曹
         | 
| 2776 | 
            +
            陡
         | 
| 2777 | 
            +
            栓
         | 
| 2778 | 
            +
            填
         | 
| 2779 | 
            +
            臼
         | 
| 2780 | 
            +
            彦
         | 
| 2781 | 
            +
            瓶
         | 
| 2782 | 
            +
            琪
         | 
| 2783 | 
            +
            潼
         | 
| 2784 | 
            +
            哪
         | 
| 2785 | 
            +
            鸡
         | 
| 2786 | 
            +
            摩
         | 
| 2787 | 
            +
            啦
         | 
| 2788 | 
            +
            俟
         | 
| 2789 | 
            +
            锋
         | 
| 2790 | 
            +
            域
         | 
| 2791 | 
            +
            耻
         | 
| 2792 | 
            +
            蔫
         | 
| 2793 | 
            +
            疯
         | 
| 2794 | 
            +
            纹
         | 
| 2795 | 
            +
            撇
         | 
| 2796 | 
            +
            毒
         | 
| 2797 | 
            +
            绶
         | 
| 2798 | 
            +
            痛
         | 
| 2799 | 
            +
            酯
         | 
| 2800 | 
            +
            忍
         | 
| 2801 | 
            +
            爪
         | 
| 2802 | 
            +
            赳
         | 
| 2803 | 
            +
            歆
         | 
| 2804 | 
            +
            嘹
         | 
| 2805 | 
            +
            辕
         | 
| 2806 | 
            +
            烈
         | 
| 2807 | 
            +
            册
         | 
| 2808 | 
            +
            朴
         | 
| 2809 | 
            +
            钱
         | 
| 2810 | 
            +
            吮
         | 
| 2811 | 
            +
            毯
         | 
| 2812 | 
            +
            癜
         | 
| 2813 | 
            +
            娃
         | 
| 2814 | 
            +
            谀
         | 
| 2815 | 
            +
            邵
         | 
| 2816 | 
            +
            厮
         | 
| 2817 | 
            +
            炽
         | 
| 2818 | 
            +
            璞
         | 
| 2819 | 
            +
            邃
         | 
| 2820 | 
            +
            丐
         | 
| 2821 | 
            +
            追
         | 
| 2822 | 
            +
            词
         | 
| 2823 | 
            +
            瓒
         | 
| 2824 | 
            +
            忆
         | 
| 2825 | 
            +
            轧
         | 
| 2826 | 
            +
            芫
         | 
| 2827 | 
            +
            谯
         | 
| 2828 | 
            +
            喷
         | 
| 2829 | 
            +
            弟
         | 
| 2830 | 
            +
            半
         | 
| 2831 | 
            +
            冕
         | 
| 2832 | 
            +
            裙
         | 
| 2833 | 
            +
            掖
         | 
| 2834 | 
            +
            墉
         | 
| 2835 | 
            +
            绮
         | 
| 2836 | 
            +
            寝
         | 
| 2837 | 
            +
            苔
         | 
| 2838 | 
            +
            势
         | 
| 2839 | 
            +
            顷
         | 
| 2840 | 
            +
            褥
         | 
| 2841 | 
            +
            切
         | 
| 2842 | 
            +
            衮
         | 
| 2843 | 
            +
            君
         | 
| 2844 | 
            +
            佳
         | 
| 2845 | 
            +
            嫒
         | 
| 2846 | 
            +
            蚩
         | 
| 2847 | 
            +
            霞
         | 
| 2848 | 
            +
            佚
         | 
| 2849 | 
            +
            洙
         | 
| 2850 | 
            +
            逊
         | 
| 2851 | 
            +
            镖
         | 
| 2852 | 
            +
            暹
         | 
| 2853 | 
            +
            唛
         | 
| 2854 | 
            +
            &
         | 
| 2855 | 
            +
            殒
         | 
| 2856 | 
            +
            顶
         | 
| 2857 | 
            +
            碗
         | 
| 2858 | 
            +
            獗
         | 
| 2859 | 
            +
            轭
         | 
| 2860 | 
            +
            铺
         | 
| 2861 | 
            +
            蛊
         | 
| 2862 | 
            +
            废
         | 
| 2863 | 
            +
            恹
         | 
| 2864 | 
            +
            汨
         | 
| 2865 | 
            +
            崩
         | 
| 2866 | 
            +
            珍
         | 
| 2867 | 
            +
            那
         | 
| 2868 | 
            +
            杵
         | 
| 2869 | 
            +
            曲
         | 
| 2870 | 
            +
            纺
         | 
| 2871 | 
            +
            夏
         | 
| 2872 | 
            +
            薰
         | 
| 2873 | 
            +
            傀
         | 
| 2874 | 
            +
            闳
         | 
| 2875 | 
            +
            淬
         | 
| 2876 | 
            +
            姘
         | 
| 2877 | 
            +
            舀
         | 
| 2878 | 
            +
            拧
         | 
| 2879 | 
            +
            卷
         | 
| 2880 | 
            +
            楂
         | 
| 2881 | 
            +
            恍
         | 
| 2882 | 
            +
            讪
         | 
| 2883 | 
            +
            厩
         | 
| 2884 | 
            +
            寮
         | 
| 2885 | 
            +
            篪
         | 
| 2886 | 
            +
            赓
         | 
| 2887 | 
            +
            乘
         | 
| 2888 | 
            +
            灭
         | 
| 2889 | 
            +
            盅
         | 
| 2890 | 
            +
            鞣
         | 
| 2891 | 
            +
            沟
         | 
| 2892 | 
            +
            慎
         | 
| 2893 | 
            +
            挂
         | 
| 2894 | 
            +
            饺
         | 
| 2895 | 
            +
            鼾
         | 
| 2896 | 
            +
            杳
         | 
| 2897 | 
            +
            树
         | 
| 2898 | 
            +
            缨
         | 
| 2899 | 
            +
            丛
         | 
| 2900 | 
            +
            絮
         | 
| 2901 | 
            +
            娌
         | 
| 2902 | 
            +
            臻
         | 
| 2903 | 
            +
            嗳
         | 
| 2904 | 
            +
            篡
         | 
| 2905 | 
            +
            侩
         | 
| 2906 | 
            +
            述
         | 
| 2907 | 
            +
            衰
         | 
| 2908 | 
            +
            矛
         | 
| 2909 | 
            +
            圈
         | 
| 2910 | 
            +
            蚜
         | 
| 2911 | 
            +
            匕
         | 
| 2912 | 
            +
            筹
         | 
| 2913 | 
            +
            匿
         | 
| 2914 | 
            +
            濞
         | 
| 2915 | 
            +
            晨
         | 
| 2916 | 
            +
            叶
         | 
| 2917 | 
            +
            骋
         | 
| 2918 | 
            +
            郝
         | 
| 2919 | 
            +
            挚
         | 
| 2920 | 
            +
            蚴
         | 
| 2921 | 
            +
            滞
         | 
| 2922 | 
            +
            增
         | 
| 2923 | 
            +
            侍
         | 
| 2924 | 
            +
            描
         | 
| 2925 | 
            +
            瓣
         | 
| 2926 | 
            +
            吖
         | 
| 2927 | 
            +
            嫦
         | 
| 2928 | 
            +
            蟒
         | 
| 2929 | 
            +
            匾
         | 
| 2930 | 
            +
            圣
         | 
| 2931 | 
            +
            赌
         | 
| 2932 | 
            +
            毡
         | 
| 2933 | 
            +
            癞
         | 
| 2934 | 
            +
            恺
         | 
| 2935 | 
            +
            百
         | 
| 2936 | 
            +
            曳
         | 
| 2937 | 
            +
            需
         | 
| 2938 | 
            +
            篓
         | 
| 2939 | 
            +
            肮
         | 
| 2940 | 
            +
            庖
         | 
| 2941 | 
            +
            帏
         | 
| 2942 | 
            +
            卿
         | 
| 2943 | 
            +
            驿
         | 
| 2944 | 
            +
            遗
         | 
| 2945 | 
            +
            蹬
         | 
| 2946 | 
            +
            鬓
         | 
| 2947 | 
            +
            骡
         | 
| 2948 | 
            +
            歉
         | 
| 2949 | 
            +
            芎
         | 
| 2950 | 
            +
            胳
         | 
| 2951 | 
            +
            屐
         | 
| 2952 | 
            +
            禽
         | 
| 2953 | 
            +
            烦
         | 
| 2954 | 
            +
            晌
         | 
| 2955 | 
            +
            寄
         | 
| 2956 | 
            +
            媾
         | 
| 2957 | 
            +
            狄
         | 
| 2958 | 
            +
            翡
         | 
| 2959 | 
            +
            苒
         | 
| 2960 | 
            +
            船
         | 
| 2961 | 
            +
            廉
         | 
| 2962 | 
            +
            终
         | 
| 2963 | 
            +
            痞
         | 
| 2964 | 
            +
            殇
         | 
| 2965 | 
            +
            々
         | 
| 2966 | 
            +
            畦
         | 
| 2967 | 
            +
            饶
         | 
| 2968 | 
            +
            改
         | 
| 2969 | 
            +
            拆
         | 
| 2970 | 
            +
            悻
         | 
| 2971 | 
            +
            萄
         | 
| 2972 | 
            +
            £
         | 
| 2973 | 
            +
            瓿
         | 
| 2974 | 
            +
            乃
         | 
| 2975 | 
            +
            訾
         | 
| 2976 | 
            +
            桅
         | 
| 2977 | 
            +
            匮
         | 
| 2978 | 
            +
            溧
         | 
| 2979 | 
            +
            拥
         | 
| 2980 | 
            +
            纱
         | 
| 2981 | 
            +
            铍
         | 
| 2982 | 
            +
            骗
         | 
| 2983 | 
            +
            蕃
         | 
| 2984 | 
            +
            龋
         | 
| 2985 | 
            +
            缬
         | 
| 2986 | 
            +
            父
         | 
| 2987 | 
            +
            佐
         | 
| 2988 | 
            +
            疚
         | 
| 2989 | 
            +
            栎
         | 
| 2990 | 
            +
            醍
         | 
| 2991 | 
            +
            掳
         | 
| 2992 | 
            +
            蓄
         | 
| 2993 | 
            +
            x
         | 
| 2994 | 
            +
            惆
         | 
| 2995 | 
            +
            颜
         | 
| 2996 | 
            +
            鲆
         | 
| 2997 | 
            +
            榆
         | 
| 2998 | 
            +
            〔
         | 
| 2999 | 
            +
            猎
         | 
| 3000 | 
            +
            敌
         | 
| 3001 | 
            +
            暴
         | 
| 3002 | 
            +
            谥
         | 
| 3003 | 
            +
            鲫
         | 
| 3004 | 
            +
            贾
         | 
| 3005 | 
            +
            罗
         | 
| 3006 | 
            +
            玻
         | 
| 3007 | 
            +
            缄
         | 
| 3008 | 
            +
            扦
         | 
| 3009 | 
            +
            芪
         | 
| 3010 | 
            +
            癣
         | 
| 3011 | 
            +
            落
         | 
| 3012 | 
            +
            徒
         | 
| 3013 | 
            +
            臾
         | 
| 3014 | 
            +
            恿
         | 
| 3015 | 
            +
            猩
         | 
| 3016 | 
            +
            托
         | 
| 3017 | 
            +
            邴
         | 
| 3018 | 
            +
            肄
         | 
| 3019 | 
            +
            牵
         | 
| 3020 | 
            +
            春
         | 
| 3021 | 
            +
            陛
         | 
| 3022 | 
            +
            耀
         | 
| 3023 | 
            +
            刊
         | 
| 3024 | 
            +
            拓
         | 
| 3025 | 
            +
            蓓
         | 
| 3026 | 
            +
            邳
         | 
| 3027 | 
            +
            堕
         | 
| 3028 | 
            +
            寇
         | 
| 3029 | 
            +
            枉
         | 
| 3030 | 
            +
            淌
         | 
| 3031 | 
            +
            啡
         | 
| 3032 | 
            +
            湄
         | 
| 3033 | 
            +
            兽
         | 
| 3034 | 
            +
            酷
         | 
| 3035 | 
            +
            萼
         | 
| 3036 | 
            +
            碚
         | 
| 3037 | 
            +
            濠
         | 
| 3038 | 
            +
            萤
         | 
| 3039 | 
            +
            夹
         | 
| 3040 | 
            +
            旬
         | 
| 3041 | 
            +
            戮
         | 
| 3042 | 
            +
            梭
         | 
| 3043 | 
            +
            琥
         | 
| 3044 | 
            +
            椭
         | 
| 3045 | 
            +
            昔
         | 
| 3046 | 
            +
            勺
         | 
| 3047 | 
            +
            蜊
         | 
| 3048 | 
            +
            绐
         | 
| 3049 | 
            +
            晚
         | 
| 3050 | 
            +
            孺
         | 
| 3051 | 
            +
            僵
         | 
| 3052 | 
            +
            宣
         | 
| 3053 | 
            +
            摄
         | 
| 3054 | 
            +
            冽
         | 
| 3055 | 
            +
            旨
         | 
| 3056 | 
            +
            萌
         | 
| 3057 | 
            +
            忙
         | 
| 3058 | 
            +
            蚤
         | 
| 3059 | 
            +
            眉
         | 
| 3060 | 
            +
            噼
         | 
| 3061 | 
            +
            蟑
         | 
| 3062 | 
            +
            付
         | 
| 3063 | 
            +
            契
         | 
| 3064 | 
            +
            瓜
         | 
| 3065 | 
            +
            悼
         | 
| 3066 | 
            +
            颡
         | 
| 3067 | 
            +
            壁
         | 
| 3068 | 
            +
            曾
         | 
| 3069 | 
            +
            窕
         | 
| 3070 | 
            +
            颢
         | 
| 3071 | 
            +
            澎
         | 
| 3072 | 
            +
            仿
         | 
| 3073 | 
            +
            俑
         | 
| 3074 | 
            +
            浑
         | 
| 3075 | 
            +
            嵌
         | 
| 3076 | 
            +
            浣
         | 
| 3077 | 
            +
            乍
         | 
| 3078 | 
            +
            碌
         | 
| 3079 | 
            +
            褪
         | 
| 3080 | 
            +
            乱
         | 
| 3081 | 
            +
            蔟
         | 
| 3082 | 
            +
            隙
         | 
| 3083 | 
            +
            玩
         | 
| 3084 | 
            +
            剐
         | 
| 3085 | 
            +
            葫
         | 
| 3086 | 
            +
            箫
         | 
| 3087 | 
            +
            纲
         | 
| 3088 | 
            +
            围
         | 
| 3089 | 
            +
            伐
         | 
| 3090 | 
            +
            决
         | 
| 3091 | 
            +
            伙
         | 
| 3092 | 
            +
            漩
         | 
| 3093 | 
            +
            瑟
         | 
| 3094 | 
            +
            刑
         | 
| 3095 | 
            +
            肓
         | 
| 3096 | 
            +
            镳
         | 
| 3097 | 
            +
            缓
         | 
| 3098 | 
            +
            蹭
         | 
| 3099 | 
            +
            氨
         | 
| 3100 | 
            +
            皓
         | 
| 3101 | 
            +
            典
         | 
| 3102 | 
            +
            畲
         | 
| 3103 | 
            +
            坍
         | 
| 3104 | 
            +
            铑
         | 
| 3105 | 
            +
            檐
         | 
| 3106 | 
            +
            塑
         | 
| 3107 | 
            +
            洞
         | 
| 3108 | 
            +
            倬
         | 
| 3109 | 
            +
            储
         | 
| 3110 | 
            +
            胴
         | 
| 3111 | 
            +
            淳
         | 
| 3112 | 
            +
            戾
         | 
| 3113 | 
            +
            吐
         | 
| 3114 | 
            +
            灼
         | 
| 3115 | 
            +
            惺
         | 
| 3116 | 
            +
            妙
         | 
| 3117 | 
            +
            毕
         | 
| 3118 | 
            +
            珐
         | 
| 3119 | 
            +
            缈
         | 
| 3120 | 
            +
            虱
         | 
| 3121 | 
            +
            盖
         | 
| 3122 | 
            +
            羰
         | 
| 3123 | 
            +
            鸿
         | 
| 3124 | 
            +
            磅
         | 
| 3125 | 
            +
            谓
         | 
| 3126 | 
            +
            髅
         | 
| 3127 | 
            +
            娴
         | 
| 3128 | 
            +
            苴
         | 
| 3129 | 
            +
            唷
         | 
| 3130 | 
            +
            蚣
         | 
| 3131 | 
            +
            霹
         | 
| 3132 | 
            +
            抨
         | 
| 3133 | 
            +
            贤
         | 
| 3134 | 
            +
            唠
         | 
| 3135 | 
            +
            犬
         | 
| 3136 | 
            +
            誓
         | 
| 3137 | 
            +
            逍
         | 
| 3138 | 
            +
            庠
         | 
| 3139 | 
            +
            逼
         | 
| 3140 | 
            +
            麓
         | 
| 3141 | 
            +
            籼
         | 
| 3142 | 
            +
            釉
         | 
| 3143 | 
            +
            呜
         | 
| 3144 | 
            +
            碧
         | 
| 3145 | 
            +
            秧
         | 
| 3146 | 
            +
            氩
         | 
| 3147 | 
            +
            摔
         | 
| 3148 | 
            +
            霄
         | 
| 3149 | 
            +
            穸
         | 
| 3150 | 
            +
            纨
         | 
| 3151 | 
            +
            辟
         | 
| 3152 | 
            +
            妈
         | 
| 3153 | 
            +
            映
         | 
| 3154 | 
            +
            完
         | 
| 3155 | 
            +
            牛
         | 
| 3156 | 
            +
            缴
         | 
| 3157 | 
            +
            嗷
         | 
| 3158 | 
            +
            炊
         | 
| 3159 | 
            +
            恩
         | 
| 3160 | 
            +
            荔
         | 
| 3161 | 
            +
            茆
         | 
| 3162 | 
            +
            掉
         | 
| 3163 | 
            +
            紊
         | 
| 3164 | 
            +
            慌
         | 
| 3165 | 
            +
            莓
         | 
| 3166 | 
            +
            羟
         | 
| 3167 | 
            +
            阙
         | 
| 3168 | 
            +
            萁
         | 
| 3169 | 
            +
            磐
         | 
| 3170 | 
            +
            另
         | 
| 3171 | 
            +
            蕹
         | 
| 3172 | 
            +
            辱
         | 
| 3173 | 
            +
            鳐
         | 
| 3174 | 
            +
            湮
         | 
| 3175 | 
            +
            吡
         | 
| 3176 | 
            +
            吩
         | 
| 3177 | 
            +
            唐
         | 
| 3178 | 
            +
            睦
         | 
| 3179 | 
            +
            垠
         | 
| 3180 | 
            +
            舒
         | 
| 3181 | 
            +
            圜
         | 
| 3182 | 
            +
            冗
         | 
| 3183 | 
            +
            瞿
         | 
| 3184 | 
            +
            溺
         | 
| 3185 | 
            +
            芾
         | 
| 3186 | 
            +
            囱
         | 
| 3187 | 
            +
            匠
         | 
| 3188 | 
            +
            僳
         | 
| 3189 | 
            +
            汐
         | 
| 3190 | 
            +
            菩
         | 
| 3191 | 
            +
            饬
         | 
| 3192 | 
            +
            漓
         | 
| 3193 | 
            +
            黑
         | 
| 3194 | 
            +
            霰
         | 
| 3195 | 
            +
            浸
         | 
| 3196 | 
            +
            濡
         | 
| 3197 | 
            +
            窥
         | 
| 3198 | 
            +
            毂
         | 
| 3199 | 
            +
            蒡
         | 
| 3200 | 
            +
            兢
         | 
| 3201 | 
            +
            驻
         | 
| 3202 | 
            +
            鹉
         | 
| 3203 | 
            +
            芮
         | 
| 3204 | 
            +
            诙
         | 
| 3205 | 
            +
            迫
         | 
| 3206 | 
            +
            雳
         | 
| 3207 | 
            +
            厂
         | 
| 3208 | 
            +
            忐
         | 
| 3209 | 
            +
            臆
         | 
| 3210 | 
            +
            猴
         | 
| 3211 | 
            +
            鸣
         | 
| 3212 | 
            +
            蚪
         | 
| 3213 | 
            +
            栈
         | 
| 3214 | 
            +
            箕
         | 
| 3215 | 
            +
            羡
         | 
| 3216 | 
            +
            渐
         | 
| 3217 | 
            +
            莆
         | 
| 3218 | 
            +
            捍
         | 
| 3219 | 
            +
            眈
         | 
| 3220 | 
            +
            哓
         | 
| 3221 | 
            +
            趴
         | 
| 3222 | 
            +
            蹼
         | 
| 3223 | 
            +
            埕
         | 
| 3224 | 
            +
            嚣
         | 
| 3225 | 
            +
            骛
         | 
| 3226 | 
            +
            宏
         | 
| 3227 | 
            +
            淄
         | 
| 3228 | 
            +
            斑
         | 
| 3229 | 
            +
            噜
         | 
| 3230 | 
            +
            严
         | 
| 3231 | 
            +
            瑛
         | 
| 3232 | 
            +
            垃
         | 
| 3233 | 
            +
            椎
         | 
| 3234 | 
            +
            诱
         | 
| 3235 | 
            +
            压
         | 
| 3236 | 
            +
            庾
         | 
| 3237 | 
            +
            绞
         | 
| 3238 | 
            +
            焘
         | 
| 3239 | 
            +
            廿
         | 
| 3240 | 
            +
            抡
         | 
| 3241 | 
            +
            迄
         | 
| 3242 | 
            +
            棘
         | 
| 3243 | 
            +
            夫
         | 
| 3244 | 
            +
            纬
         | 
| 3245 | 
            +
            锹
         | 
| 3246 | 
            +
            眨
         | 
| 3247 | 
            +
            瞌
         | 
| 3248 | 
            +
            侠
         | 
| 3249 | 
            +
            脐
         | 
| 3250 | 
            +
            竞
         | 
| 3251 | 
            +
            瀑
         | 
| 3252 | 
            +
            孳
         | 
| 3253 | 
            +
            骧
         | 
| 3254 | 
            +
            遁
         | 
| 3255 | 
            +
            姜
         | 
| 3256 | 
            +
            颦
         | 
| 3257 | 
            +
            荪
         | 
| 3258 | 
            +
            滚
         | 
| 3259 | 
            +
            萦
         | 
| 3260 | 
            +
            伪
         | 
| 3261 | 
            +
            逸
         | 
| 3262 | 
            +
            粳
         | 
| 3263 | 
            +
            爬
         | 
| 3264 | 
            +
            锁
         | 
| 3265 | 
            +
            矣
         | 
| 3266 | 
            +
            役
         | 
| 3267 | 
            +
            趣
         | 
| 3268 | 
            +
            洒
         | 
| 3269 | 
            +
            颔
         | 
| 3270 | 
            +
            诏
         | 
| 3271 | 
            +
            逐
         | 
| 3272 | 
            +
            奸
         | 
| 3273 | 
            +
            甭
         | 
| 3274 | 
            +
            惠
         | 
| 3275 | 
            +
            攀
         | 
| 3276 | 
            +
            蹄
         | 
| 3277 | 
            +
            泛
         | 
| 3278 | 
            +
            尼
         | 
| 3279 | 
            +
            拼
         | 
| 3280 | 
            +
            阮
         | 
| 3281 | 
            +
            鹰
         | 
| 3282 | 
            +
            亚
         | 
| 3283 | 
            +
            颈
         | 
| 3284 | 
            +
            惑
         | 
| 3285 | 
            +
            勒
         | 
| 3286 | 
            +
            〉
         | 
| 3287 | 
            +
            际
         | 
| 3288 | 
            +
            肛
         | 
| 3289 | 
            +
            爷
         | 
| 3290 | 
            +
            刚
         | 
| 3291 | 
            +
            钨
         | 
| 3292 | 
            +
            丰
         | 
| 3293 | 
            +
            养
         | 
| 3294 | 
            +
            冶
         | 
| 3295 | 
            +
            鲽
         | 
| 3296 | 
            +
            辉
         | 
| 3297 | 
            +
            蔻
         | 
| 3298 | 
            +
            画
         | 
| 3299 | 
            +
            覆
         | 
| 3300 | 
            +
            皴
         | 
| 3301 | 
            +
            妊
         | 
| 3302 | 
            +
            麦
         | 
| 3303 | 
            +
            返
         | 
| 3304 | 
            +
            醉
         | 
| 3305 | 
            +
            皂
         | 
| 3306 | 
            +
            擀
         | 
| 3307 | 
            +
            〗
         | 
| 3308 | 
            +
            酶
         | 
| 3309 | 
            +
            凑
         | 
| 3310 | 
            +
            粹
         | 
| 3311 | 
            +
            悟
         | 
| 3312 | 
            +
            诀
         | 
| 3313 | 
            +
            硖
         | 
| 3314 | 
            +
            港
         | 
| 3315 | 
            +
            卜
         | 
| 3316 | 
            +
            z
         | 
| 3317 | 
            +
            杀
         | 
| 3318 | 
            +
            涕
         | 
| 3319 | 
            +
            ±
         | 
| 3320 | 
            +
            舍
         | 
| 3321 | 
            +
            铠
         | 
| 3322 | 
            +
            抵
         | 
| 3323 | 
            +
            弛
         | 
| 3324 | 
            +
            段
         | 
| 3325 | 
            +
            敝
         | 
| 3326 | 
            +
            镐
         | 
| 3327 | 
            +
            奠
         | 
| 3328 | 
            +
            拂
         | 
| 3329 | 
            +
            轴
         | 
| 3330 | 
            +
            跛
         | 
| 3331 | 
            +
            袱
         | 
| 3332 | 
            +
            e
         | 
| 3333 | 
            +
            t
         | 
| 3334 | 
            +
            沉
         | 
| 3335 | 
            +
            菇
         | 
| 3336 | 
            +
            俎
         | 
| 3337 | 
            +
            薪
         | 
| 3338 | 
            +
            峦
         | 
| 3339 | 
            +
            秭
         | 
| 3340 | 
            +
            蟹
         | 
| 3341 | 
            +
            历
         | 
| 3342 | 
            +
            盟
         | 
| 3343 | 
            +
            菠
         | 
| 3344 | 
            +
            寡
         | 
| 3345 | 
            +
            液
         | 
| 3346 | 
            +
            肢
         | 
| 3347 | 
            +
            喻
         | 
| 3348 | 
            +
            染
         | 
| 3349 | 
            +
            裱
         | 
| 3350 | 
            +
            悱
         | 
| 3351 | 
            +
            抱
         | 
| 3352 | 
            +
            氙
         | 
| 3353 | 
            +
            赤
         | 
| 3354 | 
            +
            捅
         | 
| 3355 | 
            +
            猛
         | 
| 3356 | 
            +
            跑
         | 
| 3357 | 
            +
            氮
         | 
| 3358 | 
            +
            谣
         | 
| 3359 | 
            +
            仁
         | 
| 3360 | 
            +
            尺
         | 
| 3361 | 
            +
            辊
         | 
| 3362 | 
            +
            窍
         | 
| 3363 | 
            +
            烙
         | 
| 3364 | 
            +
            衍
         | 
| 3365 | 
            +
            架
         | 
| 3366 | 
            +
            擦
         | 
| 3367 | 
            +
            倏
         | 
| 3368 | 
            +
            璐
         | 
| 3369 | 
            +
            瑁
         | 
| 3370 | 
            +
            币
         | 
| 3371 | 
            +
            楞
         | 
| 3372 | 
            +
            胖
         | 
| 3373 | 
            +
            夔
         | 
| 3374 | 
            +
            趸
         | 
| 3375 | 
            +
            邛
         | 
| 3376 | 
            +
            惴
         | 
| 3377 | 
            +
            饕
         | 
| 3378 | 
            +
            虔
         | 
| 3379 | 
            +
            蝎
         | 
| 3380 | 
            +
            §
         | 
| 3381 | 
            +
            哉
         | 
| 3382 | 
            +
            贝
         | 
| 3383 | 
            +
            宽
         | 
| 3384 | 
            +
            辫
         | 
| 3385 | 
            +
            炮
         | 
| 3386 | 
            +
            扩
         | 
| 3387 | 
            +
            饲
         | 
| 3388 | 
            +
            籽
         | 
| 3389 | 
            +
            魏
         | 
| 3390 | 
            +
            菟
         | 
| 3391 | 
            +
            锰
         | 
| 3392 | 
            +
            伍
         | 
| 3393 | 
            +
            猝
         | 
| 3394 | 
            +
            末
         | 
| 3395 | 
            +
            琳
         | 
| 3396 | 
            +
            哚
         | 
| 3397 | 
            +
            蛎
         | 
| 3398 | 
            +
            邂
         | 
| 3399 | 
            +
            呀
         | 
| 3400 | 
            +
            姿
         | 
| 3401 | 
            +
            鄞
         | 
| 3402 | 
            +
            却
         | 
| 3403 | 
            +
            歧
         | 
| 3404 | 
            +
            仙
         | 
| 3405 | 
            +
            恸
         | 
| 3406 | 
            +
            椐
         | 
| 3407 | 
            +
            森
         | 
| 3408 | 
            +
            牒
         | 
| 3409 | 
            +
            寤
         | 
| 3410 | 
            +
            袒
         | 
| 3411 | 
            +
            婆
         | 
| 3412 | 
            +
            虢
         | 
| 3413 | 
            +
            雅
         | 
| 3414 | 
            +
            钉
         | 
| 3415 | 
            +
            朵
         | 
| 3416 | 
            +
            贼
         | 
| 3417 | 
            +
            欲
         | 
| 3418 | 
            +
            苞
         | 
| 3419 | 
            +
            寰
         | 
| 3420 | 
            +
            故
         | 
| 3421 | 
            +
            龚
         | 
| 3422 | 
            +
            坭
         | 
| 3423 | 
            +
            嘘
         | 
| 3424 | 
            +
            咫
         | 
| 3425 | 
            +
            礼
         | 
| 3426 | 
            +
            硷
         | 
| 3427 | 
            +
            兀
         | 
| 3428 | 
            +
            睢
         | 
| 3429 | 
            +
            汶
         | 
| 3430 | 
            +
            ’
         | 
| 3431 | 
            +
            铲
         | 
| 3432 | 
            +
            烧
         | 
| 3433 | 
            +
            绕
         | 
| 3434 | 
            +
            诃
         | 
| 3435 | 
            +
            浃
         | 
| 3436 | 
            +
            钿
         | 
| 3437 | 
            +
            哺
         | 
| 3438 | 
            +
            柜
         | 
| 3439 | 
            +
            讼
         | 
| 3440 | 
            +
            颊
         | 
| 3441 | 
            +
            璁
         | 
| 3442 | 
            +
            腔
         | 
| 3443 | 
            +
            洽
         | 
| 3444 | 
            +
            咐
         | 
| 3445 | 
            +
            脲
         | 
| 3446 | 
            +
            簌
         | 
| 3447 | 
            +
            筠
         | 
| 3448 | 
            +
            镣
         | 
| 3449 | 
            +
            玮
         | 
| 3450 | 
            +
            鞠
         | 
| 3451 | 
            +
            谁
         | 
| 3452 | 
            +
            兼
         | 
| 3453 | 
            +
            姆
         | 
| 3454 | 
            +
            挥
         | 
| 3455 | 
            +
            梯
         | 
| 3456 | 
            +
            蝴
         | 
| 3457 | 
            +
            谘
         | 
| 3458 | 
            +
            漕
         | 
| 3459 | 
            +
            刷
         | 
| 3460 | 
            +
            躏
         | 
| 3461 | 
            +
            宦
         | 
| 3462 | 
            +
            弼
         | 
| 3463 | 
            +
            b
         | 
| 3464 | 
            +
            垌
         | 
| 3465 | 
            +
            劈
         | 
| 3466 | 
            +
            麟
         | 
| 3467 | 
            +
            莉
         | 
| 3468 | 
            +
            揭
         | 
| 3469 | 
            +
            笙
         | 
| 3470 | 
            +
            渎
         | 
| 3471 | 
            +
            仕
         | 
| 3472 | 
            +
            嗤
         | 
| 3473 | 
            +
            仓
         | 
| 3474 | 
            +
            配
         | 
| 3475 | 
            +
            怏
         | 
| 3476 | 
            +
            抬
         | 
| 3477 | 
            +
            错
         | 
| 3478 | 
            +
            泯
         | 
| 3479 | 
            +
            镊
         | 
| 3480 | 
            +
            孰
         | 
| 3481 | 
            +
            猿
         | 
| 3482 | 
            +
            邪
         | 
| 3483 | 
            +
            仍
         | 
| 3484 | 
            +
            秋
         | 
| 3485 | 
            +
            鼬
         | 
| 3486 | 
            +
            壹
         | 
| 3487 | 
            +
            歇
         | 
| 3488 | 
            +
            吵
         | 
| 3489 | 
            +
            炼
         | 
| 3490 | 
            +
            <
         | 
| 3491 | 
            +
            尧
         | 
| 3492 | 
            +
            射
         | 
| 3493 | 
            +
            柬
         | 
| 3494 | 
            +
            廷
         | 
| 3495 | 
            +
            胧
         | 
| 3496 | 
            +
            霾
         | 
| 3497 | 
            +
            凳
         | 
| 3498 | 
            +
            隋
         | 
| 3499 | 
            +
            肚
         | 
| 3500 | 
            +
            浮
         | 
| 3501 | 
            +
            梦
         | 
| 3502 | 
            +
            祥
         | 
| 3503 | 
            +
            株
         | 
| 3504 | 
            +
            堵
         | 
| 3505 | 
            +
            退
         | 
| 3506 | 
            +
            L
         | 
| 3507 | 
            +
            鹫
         | 
| 3508 | 
            +
            跎
         | 
| 3509 | 
            +
            凶
         | 
| 3510 | 
            +
            毽
         | 
| 3511 | 
            +
            荟
         | 
| 3512 | 
            +
            炫
         | 
| 3513 | 
            +
            栩
         | 
| 3514 | 
            +
            玳
         | 
| 3515 | 
            +
            甜
         | 
| 3516 | 
            +
            沂
         | 
| 3517 | 
            +
            鹿
         | 
| 3518 | 
            +
            顽
         | 
| 3519 | 
            +
            伯
         | 
| 3520 | 
            +
            爹
         | 
| 3521 | 
            +
            赔
         | 
| 3522 | 
            +
            蛴
         | 
| 3523 | 
            +
            徐
         | 
| 3524 | 
            +
            匡
         | 
| 3525 | 
            +
            欣
         | 
| 3526 | 
            +
            狰
         | 
| 3527 | 
            +
            缸
         | 
| 3528 | 
            +
            雹
         | 
| 3529 | 
            +
            蟆
         | 
| 3530 | 
            +
            疤
         | 
| 3531 | 
            +
            默
         | 
| 3532 | 
            +
            沤
         | 
| 3533 | 
            +
            啜
         | 
| 3534 | 
            +
            痂
         | 
| 3535 | 
            +
            衣
         | 
| 3536 | 
            +
            禅
         | 
| 3537 | 
            +
            w
         | 
| 3538 | 
            +
            i
         | 
| 3539 | 
            +
            h
         | 
| 3540 | 
            +
            辽
         | 
| 3541 | 
            +
            葳
         | 
| 3542 | 
            +
            黝
         | 
| 3543 | 
            +
            钗
         | 
| 3544 | 
            +
            停
         | 
| 3545 | 
            +
            沽
         | 
| 3546 | 
            +
            棒
         | 
| 3547 | 
            +
            馨
         | 
| 3548 | 
            +
            颌
         | 
| 3549 | 
            +
            肉
         | 
| 3550 | 
            +
            吴
         | 
| 3551 | 
            +
            硫
         | 
| 3552 | 
            +
            悯
         | 
| 3553 | 
            +
            劾
         | 
| 3554 | 
            +
            娈
         | 
| 3555 | 
            +
            马
         | 
| 3556 | 
            +
            啧
         | 
| 3557 | 
            +
            吊
         | 
| 3558 | 
            +
            悌
         | 
| 3559 | 
            +
            镑
         | 
| 3560 | 
            +
            峭
         | 
| 3561 | 
            +
            帆
         | 
| 3562 | 
            +
            瀣
         | 
| 3563 | 
            +
            涉
         | 
| 3564 | 
            +
            咸
         | 
| 3565 | 
            +
            疸
         | 
| 3566 | 
            +
            滋
         | 
| 3567 | 
            +
            泣
         | 
| 3568 | 
            +
            翦
         | 
| 3569 | 
            +
            拙
         | 
| 3570 | 
            +
            癸
         | 
| 3571 | 
            +
            钥
         | 
| 3572 | 
            +
            蜒
         | 
| 3573 | 
            +
            +
         | 
| 3574 | 
            +
            尾
         | 
| 3575 | 
            +
            庄
         | 
| 3576 | 
            +
            凝
         | 
| 3577 | 
            +
            泉
         | 
| 3578 | 
            +
            婢
         | 
| 3579 | 
            +
            渴
         | 
| 3580 | 
            +
            谊
         | 
| 3581 | 
            +
            乞
         | 
| 3582 | 
            +
            陆
         | 
| 3583 | 
            +
            锉
         | 
| 3584 | 
            +
            糊
         | 
| 3585 | 
            +
            鸦
         | 
| 3586 | 
            +
            淮
         | 
| 3587 | 
            +
            I
         | 
| 3588 | 
            +
            B
         | 
| 3589 | 
            +
            N
         | 
| 3590 | 
            +
            晦
         | 
| 3591 | 
            +
            弗
         | 
| 3592 | 
            +
            乔
         | 
| 3593 | 
            +
            庥
         | 
| 3594 | 
            +
            葡
         | 
| 3595 | 
            +
            尻
         | 
| 3596 | 
            +
            席
         | 
| 3597 | 
            +
            橡
         | 
| 3598 | 
            +
            傣
         | 
| 3599 | 
            +
            渣
         | 
| 3600 | 
            +
            拿
         | 
| 3601 | 
            +
            惩
         | 
| 3602 | 
            +
            麋
         | 
| 3603 | 
            +
            斛
         | 
| 3604 | 
            +
            缃
         | 
| 3605 | 
            +
            矮
         | 
| 3606 | 
            +
            蛏
         | 
| 3607 | 
            +
            岘
         | 
| 3608 | 
            +
            鸽
         | 
| 3609 | 
            +
            姐
         | 
| 3610 | 
            +
            膏
         | 
| 3611 | 
            +
            催
         | 
| 3612 | 
            +
            奔
         | 
| 3613 | 
            +
            镒
         | 
| 3614 | 
            +
            喱
         | 
| 3615 | 
            +
            蠡
         | 
| 3616 | 
            +
            摧
         | 
| 3617 | 
            +
            钯
         | 
| 3618 | 
            +
            胤
         | 
| 3619 | 
            +
            柠
         | 
| 3620 | 
            +
            拐
         | 
| 3621 | 
            +
            璋
         | 
| 3622 | 
            +
            鸥
         | 
| 3623 | 
            +
            卢
         | 
| 3624 | 
            +
            荡
         | 
| 3625 | 
            +
            倾
         | 
| 3626 | 
            +
            ^
         | 
| 3627 | 
            +
            _
         | 
| 3628 | 
            +
            珀
         | 
| 3629 | 
            +
            逄
         | 
| 3630 | 
            +
            萧
         | 
| 3631 | 
            +
            塾
         | 
| 3632 | 
            +
            掇
         | 
| 3633 | 
            +
            贮
         | 
| 3634 | 
            +
            笆
         | 
| 3635 | 
            +
            聂
         | 
| 3636 | 
            +
            圃
         | 
| 3637 | 
            +
            冲
         | 
| 3638 | 
            +
            嵬
         | 
| 3639 | 
            +
            M
         | 
| 3640 | 
            +
            滔
         | 
| 3641 | 
            +
            笕
         | 
| 3642 | 
            +
            值
         | 
| 3643 | 
            +
            炙
         | 
| 3644 | 
            +
            偶
         | 
| 3645 | 
            +
            蜱
         | 
| 3646 | 
            +
            搐
         | 
| 3647 | 
            +
            梆
         | 
| 3648 | 
            +
            汪
         | 
| 3649 | 
            +
            蔬
         | 
| 3650 | 
            +
            腑
         | 
| 3651 | 
            +
            鸯
         | 
| 3652 | 
            +
            蹇
         | 
| 3653 | 
            +
            敞
         | 
| 3654 | 
            +
            绯
         | 
| 3655 | 
            +
            仨
         | 
| 3656 | 
            +
            祯
         | 
| 3657 | 
            +
            谆
         | 
| 3658 | 
            +
            梧
         | 
| 3659 | 
            +
            糗
         | 
| 3660 | 
            +
            鑫
         | 
| 3661 | 
            +
            啸
         | 
| 3662 | 
            +
            豺
         | 
| 3663 | 
            +
            囹
         | 
| 3664 | 
            +
            猾
         | 
| 3665 | 
            +
            巢
         | 
| 3666 | 
            +
            柄
         | 
| 3667 | 
            +
            瀛
         | 
| 3668 | 
            +
            筑
         | 
| 3669 | 
            +
            踌
         | 
| 3670 | 
            +
            沭
         | 
| 3671 | 
            +
            暗
         | 
| 3672 | 
            +
            苁
         | 
| 3673 | 
            +
            鱿
         | 
| 3674 | 
            +
            蹉
         | 
| 3675 | 
            +
            脂
         | 
| 3676 | 
            +
            蘖
         | 
| 3677 | 
            +
            牢
         | 
| 3678 | 
            +
            热
         | 
| 3679 | 
            +
            木
         | 
| 3680 | 
            +
            吸
         | 
| 3681 | 
            +
            溃
         | 
| 3682 | 
            +
            宠
         | 
| 3683 | 
            +
            序
         | 
| 3684 | 
            +
            泞
         | 
| 3685 | 
            +
            偿
         | 
| 3686 | 
            +
            拜
         | 
| 3687 | 
            +
            檩
         | 
| 3688 | 
            +
            厚
         | 
| 3689 | 
            +
            朐
         | 
| 3690 | 
            +
            毗
         | 
| 3691 | 
            +
            螳
         | 
| 3692 | 
            +
            吞
         | 
| 3693 | 
            +
            媚
         | 
| 3694 | 
            +
            朽
         | 
| 3695 | 
            +
            担
         | 
| 3696 | 
            +
            蝗
         | 
| 3697 | 
            +
            橘
         | 
| 3698 | 
            +
            畴
         | 
| 3699 | 
            +
            祈
         | 
| 3700 | 
            +
            糟
         | 
| 3701 | 
            +
            盱
         | 
| 3702 | 
            +
            隼
         | 
| 3703 | 
            +
            郜
         | 
| 3704 | 
            +
            惜
         | 
| 3705 | 
            +
            珠
         | 
| 3706 | 
            +
            裨
         | 
| 3707 | 
            +
            铵
         | 
| 3708 | 
            +
            焙
         | 
| 3709 | 
            +
            琚
         | 
| 3710 | 
            +
            唯
         | 
| 3711 | 
            +
            咚
         | 
| 3712 | 
            +
            噪
         | 
| 3713 | 
            +
            骊
         | 
| 3714 | 
            +
            丫
         | 
| 3715 | 
            +
            滢
         | 
| 3716 | 
            +
            勤
         | 
| 3717 | 
            +
            棉
         | 
| 3718 | 
            +
            呸
         | 
| 3719 | 
            +
            咣
         | 
| 3720 | 
            +
            淀
         | 
| 3721 | 
            +
            隔
         | 
| 3722 | 
            +
            蕾
         | 
| 3723 | 
            +
            窈
         | 
| 3724 | 
            +
            饨
         | 
| 3725 | 
            +
            挨
         | 
| 3726 | 
            +
            煅
         | 
| 3727 | 
            +
            短
         | 
| 3728 | 
            +
            匙
         | 
| 3729 | 
            +
            粕
         | 
| 3730 | 
            +
            镜
         | 
| 3731 | 
            +
            赣
         | 
| 3732 | 
            +
            撕
         | 
| 3733 | 
            +
            墩
         | 
| 3734 | 
            +
            酬
         | 
| 3735 | 
            +
            馁
         | 
| 3736 | 
            +
            豌
         | 
| 3737 | 
            +
            颐
         | 
| 3738 | 
            +
            抗
         | 
| 3739 | 
            +
            酣
         | 
| 3740 | 
            +
            氓
         | 
| 3741 | 
            +
            佑
         | 
| 3742 | 
            +
            搁
         | 
| 3743 | 
            +
            哭
         | 
| 3744 | 
            +
            递
         | 
| 3745 | 
            +
            耷
         | 
| 3746 | 
            +
            涡
         | 
| 3747 | 
            +
            桃
         | 
| 3748 | 
            +
            贻
         | 
| 3749 | 
            +
            碣
         | 
| 3750 | 
            +
            截
         | 
| 3751 | 
            +
            瘦
         | 
| 3752 | 
            +
            昭
         | 
| 3753 | 
            +
            镌
         | 
| 3754 | 
            +
            蔓
         | 
| 3755 | 
            +
            氚
         | 
| 3756 | 
            +
            甲
         | 
| 3757 | 
            +
            猕
         | 
| 3758 | 
            +
            蕴
         | 
| 3759 | 
            +
            蓬
         | 
| 3760 | 
            +
            散
         | 
| 3761 | 
            +
            拾
         | 
| 3762 | 
            +
            纛
         | 
| 3763 | 
            +
            狼
         | 
| 3764 | 
            +
            猷
         | 
| 3765 | 
            +
            铎
         | 
| 3766 | 
            +
            埋
         | 
| 3767 | 
            +
            旖
         | 
| 3768 | 
            +
            矾
         | 
| 3769 | 
            +
            讳
         | 
| 3770 | 
            +
            囊
         | 
| 3771 | 
            +
            糜
         | 
| 3772 | 
            +
            迈
         | 
| 3773 | 
            +
            粟
         | 
| 3774 | 
            +
            蚂
         | 
| 3775 | 
            +
            紧
         | 
| 3776 | 
            +
            鲳
         | 
| 3777 | 
            +
            瘢
         | 
| 3778 | 
            +
            栽
         | 
| 3779 | 
            +
            稼
         | 
| 3780 | 
            +
            羊
         | 
| 3781 | 
            +
            锄
         | 
| 3782 | 
            +
            斟
         | 
| 3783 | 
            +
            睁
         | 
| 3784 | 
            +
            桥
         | 
| 3785 | 
            +
            瓮
         | 
| 3786 | 
            +
            蹙
         | 
| 3787 | 
            +
            祉
         | 
| 3788 | 
            +
            醺
         | 
| 3789 | 
            +
            鼻
         | 
| 3790 | 
            +
            昱
         | 
| 3791 | 
            +
            剃
         | 
| 3792 | 
            +
            跳
         | 
| 3793 | 
            +
            篱
         | 
| 3794 | 
            +
            跷
         | 
| 3795 | 
            +
            蒜
         | 
| 3796 | 
            +
            翎
         | 
| 3797 | 
            +
            宅
         | 
| 3798 | 
            +
            晖
         | 
| 3799 | 
            +
            嗑
         | 
| 3800 | 
            +
            壑
         | 
| 3801 | 
            +
            峻
         | 
| 3802 | 
            +
            癫
         | 
| 3803 | 
            +
            屏
         | 
| 3804 | 
            +
            狠
         | 
| 3805 | 
            +
            陋
         | 
| 3806 | 
            +
            袜
         | 
| 3807 | 
            +
            途
         | 
| 3808 | 
            +
            憎
         | 
| 3809 | 
            +
            祀
         | 
| 3810 | 
            +
            莹
         | 
| 3811 | 
            +
            滟
         | 
| 3812 | 
            +
            佶
         | 
| 3813 | 
            +
            溥
         | 
| 3814 | 
            +
            臣
         | 
| 3815 | 
            +
            约
         | 
| 3816 | 
            +
            盛
         | 
| 3817 | 
            +
            峰
         | 
| 3818 | 
            +
            磁
         | 
| 3819 | 
            +
            慵
         | 
| 3820 | 
            +
            婪
         | 
| 3821 | 
            +
            拦
         | 
| 3822 | 
            +
            莅
         | 
| 3823 | 
            +
            朕
         | 
| 3824 | 
            +
            鹦
         | 
| 3825 | 
            +
            粲
         | 
| 3826 | 
            +
            裤
         | 
| 3827 | 
            +
            哎
         | 
| 3828 | 
            +
            疡
         | 
| 3829 | 
            +
            嫖
         | 
| 3830 | 
            +
            琵
         | 
| 3831 | 
            +
            窟
         | 
| 3832 | 
            +
            堪
         | 
| 3833 | 
            +
            谛
         | 
| 3834 | 
            +
            嘉
         | 
| 3835 | 
            +
            儡
         | 
| 3836 | 
            +
            鳝
         | 
| 3837 | 
            +
            斩
         | 
| 3838 | 
            +
            郾
         | 
| 3839 | 
            +
            驸
         | 
| 3840 | 
            +
            酊
         | 
| 3841 | 
            +
            妄
         | 
| 3842 | 
            +
            胜
         | 
| 3843 | 
            +
            贺
         | 
| 3844 | 
            +
            徙
         | 
| 3845 | 
            +
            傅
         | 
| 3846 | 
            +
            噌
         | 
| 3847 | 
            +
            钢
         | 
| 3848 | 
            +
            栅
         | 
| 3849 | 
            +
            庇
         | 
| 3850 | 
            +
            恋
         | 
| 3851 | 
            +
            匝
         | 
| 3852 | 
            +
            巯
         | 
| 3853 | 
            +
            邈
         | 
| 3854 | 
            +
            尸
         | 
| 3855 | 
            +
            锚
         | 
| 3856 | 
            +
            粗
         | 
| 3857 | 
            +
            佟
         | 
| 3858 | 
            +
            蛟
         | 
| 3859 | 
            +
            薹
         | 
| 3860 | 
            +
            纵
         | 
| 3861 | 
            +
            蚊
         | 
| 3862 | 
            +
            郅
         | 
| 3863 | 
            +
            绢
         | 
| 3864 | 
            +
            锐
         | 
| 3865 | 
            +
            苗
         | 
| 3866 | 
            +
            俞
         | 
| 3867 | 
            +
            篆
         | 
| 3868 | 
            +
            淆
         | 
| 3869 | 
            +
            膀
         | 
| 3870 | 
            +
            鲜
         | 
| 3871 | 
            +
            煎
         | 
| 3872 | 
            +
            诶
         | 
| 3873 | 
            +
            秽
         | 
| 3874 | 
            +
            寻
         | 
| 3875 | 
            +
            涮
         | 
| 3876 | 
            +
            刺
         | 
| 3877 | 
            +
            怀
         | 
| 3878 | 
            +
            噶
         | 
| 3879 | 
            +
            巨
         | 
| 3880 | 
            +
            褰
         | 
| 3881 | 
            +
            魅
         | 
| 3882 | 
            +
            灶
         | 
| 3883 | 
            +
            灌
         | 
| 3884 | 
            +
            桉
         | 
| 3885 | 
            +
            藕
         | 
| 3886 | 
            +
            谜
         | 
| 3887 | 
            +
            舸
         | 
| 3888 | 
            +
            薄
         | 
| 3889 | 
            +
            搀
         | 
| 3890 | 
            +
            恽
         | 
| 3891 | 
            +
            借
         | 
| 3892 | 
            +
            牯
         | 
| 3893 | 
            +
            痉
         | 
| 3894 | 
            +
            渥
         | 
| 3895 | 
            +
            愿
         | 
| 3896 | 
            +
            亓
         | 
| 3897 | 
            +
            耘
         | 
| 3898 | 
            +
            杠
         | 
| 3899 | 
            +
            柩
         | 
| 3900 | 
            +
            锔
         | 
| 3901 | 
            +
            蚶
         | 
| 3902 | 
            +
            钣
         | 
| 3903 | 
            +
            珈
         | 
| 3904 | 
            +
            喘
         | 
| 3905 | 
            +
            蹒
         | 
| 3906 | 
            +
            幽
         | 
| 3907 | 
            +
            赐
         | 
| 3908 | 
            +
            稗
         | 
| 3909 | 
            +
            晤
         | 
| 3910 | 
            +
            莱
         | 
| 3911 | 
            +
            泔
         | 
| 3912 | 
            +
            扯
         | 
| 3913 | 
            +
            肯
         | 
| 3914 | 
            +
            菪
         | 
| 3915 | 
            +
            裆
         | 
| 3916 | 
            +
            腩
         | 
| 3917 | 
            +
            豉
         | 
| 3918 | 
            +
            疆
         | 
| 3919 | 
            +
            骜
         | 
| 3920 | 
            +
            腐
         | 
| 3921 | 
            +
            倭
         | 
| 3922 | 
            +
            珏
         | 
| 3923 | 
            +
            唔
         | 
| 3924 | 
            +
            粮
         | 
| 3925 | 
            +
            亡
         | 
| 3926 | 
            +
            润
         | 
| 3927 | 
            +
            慰
         | 
| 3928 | 
            +
            伽
         | 
| 3929 | 
            +
            橄
         | 
| 3930 | 
            +
            玄
         | 
| 3931 | 
            +
            誉
         | 
| 3932 | 
            +
            醐
         | 
| 3933 | 
            +
            胆
         | 
| 3934 | 
            +
            龊
         | 
| 3935 | 
            +
            粼
         | 
| 3936 | 
            +
            塬
         | 
| 3937 | 
            +
            陇
         | 
| 3938 | 
            +
            彼
         | 
| 3939 | 
            +
            削
         | 
| 3940 | 
            +
            嗣
         | 
| 3941 | 
            +
            绾
         | 
| 3942 | 
            +
            芽
         | 
| 3943 | 
            +
            妗
         | 
| 3944 | 
            +
            垭
         | 
| 3945 | 
            +
            瘴
         | 
| 3946 | 
            +
            爽
         | 
| 3947 | 
            +
            薏
         | 
| 3948 | 
            +
            寨
         | 
| 3949 | 
            +
            龈
         | 
| 3950 | 
            +
            泠
         | 
| 3951 | 
            +
            弹
         | 
| 3952 | 
            +
            赢
         | 
| 3953 | 
            +
            漪
         | 
| 3954 | 
            +
            猫
         | 
| 3955 | 
            +
            嘧
         | 
| 3956 | 
            +
            涂
         | 
| 3957 | 
            +
            恤
         | 
| 3958 | 
            +
            圭
         | 
| 3959 | 
            +
            茧
         | 
| 3960 | 
            +
            烽
         | 
| 3961 | 
            +
            屑
         | 
| 3962 | 
            +
            痕
         | 
| 3963 | 
            +
            巾
         | 
| 3964 | 
            +
            赖
         | 
| 3965 | 
            +
            荸
         | 
| 3966 | 
            +
            凰
         | 
| 3967 | 
            +
            腮
         | 
| 3968 | 
            +
            畈
         | 
| 3969 | 
            +
            亵
         | 
| 3970 | 
            +
            蹲
         | 
| 3971 | 
            +
            偃
         | 
| 3972 | 
            +
            苇
         | 
| 3973 | 
            +
            澜
         | 
| 3974 | 
            +
            艮
         | 
| 3975 | 
            +
            换
         | 
| 3976 | 
            +
            骺
         | 
| 3977 | 
            +
            烘
         | 
| 3978 | 
            +
            苕
         | 
| 3979 | 
            +
            梓
         | 
| 3980 | 
            +
            颉
         | 
| 3981 | 
            +
            肇
         | 
| 3982 | 
            +
            哗
         | 
| 3983 | 
            +
            悄
         | 
| 3984 | 
            +
            氤
         | 
| 3985 | 
            +
            涠
         | 
| 3986 | 
            +
            葬
         | 
| 3987 | 
            +
            屠
         | 
| 3988 | 
            +
            鹭
         | 
| 3989 | 
            +
            植
         | 
| 3990 | 
            +
            竺
         | 
| 3991 | 
            +
            佯
         | 
| 3992 | 
            +
            诣
         | 
| 3993 | 
            +
            鲇
         | 
| 3994 | 
            +
            瘀
         | 
| 3995 | 
            +
            鲅
         | 
| 3996 | 
            +
            邦
         | 
| 3997 | 
            +
            移
         | 
| 3998 | 
            +
            滁
         | 
| 3999 | 
            +
            冯
         | 
| 4000 | 
            +
            耕
         | 
| 4001 | 
            +
            癔
         | 
| 4002 | 
            +
            戌
         | 
| 4003 | 
            +
            茬
         | 
| 4004 | 
            +
            沁
         | 
| 4005 | 
            +
            巩
         | 
| 4006 | 
            +
            悠
         | 
| 4007 | 
            +
            湘
         | 
| 4008 | 
            +
            洪
         | 
| 4009 | 
            +
            痹
         | 
| 4010 | 
            +
            锟
         | 
| 4011 | 
            +
            循
         | 
| 4012 | 
            +
            谋
         | 
| 4013 | 
            +
            腕
         | 
| 4014 | 
            +
            鳃
         | 
| 4015 | 
            +
            钠
         | 
| 4016 | 
            +
            捞
         | 
| 4017 | 
            +
            焉
         | 
| 4018 | 
            +
            迎
         | 
| 4019 | 
            +
            碱
         | 
| 4020 | 
            +
            伫
         | 
| 4021 | 
            +
            急
         | 
| 4022 | 
            +
            榷
         | 
| 4023 | 
            +
            奈
         | 
| 4024 | 
            +
            邝
         | 
| 4025 | 
            +
            卯
         | 
| 4026 | 
            +
            辄
         | 
| 4027 | 
            +
            皲
         | 
| 4028 | 
            +
            卟
         | 
| 4029 | 
            +
            醛
         | 
| 4030 | 
            +
            畹
         | 
| 4031 | 
            +
            忧
         | 
| 4032 | 
            +
            稳
         | 
| 4033 | 
            +
            雄
         | 
| 4034 | 
            +
            昼
         | 
| 4035 | 
            +
            缩
         | 
| 4036 | 
            +
            阈
         | 
| 4037 | 
            +
            睑
         | 
| 4038 | 
            +
            扌
         | 
| 4039 | 
            +
            耗
         | 
| 4040 | 
            +
            曦
         | 
| 4041 | 
            +
            涅
         | 
| 4042 | 
            +
            捏
         | 
| 4043 | 
            +
            瞧
         | 
| 4044 | 
            +
            邕
         | 
| 4045 | 
            +
            淖
         | 
| 4046 | 
            +
            漉
         | 
| 4047 | 
            +
            铝
         | 
| 4048 | 
            +
            耦
         | 
| 4049 | 
            +
            禹
         | 
| 4050 | 
            +
            湛
         | 
| 4051 | 
            +
            喽
         | 
| 4052 | 
            +
            莼
         | 
| 4053 | 
            +
            琅
         | 
| 4054 | 
            +
            诸
         | 
| 4055 | 
            +
            苎
         | 
| 4056 | 
            +
            纂
         | 
| 4057 | 
            +
            硅
         | 
| 4058 | 
            +
            始
         | 
| 4059 | 
            +
            嗨
         | 
| 4060 | 
            +
            傥
         | 
| 4061 | 
            +
            燃
         | 
| 4062 | 
            +
            臂
         | 
| 4063 | 
            +
            赅
         | 
| 4064 | 
            +
            嘈
         | 
| 4065 | 
            +
            呆
         | 
| 4066 | 
            +
            贵
         | 
| 4067 | 
            +
            屹
         | 
| 4068 | 
            +
            壮
         | 
| 4069 | 
            +
            肋
         | 
| 4070 | 
            +
            亍
         | 
| 4071 | 
            +
            蚀
         | 
| 4072 | 
            +
            卅
         | 
| 4073 | 
            +
            豹
         | 
| 4074 | 
            +
            腆
         | 
| 4075 | 
            +
            邬
         | 
| 4076 | 
            +
            迭
         | 
| 4077 | 
            +
            浊
         | 
| 4078 | 
            +
            }
         | 
| 4079 | 
            +
            童
         | 
| 4080 | 
            +
            螂
         | 
| 4081 | 
            +
            捐
         | 
| 4082 | 
            +
            圩
         | 
| 4083 | 
            +
            勐
         | 
| 4084 | 
            +
            触
         | 
| 4085 | 
            +
            寞
         | 
| 4086 | 
            +
            汊
         | 
| 4087 | 
            +
            壤
         | 
| 4088 | 
            +
            荫
         | 
| 4089 | 
            +
            膺
         | 
| 4090 | 
            +
            渌
         | 
| 4091 | 
            +
            芳
         | 
| 4092 | 
            +
            懿
         | 
| 4093 | 
            +
            遴
         | 
| 4094 | 
            +
            螈
         | 
| 4095 | 
            +
            泰
         | 
| 4096 | 
            +
            蓼
         | 
| 4097 | 
            +
            蛤
         | 
| 4098 | 
            +
            茜
         | 
| 4099 | 
            +
            舅
         | 
| 4100 | 
            +
            枫
         | 
| 4101 | 
            +
            朔
         | 
| 4102 | 
            +
            膝
         | 
| 4103 | 
            +
            眙
         | 
| 4104 | 
            +
            避
         | 
| 4105 | 
            +
            梅
         | 
| 4106 | 
            +
            判
         | 
| 4107 | 
            +
            鹜
         | 
| 4108 | 
            +
            璜
         | 
| 4109 | 
            +
            牍
         | 
| 4110 | 
            +
            缅
         | 
| 4111 | 
            +
            垫
         | 
| 4112 | 
            +
            藻
         | 
| 4113 | 
            +
            黔
         | 
| 4114 | 
            +
            侥
         | 
| 4115 | 
            +
            惚
         | 
| 4116 | 
            +
            懂
         | 
| 4117 | 
            +
            踩
         | 
| 4118 | 
            +
            腰
         | 
| 4119 | 
            +
            腈
         | 
| 4120 | 
            +
            札
         | 
| 4121 | 
            +
            丞
         | 
| 4122 | 
            +
            唾
         | 
| 4123 | 
            +
            慈
         | 
| 4124 | 
            +
            顿
         | 
| 4125 | 
            +
            摹
         | 
| 4126 | 
            +
            荻
         | 
| 4127 | 
            +
            琬
         | 
| 4128 | 
            +
            ~
         | 
| 4129 | 
            +
            斧
         | 
| 4130 | 
            +
            沈
         | 
| 4131 | 
            +
            滂
         | 
| 4132 | 
            +
            胁
         | 
| 4133 | 
            +
            胀
         | 
| 4134 | 
            +
            幄
         | 
| 4135 | 
            +
            莜
         | 
| 4136 | 
            +
            Z
         | 
| 4137 | 
            +
            匀
         | 
| 4138 | 
            +
            鄄
         | 
| 4139 | 
            +
            掌
         | 
| 4140 | 
            +
            绰
         | 
| 4141 | 
            +
            茎
         | 
| 4142 | 
            +
            焚
         | 
| 4143 | 
            +
            赋
         | 
| 4144 | 
            +
            萱
         | 
| 4145 | 
            +
            谑
         | 
| 4146 | 
            +
            汁
         | 
| 4147 | 
            +
            铒
         | 
| 4148 | 
            +
            瞎
         | 
| 4149 | 
            +
            夺
         | 
| 4150 | 
            +
            蜗
         | 
| 4151 | 
            +
            野
         | 
| 4152 | 
            +
            娆
         | 
| 4153 | 
            +
            冀
         | 
| 4154 | 
            +
            弯
         | 
| 4155 | 
            +
            篁
         | 
| 4156 | 
            +
            懵
         | 
| 4157 | 
            +
            灞
         | 
| 4158 | 
            +
            隽
         | 
| 4159 | 
            +
            芡
         | 
| 4160 | 
            +
            脘
         | 
| 4161 | 
            +
            俐
         | 
| 4162 | 
            +
            辩
         | 
| 4163 | 
            +
            芯
         | 
| 4164 | 
            +
            掺
         | 
| 4165 | 
            +
            喏
         | 
| 4166 | 
            +
            膈
         | 
| 4167 | 
            +
            蝈
         | 
| 4168 | 
            +
            觐
         | 
| 4169 | 
            +
            悚
         | 
| 4170 | 
            +
            踹
         | 
| 4171 | 
            +
            蔗
         | 
| 4172 | 
            +
            熠
         | 
| 4173 | 
            +
            鼠
         | 
| 4174 | 
            +
            呵
         | 
| 4175 | 
            +
            抓
         | 
| 4176 | 
            +
            橼
         | 
| 4177 | 
            +
            峨
         | 
| 4178 | 
            +
            畜
         | 
| 4179 | 
            +
            缔
         | 
| 4180 | 
            +
            禾
         | 
| 4181 | 
            +
            崭
         | 
| 4182 | 
            +
            弃
         | 
| 4183 | 
            +
            熊
         | 
| 4184 | 
            +
            摒
         | 
| 4185 | 
            +
            凸
         | 
| 4186 | 
            +
            拗
         | 
| 4187 | 
            +
            穹
         | 
| 4188 | 
            +
            蒙
         | 
| 4189 | 
            +
            抒
         | 
| 4190 | 
            +
            祛
         | 
| 4191 | 
            +
            劝
         | 
| 4192 | 
            +
            闫
         | 
| 4193 | 
            +
            扳
         | 
| 4194 | 
            +
            阵
         | 
| 4195 | 
            +
            醌
         | 
| 4196 | 
            +
            踪
         | 
| 4197 | 
            +
            喵
         | 
| 4198 | 
            +
            侣
         | 
| 4199 | 
            +
            搬
         | 
| 4200 | 
            +
            仅
         | 
| 4201 | 
            +
            荧
         | 
| 4202 | 
            +
            赎
         | 
| 4203 | 
            +
            蝾
         | 
| 4204 | 
            +
            琦
         | 
| 4205 | 
            +
            买
         | 
| 4206 | 
            +
            婧
         | 
| 4207 | 
            +
            瞄
         | 
| 4208 | 
            +
            寓
         | 
| 4209 | 
            +
            皎
         | 
| 4210 | 
            +
            冻
         | 
| 4211 | 
            +
            赝
         | 
| 4212 | 
            +
            箩
         | 
| 4213 | 
            +
            莫
         | 
| 4214 | 
            +
            瞰
         | 
| 4215 | 
            +
            郊
         | 
| 4216 | 
            +
            笫
         | 
| 4217 | 
            +
            姝
         | 
| 4218 | 
            +
            筒
         | 
| 4219 | 
            +
            枪
         | 
| 4220 | 
            +
            遣
         | 
| 4221 | 
            +
            煸
         | 
| 4222 | 
            +
            袋
         | 
| 4223 | 
            +
            舆
         | 
| 4224 | 
            +
            痱
         | 
| 4225 | 
            +
            涛
         | 
| 4226 | 
            +
            母
         | 
| 4227 | 
            +
            〇
         | 
| 4228 | 
            +
            启
         | 
| 4229 | 
            +
            践
         | 
| 4230 | 
            +
            耙
         | 
| 4231 | 
            +
            绲
         | 
| 4232 | 
            +
            盘
         | 
| 4233 | 
            +
            遂
         | 
| 4234 | 
            +
            昊
         | 
| 4235 | 
            +
            搞
         | 
| 4236 | 
            +
            槿
         | 
| 4237 | 
            +
            诬
         | 
| 4238 | 
            +
            纰
         | 
| 4239 | 
            +
            泓
         | 
| 4240 | 
            +
            惨
         | 
| 4241 | 
            +
            檬
         | 
| 4242 | 
            +
            亻
         | 
| 4243 | 
            +
            越
         | 
| 4244 | 
            +
            C
         | 
| 4245 | 
            +
            o
         | 
| 4246 | 
            +
            憩
         | 
| 4247 | 
            +
            熵
         | 
| 4248 | 
            +
            祷
         | 
| 4249 | 
            +
            钒
         | 
| 4250 | 
            +
            暧
         | 
| 4251 | 
            +
            塔
         | 
| 4252 | 
            +
            阗
         | 
| 4253 | 
            +
            胰
         | 
| 4254 | 
            +
            咄
         | 
| 4255 | 
            +
            娶
         | 
| 4256 | 
            +
            魔
         | 
| 4257 | 
            +
            琶
         | 
| 4258 | 
            +
            钞
         | 
| 4259 | 
            +
            邻
         | 
| 4260 | 
            +
            扬
         | 
| 4261 | 
            +
            杉
         | 
| 4262 | 
            +
            殴
         | 
| 4263 | 
            +
            咽
         | 
| 4264 | 
            +
            弓
         | 
| 4265 | 
            +
            〆
         | 
| 4266 | 
            +
            髻
         | 
| 4267 | 
            +
            】
         | 
| 4268 | 
            +
            吭
         | 
| 4269 | 
            +
            揽
         | 
| 4270 | 
            +
            霆
         | 
| 4271 | 
            +
            拄
         | 
| 4272 | 
            +
            殖
         | 
| 4273 | 
            +
            脆
         | 
| 4274 | 
            +
            彻
         | 
| 4275 | 
            +
            岩
         | 
| 4276 | 
            +
            芝
         | 
| 4277 | 
            +
            勃
         | 
| 4278 | 
            +
            辣
         | 
| 4279 | 
            +
            剌
         | 
| 4280 | 
            +
            钝
         | 
| 4281 | 
            +
            嘎
         | 
| 4282 | 
            +
            甄
         | 
| 4283 | 
            +
            佘
         | 
| 4284 | 
            +
            皖
         | 
| 4285 | 
            +
            伦
         | 
| 4286 | 
            +
            授
         | 
| 4287 | 
            +
            ��
         | 
| 4288 | 
            +
            憔
         | 
| 4289 | 
            +
            挪
         | 
| 4290 | 
            +
            皇
         | 
| 4291 | 
            +
            庞
         | 
| 4292 | 
            +
            稔
         | 
| 4293 | 
            +
            芜
         | 
| 4294 | 
            +
            踏
         | 
| 4295 | 
            +
            溴
         | 
| 4296 | 
            +
            兖
         | 
| 4297 | 
            +
            卒
         | 
| 4298 | 
            +
            擢
         | 
| 4299 | 
            +
            饥
         | 
| 4300 | 
            +
            鳞
         | 
| 4301 | 
            +
            煲
         | 
| 4302 | 
            +
            ‰
         | 
| 4303 | 
            +
            账
         | 
| 4304 | 
            +
            颗
         | 
| 4305 | 
            +
            叻
         | 
| 4306 | 
            +
            斯
         | 
| 4307 | 
            +
            捧
         | 
| 4308 | 
            +
            鳍
         | 
| 4309 | 
            +
            琮
         | 
| 4310 | 
            +
            讹
         | 
| 4311 | 
            +
            蛙
         | 
| 4312 | 
            +
            纽
         | 
| 4313 | 
            +
            谭
         | 
| 4314 | 
            +
            酸
         | 
| 4315 | 
            +
            兔
         | 
| 4316 | 
            +
            莒
         | 
| 4317 | 
            +
            睇
         | 
| 4318 | 
            +
            伟
         | 
| 4319 | 
            +
            觑
         | 
| 4320 | 
            +
            羲
         | 
| 4321 | 
            +
            嗜
         | 
| 4322 | 
            +
            宜
         | 
| 4323 | 
            +
            褐
         | 
| 4324 | 
            +
            旎
         | 
| 4325 | 
            +
            辛
         | 
| 4326 | 
            +
            卦
         | 
| 4327 | 
            +
            诘
         | 
| 4328 | 
            +
            筋
         | 
| 4329 | 
            +
            鎏
         | 
| 4330 | 
            +
            溪
         | 
| 4331 | 
            +
            挛
         | 
| 4332 | 
            +
            熔
         | 
| 4333 | 
            +
            阜
         | 
| 4334 | 
            +
            晰
         | 
| 4335 | 
            +
            鳅
         | 
| 4336 | 
            +
            丢
         | 
| 4337 | 
            +
            奚
         | 
| 4338 | 
            +
            灸
         | 
| 4339 | 
            +
            呱
         | 
| 4340 | 
            +
            献
         | 
| 4341 | 
            +
            陉
         | 
| 4342 | 
            +
            黛
         | 
| 4343 | 
            +
            鸪
         | 
| 4344 | 
            +
            甾
         | 
| 4345 | 
            +
            萨
         | 
| 4346 | 
            +
            疮
         | 
| 4347 | 
            +
            拯
         | 
| 4348 | 
            +
            洲
         | 
| 4349 | 
            +
            疹
         | 
| 4350 | 
            +
            辑
         | 
| 4351 | 
            +
            叙
         | 
| 4352 | 
            +
            恻
         | 
| 4353 | 
            +
            谒
         | 
| 4354 | 
            +
            允
         | 
| 4355 | 
            +
            柔
         | 
| 4356 | 
            +
            烂
         | 
| 4357 | 
            +
            氏
         | 
| 4358 | 
            +
            逅
         | 
| 4359 | 
            +
            漆
         | 
| 4360 | 
            +
            拎
         | 
| 4361 | 
            +
            惋
         | 
| 4362 | 
            +
            扈
         | 
| 4363 | 
            +
            湟
         | 
| 4364 | 
            +
            纭
         | 
| 4365 | 
            +
            啕
         | 
| 4366 | 
            +
            掬
         | 
| 4367 | 
            +
            擞
         | 
| 4368 | 
            +
            哥
         | 
| 4369 | 
            +
            忽
         | 
| 4370 | 
            +
            涤
         | 
| 4371 | 
            +
            鸵
         | 
| 4372 | 
            +
            靡
         | 
| 4373 | 
            +
            郗
         | 
| 4374 | 
            +
            瓷
         | 
| 4375 | 
            +
            扁
         | 
| 4376 | 
            +
            廊
         | 
| 4377 | 
            +
            怨
         | 
| 4378 | 
            +
            雏
         | 
| 4379 | 
            +
            钮
         | 
| 4380 | 
            +
            敦
         | 
| 4381 | 
            +
            E
         | 
| 4382 | 
            +
            懦
         | 
| 4383 | 
            +
            憋
         | 
| 4384 | 
            +
            汀
         | 
| 4385 | 
            +
            拚
         | 
| 4386 | 
            +
            啉
         | 
| 4387 | 
            +
            腌
         | 
| 4388 | 
            +
            岸
         | 
| 4389 | 
            +
            f
         | 
| 4390 | 
            +
            痼
         | 
| 4391 | 
            +
            瞅
         | 
| 4392 | 
            +
            尊
         | 
| 4393 | 
            +
            咀
         | 
| 4394 | 
            +
            眩
         | 
| 4395 | 
            +
            飙
         | 
| 4396 | 
            +
            忌
         | 
| 4397 | 
            +
            仝
         | 
| 4398 | 
            +
            迦
         | 
| 4399 | 
            +
            熬
         | 
| 4400 | 
            +
            毫
         | 
| 4401 | 
            +
            胯
         | 
| 4402 | 
            +
            篑
         | 
| 4403 | 
            +
            茄
         | 
| 4404 | 
            +
            腺
         | 
| 4405 | 
            +
            凄
         | 
| 4406 | 
            +
            舛
         | 
| 4407 | 
            +
            碴
         | 
| 4408 | 
            +
            锵
         | 
| 4409 | 
            +
            诧
         | 
| 4410 | 
            +
            羯
         | 
| 4411 | 
            +
            後
         | 
| 4412 | 
            +
            漏
         | 
| 4413 | 
            +
            汤
         | 
| 4414 | 
            +
            宓
         | 
| 4415 | 
            +
            仞
         | 
| 4416 | 
            +
            蚁
         | 
| 4417 | 
            +
            壶
         | 
| 4418 | 
            +
            谰
         | 
| 4419 | 
            +
            皑
         | 
| 4420 | 
            +
            铄
         | 
| 4421 | 
            +
            棰
         | 
| 4422 | 
            +
            罔
         | 
| 4423 | 
            +
            辅
         | 
| 4424 | 
            +
            晶
         | 
| 4425 | 
            +
            苦
         | 
| 4426 | 
            +
            牟
         | 
| 4427 | 
            +
            闽
         | 
| 4428 | 
            +
            \
         | 
| 4429 | 
            +
            烃
         | 
| 4430 | 
            +
            饮
         | 
| 4431 | 
            +
            聿
         | 
| 4432 | 
            +
            丙
         | 
| 4433 | 
            +
            蛳
         | 
| 4434 | 
            +
            朱
         | 
| 4435 | 
            +
            煤
         | 
| 4436 | 
            +
            涔
         | 
| 4437 | 
            +
            鳖
         | 
| 4438 | 
            +
            犁
         | 
| 4439 | 
            +
            罐
         | 
| 4440 | 
            +
            荼
         | 
| 4441 | 
            +
            砒
         | 
| 4442 | 
            +
            淦
         | 
| 4443 | 
            +
            妤
         | 
| 4444 | 
            +
            黏
         | 
| 4445 | 
            +
            戎
         | 
| 4446 | 
            +
            孑
         | 
| 4447 | 
            +
            婕
         | 
| 4448 | 
            +
            瑾
         | 
| 4449 | 
            +
            戢
         | 
| 4450 | 
            +
            钵
         | 
| 4451 | 
            +
            枣
         | 
| 4452 | 
            +
            捋
         | 
| 4453 | 
            +
            砥
         | 
| 4454 | 
            +
            衩
         | 
| 4455 | 
            +
            狙
         | 
| 4456 | 
            +
            桠
         | 
| 4457 | 
            +
            稣
         | 
| 4458 | 
            +
            阎
         | 
| 4459 | 
            +
            肃
         | 
| 4460 | 
            +
            梏
         | 
| 4461 | 
            +
            诫
         | 
| 4462 | 
            +
            孪
         | 
| 4463 | 
            +
            昶
         | 
| 4464 | 
            +
            婊
         | 
| 4465 | 
            +
            衫
         | 
| 4466 | 
            +
            嗔
         | 
| 4467 | 
            +
            侃
         | 
| 4468 | 
            +
            塞
         | 
| 4469 | 
            +
            蜃
         | 
| 4470 | 
            +
            樵
         | 
| 4471 | 
            +
            峒
         | 
| 4472 | 
            +
            貌
         | 
| 4473 | 
            +
            屿
         | 
| 4474 | 
            +
            欺
         | 
| 4475 | 
            +
            缫
         | 
| 4476 | 
            +
            阐
         | 
| 4477 | 
            +
            栖
         | 
| 4478 | 
            +
            诟
         | 
| 4479 | 
            +
            珞
         | 
| 4480 | 
            +
            荭
         | 
| 4481 | 
            +
            吝
         | 
| 4482 | 
            +
            萍
         | 
| 4483 | 
            +
            嗽
         | 
| 4484 | 
            +
            恂
         | 
| 4485 | 
            +
            啻
         | 
| 4486 | 
            +
            蜴
         | 
| 4487 | 
            +
            磬
         | 
| 4488 | 
            +
            峋
         | 
| 4489 | 
            +
            俸
         | 
| 4490 | 
            +
            豫
         | 
| 4491 | 
            +
            谎
         | 
| 4492 | 
            +
            徊
         | 
| 4493 | 
            +
            镍
         | 
| 4494 | 
            +
            韬
         | 
| 4495 | 
            +
            魇
         | 
| 4496 | 
            +
            晴
         | 
| 4497 | 
            +
            U
         | 
| 4498 | 
            +
            囟
         | 
| 4499 | 
            +
            猜
         | 
| 4500 | 
            +
            蛮
         | 
| 4501 | 
            +
            坐
         | 
| 4502 | 
            +
            囿
         | 
| 4503 | 
            +
            伴
         | 
| 4504 | 
            +
            亭
         | 
| 4505 | 
            +
            肝
         | 
| 4506 | 
            +
            佗
         | 
| 4507 | 
            +
            蝠
         | 
| 4508 | 
            +
            妃
         | 
| 4509 | 
            +
            胞
         | 
| 4510 | 
            +
            滩
         | 
| 4511 | 
            +
            榴
         | 
| 4512 | 
            +
            氖
         | 
| 4513 | 
            +
            垩
         | 
| 4514 | 
            +
            苋
         | 
| 4515 | 
            +
            砣
         | 
| 4516 | 
            +
            扪
         | 
| 4517 | 
            +
            馏
         | 
| 4518 | 
            +
            姓
         | 
| 4519 | 
            +
            轩
         | 
| 4520 | 
            +
            厉
         | 
| 4521 | 
            +
            夥
         | 
| 4522 | 
            +
            侈
         | 
| 4523 | 
            +
            禀
         | 
| 4524 | 
            +
            垒
         | 
| 4525 | 
            +
            岑
         | 
| 4526 | 
            +
            赏
         | 
| 4527 | 
            +
            钛
         | 
| 4528 | 
            +
            辐
         | 
| 4529 | 
            +
            痔
         | 
| 4530 | 
            +
            披
         | 
| 4531 | 
            +
            纸
         | 
| 4532 | 
            +
            碳
         | 
| 4533 | 
            +
            “
         | 
| 4534 | 
            +
            坞
         | 
| 4535 | 
            +
            蠓
         | 
| 4536 | 
            +
            挤
         | 
| 4537 | 
            +
            荥
         | 
| 4538 | 
            +
            沅
         | 
| 4539 | 
            +
            悔
         | 
| 4540 | 
            +
            铧
         | 
| 4541 | 
            +
            帼
         | 
| 4542 | 
            +
            蒌
         | 
| 4543 | 
            +
            蝇
         | 
| 4544 | 
            +
            a
         | 
| 4545 | 
            +
            p
         | 
| 4546 | 
            +
            y
         | 
| 4547 | 
            +
            n
         | 
| 4548 | 
            +
            g
         | 
| 4549 | 
            +
            哀
         | 
| 4550 | 
            +
            浆
         | 
| 4551 | 
            +
            瑶
         | 
| 4552 | 
            +
            凿
         | 
| 4553 | 
            +
            桶
         | 
| 4554 | 
            +
            馈
         | 
| 4555 | 
            +
            皮
         | 
| 4556 | 
            +
            奴
         | 
| 4557 | 
            +
            苜
         | 
| 4558 | 
            +
            佤
         | 
| 4559 | 
            +
            伶
         | 
| 4560 | 
            +
            晗
         | 
| 4561 | 
            +
            铱
         | 
| 4562 | 
            +
            炬
         | 
| 4563 | 
            +
            优
         | 
| 4564 | 
            +
            弊
         | 
| 4565 | 
            +
            氢
         | 
| 4566 | 
            +
            恃
         | 
| 4567 | 
            +
            甫
         | 
| 4568 | 
            +
            攥
         | 
| 4569 | 
            +
            端
         | 
| 4570 | 
            +
            锌
         | 
| 4571 | 
            +
            灰
         | 
| 4572 | 
            +
            稹
         | 
| 4573 | 
            +
            炝
         | 
| 4574 | 
            +
            曙
         | 
| 4575 | 
            +
            邋
         | 
| 4576 | 
            +
            亥
         | 
| 4577 | 
            +
            眶
         | 
| 4578 | 
            +
            碾
         | 
| 4579 | 
            +
            拉
         | 
| 4580 | 
            +
            萝
         | 
| 4581 | 
            +
            绔
         | 
| 4582 | 
            +
            捷
         | 
| 4583 | 
            +
            浍
         | 
| 4584 | 
            +
            腋
         | 
| 4585 | 
            +
            姑
         | 
| 4586 | 
            +
            菖
         | 
| 4587 | 
            +
            凌
         | 
| 4588 | 
            +
            涞
         | 
| 4589 | 
            +
            麽
         | 
| 4590 | 
            +
            锢
         | 
| 4591 | 
            +
            桨
         | 
| 4592 | 
            +
            潢
         | 
| 4593 | 
            +
            绎
         | 
| 4594 | 
            +
            镰
         | 
| 4595 | 
            +
            殆
         | 
| 4596 | 
            +
            锑
         | 
| 4597 | 
            +
            渝
         | 
| 4598 | 
            +
            铬
         | 
| 4599 | 
            +
            困
         | 
| 4600 | 
            +
            绽
         | 
| 4601 | 
            +
            觎
         | 
| 4602 | 
            +
            匈
         | 
| 4603 | 
            +
            糙
         | 
| 4604 | 
            +
            暑
         | 
| 4605 | 
            +
            裹
         | 
| 4606 | 
            +
            鸟
         | 
| 4607 | 
            +
            盔
         | 
| 4608 | 
            +
            肽
         | 
| 4609 | 
            +
            迷
         | 
| 4610 | 
            +
            綦
         | 
| 4611 | 
            +
            『
         | 
| 4612 | 
            +
            亳
         | 
| 4613 | 
            +
            佝
         | 
| 4614 | 
            +
            俘
         | 
| 4615 | 
            +
            钴
         | 
| 4616 | 
            +
            觇
         | 
| 4617 | 
            +
            骥
         | 
| 4618 | 
            +
            仆
         | 
| 4619 | 
            +
            疝
         | 
| 4620 | 
            +
            跪
         | 
| 4621 | 
            +
            婶
         | 
| 4622 | 
            +
            郯
         | 
| 4623 | 
            +
            瀹
         | 
| 4624 | 
            +
            唉
         | 
| 4625 | 
            +
            脖
         | 
| 4626 | 
            +
            踞
         | 
| 4627 | 
            +
            针
         | 
| 4628 | 
            +
            晾
         | 
| 4629 | 
            +
            忒
         | 
| 4630 | 
            +
            扼
         | 
| 4631 | 
            +
            瞩
         | 
| 4632 | 
            +
            叛
         | 
| 4633 | 
            +
            椒
         | 
| 4634 | 
            +
            疟
         | 
| 4635 | 
            +
            嗡
         | 
| 4636 | 
            +
            邗
         | 
| 4637 | 
            +
            肆
         | 
| 4638 | 
            +
            跆
         | 
| 4639 | 
            +
            玫
         | 
| 4640 | 
            +
            忡
         | 
| 4641 | 
            +
            捣
         | 
| 4642 | 
            +
            咧
         | 
| 4643 | 
            +
            唆
         | 
| 4644 | 
            +
            艄
         | 
| 4645 | 
            +
            蘑
         | 
| 4646 | 
            +
            潦
         | 
| 4647 | 
            +
            笛
         | 
| 4648 | 
            +
            阚
         | 
| 4649 | 
            +
            沸
         | 
| 4650 | 
            +
            泻
         | 
| 4651 | 
            +
            掊
         | 
| 4652 | 
            +
            菽
         | 
| 4653 | 
            +
            贫
         | 
| 4654 | 
            +
            斥
         | 
| 4655 | 
            +
            髂
         | 
| 4656 | 
            +
            孢
         | 
| 4657 | 
            +
            镂
         | 
| 4658 | 
            +
            赂
         | 
| 4659 | 
            +
            麝
         | 
| 4660 | 
            +
            鸾
         | 
| 4661 | 
            +
            屡
         | 
| 4662 | 
            +
            衬
         | 
| 4663 | 
            +
            苷
         | 
| 4664 | 
            +
            恪
         | 
| 4665 | 
            +
            叠
         | 
| 4666 | 
            +
            希
         | 
| 4667 | 
            +
            粤
         | 
| 4668 | 
            +
            爻
         | 
| 4669 | 
            +
            喝
         | 
| 4670 | 
            +
            茫
         | 
| 4671 | 
            +
            惬
         | 
| 4672 | 
            +
            郸
         | 
| 4673 | 
            +
            绻
         | 
| 4674 | 
            +
            庸
         | 
| 4675 | 
            +
            撅
         | 
| 4676 | 
            +
            碟
         | 
| 4677 | 
            +
            宄
         | 
| 4678 | 
            +
            妹
         | 
| 4679 | 
            +
            膛
         | 
| 4680 | 
            +
            叮
         | 
| 4681 | 
            +
            饵
         | 
| 4682 | 
            +
            崛
         | 
| 4683 | 
            +
            嗲
         | 
| 4684 | 
            +
            椅
         | 
| 4685 | 
            +
            冤
         | 
| 4686 | 
            +
            搅
         | 
| 4687 | 
            +
            咕
         | 
| 4688 | 
            +
            敛
         | 
| 4689 | 
            +
            尹
         | 
| 4690 | 
            +
            垦
         | 
| 4691 | 
            +
            闷
         | 
| 4692 | 
            +
            蝉
         | 
| 4693 | 
            +
            霎
         | 
| 4694 | 
            +
            勰
         | 
| 4695 | 
            +
            败
         | 
| 4696 | 
            +
            蓑
         | 
| 4697 | 
            +
            泸
         | 
| 4698 | 
            +
            肤
         | 
| 4699 | 
            +
            鹌
         | 
| 4700 | 
            +
            幌
         | 
| 4701 | 
            +
            焦
         | 
| 4702 | 
            +
            浠
         | 
| 4703 | 
            +
            鞍
         | 
| 4704 | 
            +
            刁
         | 
| 4705 | 
            +
            舰
         | 
| 4706 | 
            +
            乙
         | 
| 4707 | 
            +
            竿
         | 
| 4708 | 
            +
            裔
         | 
| 4709 | 
            +
            。
         | 
| 4710 | 
            +
            茵
         | 
| 4711 | 
            +
            函
         | 
| 4712 | 
            +
            伊
         | 
| 4713 | 
            +
            兄
         | 
| 4714 | 
            +
            丨
         | 
| 4715 | 
            +
            娜
         | 
| 4716 | 
            +
            匍
         | 
| 4717 | 
            +
            謇
         | 
| 4718 | 
            +
            莪
         | 
| 4719 | 
            +
            宥
         | 
| 4720 | 
            +
            似
         | 
| 4721 | 
            +
            蝽
         | 
| 4722 | 
            +
            翳
         | 
| 4723 | 
            +
            酪
         | 
| 4724 | 
            +
            翠
         | 
| 4725 | 
            +
            粑
         | 
| 4726 | 
            +
            薇
         | 
| 4727 | 
            +
            祢
         | 
| 4728 | 
            +
            骏
         | 
| 4729 | 
            +
            赠
         | 
| 4730 | 
            +
            叫
         | 
| 4731 | 
            +
            Q
         | 
| 4732 | 
            +
            噤
         | 
| 4733 | 
            +
            噻
         | 
| 4734 | 
            +
            竖
         | 
| 4735 | 
            +
            芗
         | 
| 4736 | 
            +
            莠
         | 
| 4737 | 
            +
            潭
         | 
| 4738 | 
            +
            俊
         | 
| 4739 | 
            +
            羿
         | 
| 4740 | 
            +
            耜
         | 
| 4741 | 
            +
            O
         | 
| 4742 | 
            +
            郫
         | 
| 4743 | 
            +
            趁
         | 
| 4744 | 
            +
            嗪
         | 
| 4745 | 
            +
            囚
         | 
| 4746 | 
            +
            蹶
         | 
| 4747 | 
            +
            芒
         | 
| 4748 | 
            +
            洁
         | 
| 4749 | 
            +
            笋
         | 
| 4750 | 
            +
            鹑
         | 
| 4751 | 
            +
            敲
         | 
| 4752 | 
            +
            硝
         | 
| 4753 | 
            +
            啶
         | 
| 4754 | 
            +
            堡
         | 
| 4755 | 
            +
            渲
         | 
| 4756 | 
            +
            揩
         | 
| 4757 | 
            +
            』
         | 
| 4758 | 
            +
            携
         | 
| 4759 | 
            +
            宿
         | 
| 4760 | 
            +
            遒
         | 
| 4761 | 
            +
            颍
         | 
| 4762 | 
            +
            扭
         | 
| 4763 | 
            +
            棱
         | 
| 4764 | 
            +
            割
         | 
| 4765 | 
            +
            萜
         | 
| 4766 | 
            +
            蔸
         | 
| 4767 | 
            +
            葵
         | 
| 4768 | 
            +
            琴
         | 
| 4769 | 
            +
            捂
         | 
| 4770 | 
            +
            饰
         | 
| 4771 | 
            +
            衙
         | 
| 4772 | 
            +
            耿
         | 
| 4773 | 
            +
            掠
         | 
| 4774 | 
            +
            募
         | 
| 4775 | 
            +
            岂
         | 
| 4776 | 
            +
            窖
         | 
| 4777 | 
            +
            涟
         | 
| 4778 | 
            +
            蔺
         | 
| 4779 | 
            +
            瘤
         | 
| 4780 | 
            +
            柞
         | 
| 4781 | 
            +
            瞪
         | 
| 4782 | 
            +
            怜
         | 
| 4783 | 
            +
            匹
         | 
| 4784 | 
            +
            距
         | 
| 4785 | 
            +
            楔
         | 
| 4786 | 
            +
            炜
         | 
| 4787 | 
            +
            哆
         | 
| 4788 | 
            +
            秦
         | 
| 4789 | 
            +
            缎
         | 
| 4790 | 
            +
            幼
         | 
| 4791 | 
            +
            茁
         | 
| 4792 | 
            +
            绪
         | 
| 4793 | 
            +
            痨
         | 
| 4794 | 
            +
            恨
         | 
| 4795 | 
            +
            楸
         | 
| 4796 | 
            +
            娅
         | 
| 4797 | 
            +
            瓦
         | 
| 4798 | 
            +
            桩
         | 
| 4799 | 
            +
            雪
         | 
| 4800 | 
            +
            嬴
         | 
| 4801 | 
            +
            伏
         | 
| 4802 | 
            +
            榔
         | 
| 4803 | 
            +
            妥
         | 
| 4804 | 
            +
            铿
         | 
| 4805 | 
            +
            拌
         | 
| 4806 | 
            +
            眠
         | 
| 4807 | 
            +
            雍
         | 
| 4808 | 
            +
            缇
         | 
| 4809 | 
            +
            ‘
         | 
| 4810 | 
            +
            卓
         | 
| 4811 | 
            +
            搓
         | 
| 4812 | 
            +
            哌
         | 
| 4813 | 
            +
            觞
         | 
| 4814 | 
            +
            噩
         | 
| 4815 | 
            +
            屈
         | 
| 4816 | 
            +
            哧
         | 
| 4817 | 
            +
            髓
         | 
| 4818 | 
            +
            咦
         | 
| 4819 | 
            +
            巅
         | 
| 4820 | 
            +
            娑
         | 
| 4821 | 
            +
            侑
         | 
| 4822 | 
            +
            淫
         | 
| 4823 | 
            +
            膳
         | 
| 4824 | 
            +
            祝
         | 
| 4825 | 
            +
            勾
         | 
| 4826 | 
            +
            姊
         | 
| 4827 | 
            +
            莴
         | 
| 4828 | 
            +
            胄
         | 
| 4829 | 
            +
            疃
         | 
| 4830 | 
            +
            薛
         | 
| 4831 | 
            +
            蜷
         | 
| 4832 | 
            +
            胛
         | 
| 4833 | 
            +
            巷
         | 
| 4834 | 
            +
            芙
         | 
| 4835 | 
            +
            芋
         | 
| 4836 | 
            +
            熙
         | 
| 4837 | 
            +
            闰
         | 
| 4838 | 
            +
            勿
         | 
| 4839 | 
            +
            窃
         | 
| 4840 | 
            +
            狱
         | 
| 4841 | 
            +
            剩
         | 
| 4842 | 
            +
            钏
         | 
| 4843 | 
            +
            幢
         | 
| 4844 | 
            +
            陟
         | 
| 4845 | 
            +
            铛
         | 
| 4846 | 
            +
            慧
         | 
| 4847 | 
            +
            靴
         | 
| 4848 | 
            +
            耍
         | 
| 4849 | 
            +
            k
         | 
| 4850 | 
            +
            浙
         | 
| 4851 | 
            +
            浇
         | 
| 4852 | 
            +
            飨
         | 
| 4853 | 
            +
            惟
         | 
| 4854 | 
            +
            绗
         | 
| 4855 | 
            +
            祜
         | 
| 4856 | 
            +
            澈
         | 
| 4857 | 
            +
            啼
         | 
| 4858 | 
            +
            咪
         | 
| 4859 | 
            +
            磷
         | 
| 4860 | 
            +
            摞
         | 
| 4861 | 
            +
            诅
         | 
| 4862 | 
            +
            郦
         | 
| 4863 | 
            +
            抹
         | 
| 4864 | 
            +
            跃
         | 
| 4865 | 
            +
            壬
         | 
| 4866 | 
            +
            吕
         | 
| 4867 | 
            +
            肖
         | 
| 4868 | 
            +
            琏
         | 
| 4869 | 
            +
            颤
         | 
| 4870 | 
            +
            尴
         | 
| 4871 | 
            +
            剡
         | 
| 4872 | 
            +
            抠
         | 
| 4873 | 
            +
            凋
         | 
| 4874 | 
            +
            赚
         | 
| 4875 | 
            +
            泊
         | 
| 4876 | 
            +
            津
         | 
| 4877 | 
            +
            宕
         | 
| 4878 | 
            +
            殷
         | 
| 4879 | 
            +
            倔
         | 
| 4880 | 
            +
            氲
         | 
| 4881 | 
            +
            漫
         | 
| 4882 | 
            +
            邺
         | 
| 4883 | 
            +
            涎
         | 
| 4884 | 
            +
            怠
         | 
| 4885 | 
            +
            $
         | 
| 4886 | 
            +
            垮
         | 
| 4887 | 
            +
            荬
         | 
| 4888 | 
            +
            遵
         | 
| 4889 | 
            +
            俏
         | 
| 4890 | 
            +
            叹
         | 
| 4891 | 
            +
            噢
         | 
| 4892 | 
            +
            饽
         | 
| 4893 | 
            +
            蜘
         | 
| 4894 | 
            +
            孙
         | 
| 4895 | 
            +
            筵
         | 
| 4896 | 
            +
            疼
         | 
| 4897 | 
            +
            鞭
         | 
| 4898 | 
            +
            羧
         | 
| 4899 | 
            +
            牦
         | 
| 4900 | 
            +
            箭
         | 
| 4901 | 
            +
            潴
         | 
| 4902 | 
            +
            c
         | 
| 4903 | 
            +
            眸
         | 
| 4904 | 
            +
            祭
         | 
| 4905 | 
            +
            髯
         | 
| 4906 | 
            +
            啖
         | 
| 4907 | 
            +
            坳
         | 
| 4908 | 
            +
            愁
         | 
| 4909 | 
            +
            芩
         | 
| 4910 | 
            +
            驮
         | 
| 4911 | 
            +
            倡
         | 
| 4912 | 
            +
            巽
         | 
| 4913 | 
            +
            穰
         | 
| 4914 | 
            +
            沃
         | 
| 4915 | 
            +
            胚
         | 
| 4916 | 
            +
            怒
         | 
| 4917 | 
            +
            凤
         | 
| 4918 | 
            +
            槛
         | 
| 4919 | 
            +
            剂
         | 
| 4920 | 
            +
            趵
         | 
| 4921 | 
            +
            嫁
         | 
| 4922 | 
            +
            v
         | 
| 4923 | 
            +
            邢
         | 
| 4924 | 
            +
            灯
         | 
| 4925 | 
            +
            鄢
         | 
| 4926 | 
            +
            桐
         | 
| 4927 | 
            +
            睽
         | 
| 4928 | 
            +
            檗
         | 
| 4929 | 
            +
            锯
         | 
| 4930 | 
            +
            槟
         | 
| 4931 | 
            +
            婷
         | 
| 4932 | 
            +
            嵋
         | 
| 4933 | 
            +
            圻
         | 
| 4934 | 
            +
            诗
         | 
| 4935 | 
            +
            蕈
         | 
| 4936 | 
            +
            颠
         | 
| 4937 | 
            +
            遭
         | 
| 4938 | 
            +
            痢
         | 
| 4939 | 
            +
            芸
         | 
| 4940 | 
            +
            怯
         | 
| 4941 | 
            +
            馥
         | 
| 4942 | 
            +
            竭
         | 
| 4943 | 
            +
            锗
         | 
| 4944 | 
            +
            徜
         | 
| 4945 | 
            +
            恭
         | 
| 4946 | 
            +
            遍
         | 
| 4947 | 
            +
            籁
         | 
| 4948 | 
            +
            剑
         | 
| 4949 | 
            +
            嘱
         | 
| 4950 | 
            +
            苡
         | 
| 4951 | 
            +
            龄
         | 
| 4952 | 
            +
            僧
         | 
| 4953 | 
            +
            桑
         | 
| 4954 | 
            +
            潸
         | 
| 4955 | 
            +
            弘
         | 
| 4956 | 
            +
            澶
         | 
| 4957 | 
            +
            楹
         | 
| 4958 | 
            +
            悲
         | 
| 4959 | 
            +
            讫
         | 
| 4960 | 
            +
            愤
         | 
| 4961 | 
            +
            腥
         | 
| 4962 | 
            +
            悸
         | 
| 4963 | 
            +
            谍
         | 
| 4964 | 
            +
            椹
         | 
| 4965 | 
            +
            呢
         | 
| 4966 | 
            +
            桓
         | 
| 4967 | 
            +
            葭
         | 
| 4968 | 
            +
            攫
         | 
| 4969 | 
            +
            阀
         | 
| 4970 | 
            +
            翰
         | 
| 4971 | 
            +
            躲
         | 
| 4972 | 
            +
            敖
         | 
| 4973 | 
            +
            柑
         | 
| 4974 | 
            +
            郎
         | 
| 4975 | 
            +
            笨
         | 
| 4976 | 
            +
            橇
         | 
| 4977 | 
            +
            呃
         | 
| 4978 | 
            +
            魁
         | 
| 4979 | 
            +
            燎
         | 
| 4980 | 
            +
            脓
         | 
| 4981 | 
            +
            葩
         | 
| 4982 | 
            +
            磋
         | 
| 4983 | 
            +
            垛
         | 
| 4984 | 
            +
            玺
         | 
| 4985 | 
            +
            狮
         | 
| 4986 | 
            +
            沓
         | 
| 4987 | 
            +
            砜
         | 
| 4988 | 
            +
            蕊
         | 
| 4989 | 
            +
            锺
         | 
| 4990 | 
            +
            罹
         | 
| 4991 | 
            +
            蕉
         | 
| 4992 | 
            +
            翱
         | 
| 4993 | 
            +
            虐
         | 
| 4994 | 
            +
            闾
         | 
| 4995 | 
            +
            巫
         | 
| 4996 | 
            +
            旦
         | 
| 4997 | 
            +
            茱
         | 
| 4998 | 
            +
            嬷
         | 
| 4999 | 
            +
            枯
         | 
| 5000 | 
            +
            鹏
         | 
| 5001 | 
            +
            贡
         | 
| 5002 | 
            +
            芹
         | 
| 5003 | 
            +
            汛
         | 
| 5004 | 
            +
            矫
         | 
| 5005 | 
            +
            绁
         | 
| 5006 | 
            +
            拣
         | 
| 5007 | 
            +
            禺
         | 
| 5008 | 
            +
            佃
         | 
| 5009 | 
            +
            讣
         | 
| 5010 | 
            +
            舫
         | 
| 5011 | 
            +
            惯
         | 
| 5012 | 
            +
            乳
         | 
| 5013 | 
            +
            趋
         | 
| 5014 | 
            +
            疲
         | 
| 5015 | 
            +
            挽
         | 
| 5016 | 
            +
            岚
         | 
| 5017 | 
            +
            虾
         | 
| 5018 | 
            +
            衾
         | 
| 5019 | 
            +
            蠹
         | 
| 5020 | 
            +
            蹂
         | 
| 5021 | 
            +
            飓
         | 
| 5022 | 
            +
            氦
         | 
| 5023 | 
            +
            铖
         | 
| 5024 | 
            +
            孩
         | 
| 5025 | 
            +
            稞
         | 
| 5026 | 
            +
            瑜
         | 
| 5027 | 
            +
            壅
         | 
| 5028 | 
            +
            掀
         | 
| 5029 | 
            +
            勘
         | 
| 5030 | 
            +
            妓
         | 
| 5031 | 
            +
            畅
         | 
| 5032 | 
            +
            髋
         | 
| 5033 | 
            +
            W
         | 
| 5034 | 
            +
            庐
         | 
| 5035 | 
            +
            牲
         | 
| 5036 | 
            +
            蓿
         | 
| 5037 | 
            +
            榕
         | 
| 5038 | 
            +
            练
         | 
| 5039 | 
            +
            垣
         | 
| 5040 | 
            +
            唱
         | 
| 5041 | 
            +
            邸
         | 
| 5042 | 
            +
            菲
         | 
| 5043 | 
            +
            昆
         | 
| 5044 | 
            +
            婺
         | 
| 5045 | 
            +
            穿
         | 
| 5046 | 
            +
            绡
         | 
| 5047 | 
            +
            麒
         | 
| 5048 | 
            +
            蚱
         | 
| 5049 | 
            +
            掂
         | 
| 5050 | 
            +
            愚
         | 
| 5051 | 
            +
            泷
         | 
| 5052 | 
            +
            涪
         | 
| 5053 | 
            +
            漳
         | 
| 5054 | 
            +
            妩
         | 
| 5055 | 
            +
            娉
         | 
| 5056 | 
            +
            榄
         | 
| 5057 | 
            +
            讷
         | 
| 5058 | 
            +
            觅
         | 
| 5059 | 
            +
            旧
         | 
| 5060 | 
            +
            藤
         | 
| 5061 | 
            +
            煮
         | 
| 5062 | 
            +
            呛
         | 
| 5063 | 
            +
            柳
         | 
| 5064 | 
            +
            腓
         | 
| 5065 | 
            +
            叭
         | 
| 5066 | 
            +
            庵
         | 
| 5067 | 
            +
            烷
         | 
| 5068 | 
            +
            阡
         | 
| 5069 | 
            +
            罂
         | 
| 5070 | 
            +
            蜕
         | 
| 5071 | 
            +
            擂
         | 
| 5072 | 
            +
            猖
         | 
| 5073 | 
            +
            咿
         | 
| 5074 | 
            +
            媲
         | 
| 5075 | 
            +
            脉
         | 
| 5076 | 
            +
            【
         | 
| 5077 | 
            +
            沏
         | 
| 5078 | 
            +
            貅
         | 
| 5079 | 
            +
            黠
         | 
| 5080 | 
            +
            熏
         | 
| 5081 | 
            +
            哲
         | 
| 5082 | 
            +
            烁
         | 
| 5083 | 
            +
            坦
         | 
| 5084 | 
            +
            酵
         | 
| 5085 | 
            +
            兜
         | 
| 5086 | 
            +
            ×
         | 
| 5087 | 
            +
            潇
         | 
| 5088 | 
            +
            撒
         | 
| 5089 | 
            +
            剽
         | 
| 5090 | 
            +
            珩
         | 
| 5091 | 
            +
            圹
         | 
| 5092 | 
            +
            乾
         | 
| 5093 | 
            +
            摸
         | 
| 5094 | 
            +
            樟
         | 
| 5095 | 
            +
            帽
         | 
| 5096 | 
            +
            嗒
         | 
| 5097 | 
            +
            襄
         | 
| 5098 | 
            +
            魂
         | 
| 5099 | 
            +
            轿
         | 
| 5100 | 
            +
            憬
         | 
| 5101 | 
            +
            锡
         | 
| 5102 | 
            +
            〕
         | 
| 5103 | 
            +
            喃
         | 
| 5104 | 
            +
            皆
         | 
| 5105 | 
            +
            咖
         | 
| 5106 | 
            +
            隅
         | 
| 5107 | 
            +
            脸
         | 
| 5108 | 
            +
            残
         | 
| 5109 | 
            +
            泮
         | 
| 5110 | 
            +
            袂
         | 
| 5111 | 
            +
            鹂
         | 
| 5112 | 
            +
            珊
         | 
| 5113 | 
            +
            囤
         | 
| 5114 | 
            +
            捆
         | 
| 5115 | 
            +
            咤
         | 
| 5116 | 
            +
            误
         | 
| 5117 | 
            +
            徨
         | 
| 5118 | 
            +
            闹
         | 
| 5119 | 
            +
            淙
         | 
| 5120 | 
            +
            芊
         | 
| 5121 | 
            +
            淋
         | 
| 5122 | 
            +
            怆
         | 
| 5123 | 
            +
            囗
         | 
| 5124 | 
            +
            拨
         | 
| 5125 | 
            +
            梳
         | 
| 5126 | 
            +
            渤
         | 
| 5127 | 
            +
            R
         | 
| 5128 | 
            +
            G
         | 
| 5129 | 
            +
            绨
         | 
| 5130 | 
            +
            蚓
         | 
| 5131 | 
            +
            婀
         | 
| 5132 | 
            +
            幡
         | 
| 5133 | 
            +
            狩
         | 
| 5134 | 
            +
            麾
         | 
| 5135 | 
            +
            谢
         | 
| 5136 | 
            +
            唢
         | 
| 5137 | 
            +
            裸
         | 
| 5138 | 
            +
            旌
         | 
| 5139 | 
            +
            伉
         | 
| 5140 | 
            +
            纶
         | 
| 5141 | 
            +
            裂
         | 
| 5142 | 
            +
            驳
         | 
| 5143 | 
            +
            砼
         | 
| 5144 | 
            +
            咛
         | 
| 5145 | 
            +
            澄
         | 
| 5146 | 
            +
            樨
         | 
| 5147 | 
            +
            蹈
         | 
| 5148 | 
            +
            宙
         | 
| 5149 | 
            +
            澍
         | 
| 5150 | 
            +
            倍
         | 
| 5151 | 
            +
            貔
         | 
| 5152 | 
            +
            操
         | 
| 5153 | 
            +
            勇
         | 
| 5154 | 
            +
            蟠
         | 
| 5155 | 
            +
            摈
         | 
| 5156 | 
            +
            砧
         | 
| 5157 | 
            +
            虬
         | 
| 5158 | 
            +
            够
         | 
| 5159 | 
            +
            缁
         | 
| 5160 | 
            +
            悦
         | 
| 5161 | 
            +
            藿
         | 
| 5162 | 
            +
            撸
         | 
| 5163 | 
            +
            艹
         | 
| 5164 | 
            +
            摁
         | 
| 5165 | 
            +
            淹
         | 
| 5166 | 
            +
            豇
         | 
| 5167 | 
            +
            虎
         | 
| 5168 | 
            +
            榭
         | 
| 5169 | 
            +
            ˉ
         | 
| 5170 | 
            +
            吱
         | 
| 5171 | 
            +
            d
         | 
| 5172 | 
            +
            °
         | 
| 5173 | 
            +
            喧
         | 
| 5174 | 
            +
            荀
         | 
| 5175 | 
            +
            踱
         | 
| 5176 | 
            +
            侮
         | 
| 5177 | 
            +
            奋
         | 
| 5178 | 
            +
            偕
         | 
| 5179 | 
            +
            饷
         | 
| 5180 | 
            +
            犍
         | 
| 5181 | 
            +
            惮
         | 
| 5182 | 
            +
            坑
         | 
| 5183 | 
            +
            璎
         | 
| 5184 | 
            +
            徘
         | 
| 5185 | 
            +
            宛
         | 
| 5186 | 
            +
            妆
         | 
| 5187 | 
            +
            袈
         | 
| 5188 | 
            +
            倩
         | 
| 5189 | 
            +
            窦
         | 
| 5190 | 
            +
            昂
         | 
| 5191 | 
            +
            荏
         | 
| 5192 | 
            +
            乖
         | 
| 5193 | 
            +
            K
         | 
| 5194 | 
            +
            怅
         | 
| 5195 | 
            +
            撰
         | 
| 5196 | 
            +
            鳙
         | 
| 5197 | 
            +
            牙
         | 
| 5198 | 
            +
            袁
         | 
| 5199 | 
            +
            酞
         | 
| 5200 | 
            +
            X
         | 
| 5201 | 
            +
            痿
         | 
| 5202 | 
            +
            琼
         | 
| 5203 | 
            +
            闸
         | 
| 5204 | 
            +
            雁
         | 
| 5205 | 
            +
            趾
         | 
| 5206 | 
            +
            荚
         | 
| 5207 | 
            +
            虻
         | 
| 5208 | 
            +
            涝
         | 
| 5209 | 
            +
            《
         | 
| 5210 | 
            +
            杏
         | 
| 5211 | 
            +
            韭
         | 
| 5212 | 
            +
            偈
         | 
| 5213 | 
            +
            烤
         | 
| 5214 | 
            +
            绫
         | 
| 5215 | 
            +
            鞘
         | 
| 5216 | 
            +
            卉
         | 
| 5217 | 
            +
            症
         | 
| 5218 | 
            +
            遢
         | 
| 5219 | 
            +
            蓥
         | 
| 5220 | 
            +
            诋
         | 
| 5221 | 
            +
            杭
         | 
| 5222 | 
            +
            荨
         | 
| 5223 | 
            +
            匆
         | 
| 5224 | 
            +
            竣
         | 
| 5225 | 
            +
            簪
         | 
| 5226 | 
            +
            辙
         | 
| 5227 | 
            +
            敕
         | 
| 5228 | 
            +
            虞
         | 
| 5229 | 
            +
            丹
         | 
| 5230 | 
            +
            缭
         | 
| 5231 | 
            +
            咩
         | 
| 5232 | 
            +
            黟
         | 
| 5233 | 
            +
            m
         | 
| 5234 | 
            +
            淤
         | 
| 5235 | 
            +
            瑕
         | 
| 5236 | 
            +
            咂
         | 
| 5237 | 
            +
            铉
         | 
| 5238 | 
            +
            硼
         | 
| 5239 | 
            +
            茨
         | 
| 5240 | 
            +
            嶂
         | 
| 5241 | 
            +
            痒
         | 
| 5242 | 
            +
            畸
         | 
| 5243 | 
            +
            敬
         | 
| 5244 | 
            +
            涿
         | 
| 5245 | 
            +
            粪
         | 
| 5246 | 
            +
            窘
         | 
| 5247 | 
            +
            熟
         | 
| 5248 | 
            +
            叔
         | 
| 5249 | 
            +
            嫔
         | 
| 5250 | 
            +
            盾
         | 
| 5251 | 
            +
            忱
         | 
| 5252 | 
            +
            裘
         | 
| 5253 | 
            +
            憾
         | 
| 5254 | 
            +
            梵
         | 
| 5255 | 
            +
            赡
         | 
| 5256 | 
            +
            珙
         | 
| 5257 | 
            +
            咯
         | 
| 5258 | 
            +
            娘
         | 
| 5259 | 
            +
            庙
         | 
| 5260 | 
            +
            溯
         | 
| 5261 | 
            +
            胺
         | 
| 5262 | 
            +
            葱
         | 
| 5263 | 
            +
            痪
         | 
| 5264 | 
            +
            摊
         | 
| 5265 | 
            +
            荷
         | 
| 5266 | 
            +
            卞
         | 
| 5267 | 
            +
            乒
         | 
| 5268 | 
            +
            髦
         | 
| 5269 | 
            +
            寐
         | 
| 5270 | 
            +
            铭
         | 
| 5271 | 
            +
            坩
         | 
| 5272 | 
            +
            胗
         | 
| 5273 | 
            +
            枷
         | 
| 5274 | 
            +
            爆
         | 
| 5275 | 
            +
            溟
         | 
| 5276 | 
            +
            嚼
         | 
| 5277 | 
            +
            羚
         | 
| 5278 | 
            +
            砬
         | 
| 5279 | 
            +
            轨
         | 
| 5280 | 
            +
            惊
         | 
| 5281 | 
            +
            挠
         | 
| 5282 | 
            +
            罄
         | 
| 5283 | 
            +
            竽
         | 
| 5284 | 
            +
            菏
         | 
| 5285 | 
            +
            氧
         | 
| 5286 | 
            +
            浅
         | 
| 5287 | 
            +
            楣
         | 
| 5288 | 
            +
            盼
         | 
| 5289 | 
            +
            枢
         | 
| 5290 | 
            +
            炸
         | 
| 5291 | 
            +
            阆
         | 
| 5292 | 
            +
            杯
         | 
| 5293 | 
            +
            谏
         | 
| 5294 | 
            +
            噬
         | 
| 5295 | 
            +
            淇
         | 
| 5296 | 
            +
            渺
         | 
| 5297 | 
            +
            俪
         | 
| 5298 | 
            +
            秆
         | 
| 5299 | 
            +
            墓
         | 
| 5300 | 
            +
            泪
         | 
| 5301 | 
            +
            跻
         | 
| 5302 | 
            +
            砌
         | 
| 5303 | 
            +
            痰
         | 
| 5304 | 
            +
            垡
         | 
| 5305 | 
            +
            渡
         | 
| 5306 | 
            +
            耽
         | 
| 5307 | 
            +
            釜
         | 
| 5308 | 
            +
            讶
         | 
| 5309 | 
            +
            鳎
         | 
| 5310 | 
            +
            煞
         | 
| 5311 | 
            +
            呗
         | 
| 5312 | 
            +
            韶
         | 
| 5313 | 
            +
            舶
         | 
| 5314 | 
            +
            绷
         | 
| 5315 | 
            +
            鹳
         | 
| 5316 | 
            +
            缜
         | 
| 5317 | 
            +
            旷
         | 
| 5318 | 
            +
            铊
         | 
| 5319 | 
            +
            皱
         | 
| 5320 | 
            +
            龌
         | 
| 5321 | 
            +
            檀
         | 
| 5322 | 
            +
            霖
         | 
| 5323 | 
            +
            奄
         | 
| 5324 | 
            +
            槐
         | 
| 5325 | 
            +
            艳
         | 
| 5326 | 
            +
            蝶
         | 
| 5327 | 
            +
            旋
         | 
| 5328 | 
            +
            哝
         | 
| 5329 | 
            +
            赶
         | 
| 5330 | 
            +
            骞
         | 
| 5331 | 
            +
            蚧
         | 
| 5332 | 
            +
            腊
         | 
| 5333 | 
            +
            盈
         | 
| 5334 | 
            +
            丁
         | 
| 5335 | 
            +
            `
         | 
| 5336 | 
            +
            蜚
         | 
| 5337 | 
            +
            矸
         | 
| 5338 | 
            +
            蝙
         | 
| 5339 | 
            +
            睨
         | 
| 5340 | 
            +
            嚓
         | 
| 5341 | 
            +
            僻
         | 
| 5342 | 
            +
            鬼
         | 
| 5343 | 
            +
            醴
         | 
| 5344 | 
            +
            夜
         | 
| 5345 | 
            +
            彝
         | 
| 5346 | 
            +
            磊
         | 
| 5347 | 
            +
            笔
         | 
| 5348 | 
            +
            拔
         | 
| 5349 | 
            +
            栀
         | 
| 5350 | 
            +
            糕
         | 
| 5351 | 
            +
            厦
         | 
| 5352 | 
            +
            邰
         | 
| 5353 | 
            +
            纫
         | 
| 5354 | 
            +
            逭
         | 
| 5355 | 
            +
            纤
         | 
| 5356 | 
            +
            眦
         | 
| 5357 | 
            +
            膊
         | 
| 5358 | 
            +
            馍
         | 
| 5359 | 
            +
            躇
         | 
| 5360 | 
            +
            烯
         | 
| 5361 | 
            +
            蘼
         | 
| 5362 | 
            +
            冬
         | 
| 5363 | 
            +
            诤
         | 
| 5364 | 
            +
            暄
         | 
| 5365 | 
            +
            骶
         | 
| 5366 | 
            +
            哑
         | 
| 5367 | 
            +
            瘠
         | 
| 5368 | 
            +
            」
         | 
| 5369 | 
            +
            臊
         | 
| 5370 | 
            +
            丕
         | 
| 5371 | 
            +
            愈
         | 
| 5372 | 
            +
            咱
         | 
| 5373 | 
            +
            螺
         | 
| 5374 | 
            +
            擅
         | 
| 5375 | 
            +
            跋
         | 
| 5376 | 
            +
            搏
         | 
| 5377 | 
            +
            硪
         | 
| 5378 | 
            +
            谄
         | 
| 5379 | 
            +
            笠
         | 
| 5380 | 
            +
            淡
         | 
| 5381 | 
            +
            嘿
         | 
| 5382 | 
            +
            骅
         | 
| 5383 | 
            +
            谧
         | 
| 5384 | 
            +
            鼎
         | 
| 5385 | 
            +
            皋
         | 
| 5386 | 
            +
            姚
         | 
| 5387 | 
            +
            歼
         | 
| 5388 | 
            +
            蠢
         | 
| 5389 | 
            +
            驼
         | 
| 5390 | 
            +
            耳
         | 
| 5391 | 
            +
            胬
         | 
| 5392 | 
            +
            挝
         | 
| 5393 | 
            +
            涯
         | 
| 5394 | 
            +
            狗
         | 
| 5395 | 
            +
            蒽
         | 
| 5396 | 
            +
            孓
         | 
| 5397 | 
            +
            犷
         | 
| 5398 | 
            +
            凉
         | 
| 5399 | 
            +
            芦
         | 
| 5400 | 
            +
            箴
         | 
| 5401 | 
            +
            铤
         | 
| 5402 | 
            +
            孤
         | 
| 5403 | 
            +
            嘛
         | 
| 5404 | 
            +
            坤
         | 
| 5405 | 
            +
            V
         | 
| 5406 | 
            +
            茴
         | 
| 5407 | 
            +
            朦
         | 
| 5408 | 
            +
            挞
         | 
| 5409 | 
            +
            尖
         | 
| 5410 | 
            +
            橙
         | 
| 5411 | 
            +
            诞
         | 
| 5412 | 
            +
            搴
         | 
| 5413 | 
            +
            碇
         | 
| 5414 | 
            +
            洵
         | 
| 5415 | 
            +
            浚
         | 
| 5416 | 
            +
            帚
         | 
| 5417 | 
            +
            蜍
         | 
| 5418 | 
            +
            漯
         | 
| 5419 | 
            +
            柘
         | 
| 5420 | 
            +
            嚎
         | 
| 5421 | 
            +
            讽
         | 
| 5422 | 
            +
            芭
         | 
| 5423 | 
            +
            荤
         | 
| 5424 | 
            +
            咻
         | 
| 5425 | 
            +
            祠
         | 
| 5426 | 
            +
            秉
         | 
| 5427 | 
            +
            跖
         | 
| 5428 | 
            +
            埃
         | 
| 5429 | 
            +
            吓
         | 
| 5430 | 
            +
            糯
         | 
| 5431 | 
            +
            眷
         | 
| 5432 | 
            +
            馒
         | 
| 5433 | 
            +
            惹
         | 
| 5434 | 
            +
            娼
         | 
| 5435 | 
            +
            鲑
         | 
| 5436 | 
            +
            嫩
         | 
| 5437 | 
            +
            讴
         | 
| 5438 | 
            +
            轮
         | 
| 5439 | 
            +
            瞥
         | 
| 5440 | 
            +
            靶
         | 
| 5441 | 
            +
            褚
         | 
| 5442 | 
            +
            乏
         | 
| 5443 | 
            +
            缤
         | 
| 5444 | 
            +
            宋
         | 
| 5445 | 
            +
            帧
         | 
| 5446 | 
            +
            删
         | 
| 5447 | 
            +
            驱
         | 
| 5448 | 
            +
            碎
         | 
| 5449 | 
            +
            扑
         | 
| 5450 | 
            +
            俩
         | 
| 5451 | 
            +
            俄
         | 
| 5452 | 
            +
            偏
         | 
| 5453 | 
            +
            涣
         | 
| 5454 | 
            +
            竹
         | 
| 5455 | 
            +
            噱
         | 
| 5456 | 
            +
            皙
         | 
| 5457 | 
            +
            佰
         | 
| 5458 | 
            +
            渚
         | 
| 5459 | 
            +
            唧
         | 
| 5460 | 
            +
            斡
         | 
| 5461 | 
            +
            #
         | 
| 5462 | 
            +
            镉
         | 
| 5463 | 
            +
            刀
         | 
| 5464 | 
            +
            崎
         | 
| 5465 | 
            +
            筐
         | 
| 5466 | 
            +
            佣
         | 
| 5467 | 
            +
            夭
         | 
| 5468 | 
            +
            贰
         | 
| 5469 | 
            +
            肴
         | 
| 5470 | 
            +
            峙
         | 
| 5471 | 
            +
            哔
         | 
| 5472 | 
            +
            艿
         | 
| 5473 | 
            +
            匐
         | 
| 5474 | 
            +
            牺
         | 
| 5475 | 
            +
            镛
         | 
| 5476 | 
            +
            缘
         | 
| 5477 | 
            +
            仡
         | 
| 5478 | 
            +
            嫡
         | 
| 5479 | 
            +
            劣
         | 
| 5480 | 
            +
            枸
         | 
| 5481 | 
            +
            堀
         | 
| 5482 | 
            +
            梨
         | 
| 5483 | 
            +
            簿
         | 
| 5484 | 
            +
            鸭
         | 
| 5485 | 
            +
            蒸
         | 
| 5486 | 
            +
            亦
         | 
| 5487 | 
            +
            稽
         | 
| 5488 | 
            +
            浴
         | 
| 5489 | 
            +
            {
         | 
| 5490 | 
            +
            衢
         | 
| 5491 | 
            +
            束
         | 
| 5492 | 
            +
            槲
         | 
| 5493 | 
            +
            j
         | 
| 5494 | 
            +
            阁
         | 
| 5495 | 
            +
            揍
         | 
| 5496 | 
            +
            疥
         | 
| 5497 | 
            +
            棋
         | 
| 5498 | 
            +
            潋
         | 
| 5499 | 
            +
            聪
         | 
| 5500 | 
            +
            窜
         | 
| 5501 | 
            +
            乓
         | 
| 5502 | 
            +
            睛
         | 
| 5503 | 
            +
            插
         | 
| 5504 | 
            +
            冉
         | 
| 5505 | 
            +
            阪
         | 
| 5506 | 
            +
            苍
         | 
| 5507 | 
            +
            搽
         | 
| 5508 | 
            +
            「
         | 
| 5509 | 
            +
            蟾
         | 
| 5510 | 
            +
            螟
         | 
| 5511 | 
            +
            幸
         | 
| 5512 | 
            +
            仇
         | 
| 5513 | 
            +
            樽
         | 
| 5514 | 
            +
            撂
         | 
| 5515 | 
            +
            慢
         | 
| 5516 | 
            +
            跤
         | 
| 5517 | 
            +
            幔
         | 
| 5518 | 
            +
            俚
         | 
| 5519 | 
            +
            淅
         | 
| 5520 | 
            +
            覃
         | 
| 5521 | 
            +
            觊
         | 
| 5522 | 
            +
            溶
         | 
| 5523 | 
            +
            妖
         | 
| 5524 | 
            +
            帛
         | 
| 5525 | 
            +
            侨
         | 
| 5526 | 
            +
            曰
         | 
| 5527 | 
            +
            妾
         | 
| 5528 | 
            +
            泗
         | 
| 5529 | 
            +
            ·
         | 
| 5530 | 
            +
            :
         | 
| 5531 | 
            +
            瀘
         | 
| 5532 | 
            +
            風
         | 
| 5533 | 
            +
            Ë
         | 
| 5534 | 
            +
            (
         | 
| 5535 | 
            +
            )
         | 
| 5536 | 
            +
            ∶
         | 
| 5537 | 
            +
            紅
         | 
| 5538 | 
            +
            紗
         | 
| 5539 | 
            +
            瑭
         | 
| 5540 | 
            +
            雲
         | 
| 5541 | 
            +
            頭
         | 
| 5542 | 
            +
            鶏
         | 
| 5543 | 
            +
            財
         | 
| 5544 | 
            +
            許
         | 
| 5545 | 
            +
            •
         | 
| 5546 | 
            +
            ¥
         | 
| 5547 | 
            +
            樂
         | 
| 5548 | 
            +
            焗
         | 
| 5549 | 
            +
            麗
         | 
| 5550 | 
            +
            —
         | 
| 5551 | 
            +
            ;
         | 
| 5552 | 
            +
            滙
         | 
| 5553 | 
            +
            東
         | 
| 5554 | 
            +
            榮
         | 
| 5555 | 
            +
            繪
         | 
| 5556 | 
            +
            興
         | 
| 5557 | 
            +
            …
         | 
| 5558 | 
            +
            門
         | 
| 5559 | 
            +
            業
         | 
| 5560 | 
            +
            π
         | 
| 5561 | 
            +
            楊
         | 
| 5562 | 
            +
            國
         | 
| 5563 | 
            +
            顧
         | 
| 5564 | 
            +
            é
         | 
| 5565 | 
            +
            盤
         | 
| 5566 | 
            +
            寳
         | 
| 5567 | 
            +
            Λ
         | 
| 5568 | 
            +
            龍
         | 
| 5569 | 
            +
            鳳
         | 
| 5570 | 
            +
            島
         | 
| 5571 | 
            +
            誌
         | 
| 5572 | 
            +
            緣
         | 
| 5573 | 
            +
            結
         | 
| 5574 | 
            +
            銭
         | 
| 5575 | 
            +
            萬
         | 
| 5576 | 
            +
            勝
         | 
| 5577 | 
            +
            祎
         | 
| 5578 | 
            +
            璟
         | 
| 5579 | 
            +
            優
         | 
| 5580 | 
            +
            歡
         | 
| 5581 | 
            +
            臨
         | 
| 5582 | 
            +
            時
         | 
| 5583 | 
            +
            購
         | 
| 5584 | 
            +
            =
         | 
| 5585 | 
            +
            ★
         | 
| 5586 | 
            +
            藍
         | 
| 5587 | 
            +
            昇
         | 
| 5588 | 
            +
            鐵
         | 
| 5589 | 
            +
            觀
         | 
| 5590 | 
            +
            勅
         | 
| 5591 | 
            +
            農
         | 
| 5592 | 
            +
            聲
         | 
| 5593 | 
            +
            畫
         | 
| 5594 | 
            +
            兿
         | 
| 5595 | 
            +
            術
         | 
| 5596 | 
            +
            發
         | 
| 5597 | 
            +
            劉
         | 
| 5598 | 
            +
            記
         | 
| 5599 | 
            +
            專
         | 
| 5600 | 
            +
            耑
         | 
| 5601 | 
            +
            園
         | 
| 5602 | 
            +
            書
         | 
| 5603 | 
            +
            壴
         | 
| 5604 | 
            +
            種
         | 
| 5605 | 
            +
            Ο
         | 
| 5606 | 
            +
            ●
         | 
| 5607 | 
            +
            褀
         | 
| 5608 | 
            +
            號
         | 
| 5609 | 
            +
            銀
         | 
| 5610 | 
            +
            匯
         | 
| 5611 | 
            +
            敟
         | 
| 5612 | 
            +
            锘
         | 
| 5613 | 
            +
            葉
         | 
| 5614 | 
            +
            橪
         | 
| 5615 | 
            +
            廣
         | 
| 5616 | 
            +
            進
         | 
| 5617 | 
            +
            蒄
         | 
| 5618 | 
            +
            鑽
         | 
| 5619 | 
            +
            阝
         | 
| 5620 | 
            +
            祙
         | 
| 5621 | 
            +
            貢
         | 
| 5622 | 
            +
            鍋
         | 
| 5623 | 
            +
            豊
         | 
| 5624 | 
            +
            夬
         | 
| 5625 | 
            +
            喆
         | 
| 5626 | 
            +
            團
         | 
| 5627 | 
            +
            閣
         | 
| 5628 | 
            +
            開
         | 
| 5629 | 
            +
            燁
         | 
| 5630 | 
            +
            賓
         | 
| 5631 | 
            +
            館
         | 
| 5632 | 
            +
            酡
         | 
| 5633 | 
            +
            沔
         | 
| 5634 | 
            +
            順
         | 
| 5635 | 
            +
            +
         | 
| 5636 | 
            +
            硚
         | 
| 5637 | 
            +
            劵
         | 
| 5638 | 
            +
            饸
         | 
| 5639 | 
            +
            陽
         | 
| 5640 | 
            +
            車
         | 
| 5641 | 
            +
            湓
         | 
| 5642 | 
            +
            復
         | 
| 5643 | 
            +
            萊
         | 
| 5644 | 
            +
            氣
         | 
| 5645 | 
            +
            軒
         | 
| 5646 | 
            +
            華
         | 
| 5647 | 
            +
            堃
         | 
| 5648 | 
            +
            迮
         | 
| 5649 | 
            +
            纟
         | 
| 5650 | 
            +
            戶
         | 
| 5651 | 
            +
            馬
         | 
| 5652 | 
            +
            學
         | 
| 5653 | 
            +
            裡
         | 
| 5654 | 
            +
            電
         | 
| 5655 | 
            +
            嶽
         | 
| 5656 | 
            +
            獨
         | 
| 5657 | 
            +
            マ
         | 
| 5658 | 
            +
            シ
         | 
| 5659 | 
            +
            サ
         | 
| 5660 | 
            +
            ジ
         | 
| 5661 | 
            +
            燘
         | 
| 5662 | 
            +
            袪
         | 
| 5663 | 
            +
            環
         | 
| 5664 | 
            +
            ❤
         | 
| 5665 | 
            +
            臺
         | 
| 5666 | 
            +
            灣
         | 
| 5667 | 
            +
            専
         | 
| 5668 | 
            +
            賣
         | 
| 5669 | 
            +
            孖
         | 
| 5670 | 
            +
            聖
         | 
| 5671 | 
            +
            攝
         | 
| 5672 | 
            +
            線
         | 
| 5673 | 
            +
            ▪
         | 
| 5674 | 
            +
            α
         | 
| 5675 | 
            +
            傢
         | 
| 5676 | 
            +
            俬
         | 
| 5677 | 
            +
            夢
         | 
| 5678 | 
            +
            達
         | 
| 5679 | 
            +
            莊
         | 
| 5680 | 
            +
            喬
         | 
| 5681 | 
            +
            貝
         | 
| 5682 | 
            +
            薩
         | 
| 5683 | 
            +
            劍
         | 
| 5684 | 
            +
            羅
         | 
| 5685 | 
            +
            壓
         | 
| 5686 | 
            +
            棛
         | 
| 5687 | 
            +
            饦
         | 
| 5688 | 
            +
            尃
         | 
| 5689 | 
            +
            璈
         | 
| 5690 | 
            +
            囍
         | 
| 5691 | 
            +
            醫
         | 
| 5692 | 
            +
            G
         | 
| 5693 | 
            +
            I
         | 
| 5694 | 
            +
            A
         | 
| 5695 | 
            +
            #
         | 
| 5696 | 
            +
            N
         | 
| 5697 | 
            +
            鷄
         | 
| 5698 | 
            +
            髙
         | 
| 5699 | 
            +
            嬰
         | 
| 5700 | 
            +
            啓
         | 
| 5701 | 
            +
            約
         | 
| 5702 | 
            +
            隹
         | 
| 5703 | 
            +
            潔
         | 
| 5704 | 
            +
            賴
         | 
| 5705 | 
            +
            藝
         | 
| 5706 | 
            +
            ~
         | 
| 5707 | 
            +
            寶
         | 
| 5708 | 
            +
            籣
         | 
| 5709 | 
            +
            麺
         | 
| 5710 | 
            +
             
         | 
| 5711 | 
            +
            嶺
         | 
| 5712 | 
            +
            √
         | 
| 5713 | 
            +
            義
         | 
| 5714 | 
            +
            網
         | 
| 5715 | 
            +
            峩
         | 
| 5716 | 
            +
            長
         | 
| 5717 | 
            +
            ∧
         | 
| 5718 | 
            +
            魚
         | 
| 5719 | 
            +
            機
         | 
| 5720 | 
            +
            構
         | 
| 5721 | 
            +
            ②
         | 
| 5722 | 
            +
            鳯
         | 
| 5723 | 
            +
            偉
         | 
| 5724 | 
            +
            L
         | 
| 5725 | 
            +
            B
         | 
| 5726 | 
            +
            㙟
         | 
| 5727 | 
            +
            畵
         | 
| 5728 | 
            +
            鴿
         | 
| 5729 | 
            +
            '
         | 
| 5730 | 
            +
            詩
         | 
| 5731 | 
            +
            溝
         | 
| 5732 | 
            +
            嚞
         | 
| 5733 | 
            +
            屌
         | 
| 5734 | 
            +
            藔
         | 
| 5735 | 
            +
            佧
         | 
| 5736 | 
            +
            玥
         | 
| 5737 | 
            +
            蘭
         | 
| 5738 | 
            +
            織
         | 
| 5739 | 
            +
            1
         | 
| 5740 | 
            +
            3
         | 
| 5741 | 
            +
            9
         | 
| 5742 | 
            +
            0
         | 
| 5743 | 
            +
            7
         | 
| 5744 | 
            +
            點
         | 
| 5745 | 
            +
            砭
         | 
| 5746 | 
            +
            鴨
         | 
| 5747 | 
            +
            鋪
         | 
| 5748 | 
            +
            銘
         | 
| 5749 | 
            +
            廳
         | 
| 5750 | 
            +
            弍
         | 
| 5751 | 
            +
            ‧
         | 
| 5752 | 
            +
            創
         | 
| 5753 | 
            +
            湯
         | 
| 5754 | 
            +
            坶
         | 
| 5755 | 
            +
            ℃
         | 
| 5756 | 
            +
            卩
         | 
| 5757 | 
            +
            骝
         | 
| 5758 | 
            +
            &
         | 
| 5759 | 
            +
            烜
         | 
| 5760 | 
            +
            荘
         | 
| 5761 | 
            +
            當
         | 
| 5762 | 
            +
            潤
         | 
| 5763 | 
            +
            扞
         | 
| 5764 | 
            +
            係
         | 
| 5765 | 
            +
            懷
         | 
| 5766 | 
            +
            碶
         | 
| 5767 | 
            +
            钅
         | 
| 5768 | 
            +
            蚨
         | 
| 5769 | 
            +
            讠
         | 
| 5770 | 
            +
            ☆
         | 
| 5771 | 
            +
            叢
         | 
| 5772 | 
            +
            爲
         | 
| 5773 | 
            +
            埗
         | 
| 5774 | 
            +
            涫
         | 
| 5775 | 
            +
            塗
         | 
| 5776 | 
            +
            →
         | 
| 5777 | 
            +
            楽
         | 
| 5778 | 
            +
            現
         | 
| 5779 | 
            +
            鯨
         | 
| 5780 | 
            +
            愛
         | 
| 5781 | 
            +
            瑪
         | 
| 5782 | 
            +
            鈺
         | 
| 5783 | 
            +
            忄
         | 
| 5784 | 
            +
            悶
         | 
| 5785 | 
            +
            藥
         | 
| 5786 | 
            +
            飾
         | 
| 5787 | 
            +
            樓
         | 
| 5788 | 
            +
            視
         | 
| 5789 | 
            +
            孬
         | 
| 5790 | 
            +
            ㆍ
         | 
| 5791 | 
            +
            燚
         | 
| 5792 | 
            +
            苪
         | 
| 5793 | 
            +
            師
         | 
| 5794 | 
            +
            ①
         | 
| 5795 | 
            +
            丼
         | 
| 5796 | 
            +
            锽
         | 
| 5797 | 
            +
            │
         | 
| 5798 | 
            +
            韓
         | 
| 5799 | 
            +
            標
         | 
| 5800 | 
            +
            è
         | 
| 5801 | 
            +
            兒
         | 
| 5802 | 
            +
            閏
         | 
| 5803 | 
            +
            匋
         | 
| 5804 | 
            +
            張
         | 
| 5805 | 
            +
            漢
         | 
| 5806 | 
            +
            Ü
         | 
| 5807 | 
            +
            髪
         | 
| 5808 | 
            +
            會
         | 
| 5809 | 
            +
            閑
         | 
| 5810 | 
            +
            檔
         | 
| 5811 | 
            +
            習
         | 
| 5812 | 
            +
            裝
         | 
| 5813 | 
            +
            の
         | 
| 5814 | 
            +
            峯
         | 
| 5815 | 
            +
            菘
         | 
| 5816 | 
            +
            輝
         | 
| 5817 | 
            +
            И
         | 
| 5818 | 
            +
            雞
         | 
| 5819 | 
            +
            釣
         | 
| 5820 | 
            +
            億
         | 
| 5821 | 
            +
            浐
         | 
| 5822 | 
            +
            K
         | 
| 5823 | 
            +
            O
         | 
| 5824 | 
            +
            R
         | 
| 5825 | 
            +
            8
         | 
| 5826 | 
            +
            H
         | 
| 5827 | 
            +
            E
         | 
| 5828 | 
            +
            P
         | 
| 5829 | 
            +
            T
         | 
| 5830 | 
            +
            W
         | 
| 5831 | 
            +
            D
         | 
| 5832 | 
            +
            S
         | 
| 5833 | 
            +
            C
         | 
| 5834 | 
            +
            M
         | 
| 5835 | 
            +
            F
         | 
| 5836 | 
            +
            姌
         | 
| 5837 | 
            +
            饹
         | 
| 5838 | 
            +
            »
         | 
| 5839 | 
            +
            晞
         | 
| 5840 | 
            +
            廰
         | 
| 5841 | 
            +
            ä
         | 
| 5842 | 
            +
            嵯
         | 
| 5843 | 
            +
            鷹
         | 
| 5844 | 
            +
            負
         | 
| 5845 | 
            +
            飲
         | 
| 5846 | 
            +
            絲
         | 
| 5847 | 
            +
            冚
         | 
| 5848 | 
            +
            楗
         | 
| 5849 | 
            +
            澤
         | 
| 5850 | 
            +
            綫
         | 
| 5851 | 
            +
            區
         | 
| 5852 | 
            +
            ❋
         | 
| 5853 | 
            +
            ←
         | 
| 5854 | 
            +
            質
         | 
| 5855 | 
            +
            靑
         | 
| 5856 | 
            +
            揚
         | 
| 5857 | 
            +
            ③
         | 
| 5858 | 
            +
            滬
         | 
| 5859 | 
            +
            統
         | 
| 5860 | 
            +
            産
         | 
| 5861 | 
            +
            協
         | 
| 5862 | 
            +
            ﹑
         | 
| 5863 | 
            +
            乸
         | 
| 5864 | 
            +
            畐
         | 
| 5865 | 
            +
            經
         | 
| 5866 | 
            +
            運
         | 
| 5867 | 
            +
            際
         | 
| 5868 | 
            +
            洺
         | 
| 5869 | 
            +
            岽
         | 
| 5870 | 
            +
            為
         | 
| 5871 | 
            +
            粵
         | 
| 5872 | 
            +
            諾
         | 
| 5873 | 
            +
            崋
         | 
| 5874 | 
            +
            豐
         | 
| 5875 | 
            +
            碁
         | 
| 5876 | 
            +
            ɔ
         | 
| 5877 | 
            +
            V
         | 
| 5878 | 
            +
            2
         | 
| 5879 | 
            +
            6
         | 
| 5880 | 
            +
            齋
         | 
| 5881 | 
            +
            誠
         | 
| 5882 | 
            +
            訂
         | 
| 5883 | 
            +
            ´
         | 
| 5884 | 
            +
            勑
         | 
| 5885 | 
            +
            雙
         | 
| 5886 | 
            +
            陳
         | 
| 5887 | 
            +
            無
         | 
| 5888 | 
            +
            í
         | 
| 5889 | 
            +
            泩
         | 
| 5890 | 
            +
            媄
         | 
| 5891 | 
            +
            夌
         | 
| 5892 | 
            +
            刂
         | 
| 5893 | 
            +
            i
         | 
| 5894 | 
            +
            c
         | 
| 5895 | 
            +
            t
         | 
| 5896 | 
            +
            o
         | 
| 5897 | 
            +
            r
         | 
| 5898 | 
            +
            a
         | 
| 5899 | 
            +
            嘢
         | 
| 5900 | 
            +
            耄
         | 
| 5901 | 
            +
            燴
         | 
| 5902 | 
            +
            暃
         | 
| 5903 | 
            +
            壽
         | 
| 5904 | 
            +
            媽
         | 
| 5905 | 
            +
            靈
         | 
| 5906 | 
            +
            抻
         | 
| 5907 | 
            +
            體
         | 
| 5908 | 
            +
            唻
         | 
| 5909 | 
            +
            É
         | 
| 5910 | 
            +
            冮
         | 
| 5911 | 
            +
            甹
         | 
| 5912 | 
            +
            鎮
         | 
| 5913 | 
            +
            錦
         | 
| 5914 | 
            +
            ʌ
         | 
| 5915 | 
            +
            蜛
         | 
| 5916 | 
            +
            蠄
         | 
| 5917 | 
            +
            尓
         | 
| 5918 | 
            +
            駕
         | 
| 5919 | 
            +
            戀
         | 
| 5920 | 
            +
            飬
         | 
| 5921 | 
            +
            逹
         | 
| 5922 | 
            +
            倫
         | 
| 5923 | 
            +
            貴
         | 
| 5924 | 
            +
            極
         | 
| 5925 | 
            +
            Я
         | 
| 5926 | 
            +
            Й
         | 
| 5927 | 
            +
            寬
         | 
| 5928 | 
            +
            磚
         | 
| 5929 | 
            +
            嶪
         | 
| 5930 | 
            +
            郎
         | 
| 5931 | 
            +
            職
         | 
| 5932 | 
            +
            |
         | 
| 5933 | 
            +
            間
         | 
| 5934 | 
            +
            n
         | 
| 5935 | 
            +
            d
         | 
| 5936 | 
            +
            剎
         | 
| 5937 | 
            +
            伈
         | 
| 5938 | 
            +
            課
         | 
| 5939 | 
            +
            飛
         | 
| 5940 | 
            +
            橋
         | 
| 5941 | 
            +
            瘊
         | 
| 5942 | 
            +
            №
         | 
| 5943 | 
            +
            譜
         | 
| 5944 | 
            +
            骓
         | 
| 5945 | 
            +
            圗
         | 
| 5946 | 
            +
            滘
         | 
| 5947 | 
            +
            縣
         | 
| 5948 | 
            +
            粿
         | 
| 5949 | 
            +
            咅
         | 
| 5950 | 
            +
            養
         | 
| 5951 | 
            +
            濤
         | 
| 5952 | 
            +
            彳
         | 
| 5953 | 
            +
            ®
         | 
| 5954 | 
            +
            %
         | 
| 5955 | 
            +
            Ⅱ
         | 
| 5956 | 
            +
            啰
         | 
| 5957 | 
            +
            㴪
         | 
| 5958 | 
            +
            見
         | 
| 5959 | 
            +
            矞
         | 
| 5960 | 
            +
            薬
         | 
| 5961 | 
            +
            糁
         | 
| 5962 | 
            +
            邨
         | 
| 5963 | 
            +
            鲮
         | 
| 5964 | 
            +
            顔
         | 
| 5965 | 
            +
            罱
         | 
| 5966 | 
            +
            З
         | 
| 5967 | 
            +
            選
         | 
| 5968 | 
            +
            話
         | 
| 5969 | 
            +
            贏
         | 
| 5970 | 
            +
            氪
         | 
| 5971 | 
            +
            俵
         | 
| 5972 | 
            +
            競
         | 
| 5973 | 
            +
            瑩
         | 
| 5974 | 
            +
            繡
         | 
| 5975 | 
            +
            枱
         | 
| 5976 | 
            +
            β
         | 
| 5977 | 
            +
            綉
         | 
| 5978 | 
            +
            á
         | 
| 5979 | 
            +
            獅
         | 
| 5980 | 
            +
            爾
         | 
| 5981 | 
            +
            ™
         | 
| 5982 | 
            +
            麵
         | 
| 5983 | 
            +
            戋
         | 
| 5984 | 
            +
            淩
         | 
| 5985 | 
            +
            徳
         | 
| 5986 | 
            +
            個
         | 
| 5987 | 
            +
            劇
         | 
| 5988 | 
            +
            場
         | 
| 5989 | 
            +
            務
         | 
| 5990 | 
            +
            簡
         | 
| 5991 | 
            +
            寵
         | 
| 5992 | 
            +
            h
         | 
| 5993 | 
            +
            實
         | 
| 5994 | 
            +
            膠
         | 
| 5995 | 
            +
            轱
         | 
| 5996 | 
            +
            圖
         | 
| 5997 | 
            +
            築
         | 
| 5998 | 
            +
            嘣
         | 
| 5999 | 
            +
            樹
         | 
| 6000 | 
            +
            㸃
         | 
| 6001 | 
            +
            營
         | 
| 6002 | 
            +
            耵
         | 
| 6003 | 
            +
            孫
         | 
| 6004 | 
            +
            饃
         | 
| 6005 | 
            +
            鄺
         | 
| 6006 | 
            +
            飯
         | 
| 6007 | 
            +
            麯
         | 
| 6008 | 
            +
            遠
         | 
| 6009 | 
            +
            輸
         | 
| 6010 | 
            +
            坫
         | 
| 6011 | 
            +
            孃
         | 
| 6012 | 
            +
            乚
         | 
| 6013 | 
            +
            閃
         | 
| 6014 | 
            +
            鏢
         | 
| 6015 | 
            +
            ㎡
         | 
| 6016 | 
            +
            題
         | 
| 6017 | 
            +
            廠
         | 
| 6018 | 
            +
            關
         | 
| 6019 | 
            +
            ↑
         | 
| 6020 | 
            +
            爺
         | 
| 6021 | 
            +
            將
         | 
| 6022 | 
            +
            軍
         | 
| 6023 | 
            +
            連
         | 
| 6024 | 
            +
            篦
         | 
| 6025 | 
            +
            覌
         | 
| 6026 | 
            +
            參
         | 
| 6027 | 
            +
            箸
         | 
| 6028 | 
            +
            -
         | 
| 6029 | 
            +
            窠
         | 
| 6030 | 
            +
            棽
         | 
| 6031 | 
            +
            寕
         | 
| 6032 | 
            +
            夀
         | 
| 6033 | 
            +
            爰
         | 
| 6034 | 
            +
            歐
         | 
| 6035 | 
            +
            呙
         | 
| 6036 | 
            +
            閥
         | 
| 6037 | 
            +
            頡
         | 
| 6038 | 
            +
            熱
         | 
| 6039 | 
            +
            雎
         | 
| 6040 | 
            +
            垟
         | 
| 6041 | 
            +
            裟
         | 
| 6042 | 
            +
            凬
         | 
| 6043 | 
            +
            勁
         | 
| 6044 | 
            +
            帑
         | 
| 6045 | 
            +
            馕
         | 
| 6046 | 
            +
            夆
         | 
| 6047 | 
            +
            疌
         | 
| 6048 | 
            +
            枼
         | 
| 6049 | 
            +
            馮
         | 
| 6050 | 
            +
            貨
         | 
| 6051 | 
            +
            蒤
         | 
| 6052 | 
            +
            樸
         | 
| 6053 | 
            +
            彧
         | 
| 6054 | 
            +
            旸
         | 
| 6055 | 
            +
            靜
         | 
| 6056 | 
            +
            龢
         | 
| 6057 | 
            +
            暢
         | 
| 6058 | 
            +
            㐱
         | 
| 6059 | 
            +
            鳥
         | 
| 6060 | 
            +
            珺
         | 
| 6061 | 
            +
            鏡
         | 
| 6062 | 
            +
            灡
         | 
| 6063 | 
            +
            爭
         | 
| 6064 | 
            +
            堷
         | 
| 6065 | 
            +
            廚
         | 
| 6066 | 
            +
            Ó
         | 
| 6067 | 
            +
            騰
         | 
| 6068 | 
            +
            診
         | 
| 6069 | 
            +
            ┅
         | 
| 6070 | 
            +
            蘇
         | 
| 6071 | 
            +
            褔
         | 
| 6072 | 
            +
            凱
         | 
| 6073 | 
            +
            頂
         | 
| 6074 | 
            +
            豕
         | 
| 6075 | 
            +
            亞
         | 
| 6076 | 
            +
            帥
         | 
| 6077 | 
            +
            嘬
         | 
| 6078 | 
            +
            ⊥
         | 
| 6079 | 
            +
            仺
         | 
| 6080 | 
            +
            桖
         | 
| 6081 | 
            +
            複
         | 
| 6082 | 
            +
            饣
         | 
| 6083 | 
            +
            絡
         | 
| 6084 | 
            +
            穂
         | 
| 6085 | 
            +
            顏
         | 
| 6086 | 
            +
            棟
         | 
| 6087 | 
            +
            納
         | 
| 6088 | 
            +
            ▏
         | 
| 6089 | 
            +
            濟
         | 
| 6090 | 
            +
            親
         | 
| 6091 | 
            +
            設
         | 
| 6092 | 
            +
            計
         | 
| 6093 | 
            +
            攵
         | 
| 6094 | 
            +
            埌
         | 
| 6095 | 
            +
            烺
         | 
| 6096 | 
            +
            ò
         | 
| 6097 | 
            +
            頤
         | 
| 6098 | 
            +
            燦
         | 
| 6099 | 
            +
            蓮
         | 
| 6100 | 
            +
            撻
         | 
| 6101 | 
            +
            節
         | 
| 6102 | 
            +
            講
         | 
| 6103 | 
            +
            濱
         | 
| 6104 | 
            +
            濃
         | 
| 6105 | 
            +
            娽
         | 
| 6106 | 
            +
            洳
         | 
| 6107 | 
            +
            朿
         | 
| 6108 | 
            +
            燈
         | 
| 6109 | 
            +
            鈴
         | 
| 6110 | 
            +
            護
         | 
| 6111 | 
            +
            膚
         | 
| 6112 | 
            +
            铔
         | 
| 6113 | 
            +
            過
         | 
| 6114 | 
            +
            補
         | 
| 6115 | 
            +
            Z
         | 
| 6116 | 
            +
            U
         | 
| 6117 | 
            +
            5
         | 
| 6118 | 
            +
            4
         | 
| 6119 | 
            +
            坋
         | 
| 6120 | 
            +
            闿
         | 
| 6121 | 
            +
            䖝
         | 
| 6122 | 
            +
            餘
         | 
| 6123 | 
            +
            缐
         | 
| 6124 | 
            +
            铞
         | 
| 6125 | 
            +
            貿
         | 
| 6126 | 
            +
            铪
         | 
| 6127 | 
            +
            桼
         | 
| 6128 | 
            +
            趙
         | 
| 6129 | 
            +
            鍊
         | 
| 6130 | 
            +
            [
         | 
| 6131 | 
            +
            㐂
         | 
| 6132 | 
            +
            垚
         | 
| 6133 | 
            +
            菓
         | 
| 6134 | 
            +
            揸
         | 
| 6135 | 
            +
            捲
         | 
| 6136 | 
            +
            鐘
         | 
| 6137 | 
            +
            滏
         | 
| 6138 | 
            +
            𣇉
         | 
| 6139 | 
            +
            爍
         | 
| 6140 | 
            +
            輪
         | 
| 6141 | 
            +
            燜
         | 
| 6142 | 
            +
            鴻
         | 
| 6143 | 
            +
            鮮
         | 
| 6144 | 
            +
            動
         | 
| 6145 | 
            +
            鹞
         | 
| 6146 | 
            +
            鷗
         | 
| 6147 | 
            +
            丄
         | 
| 6148 | 
            +
            慶
         | 
| 6149 | 
            +
            鉌
         | 
| 6150 | 
            +
            翥
         | 
| 6151 | 
            +
            飮
         | 
| 6152 | 
            +
            腸
         | 
| 6153 | 
            +
            ⇋
         | 
| 6154 | 
            +
            漁
         | 
| 6155 | 
            +
            覺
         | 
| 6156 | 
            +
            來
         | 
| 6157 | 
            +
            熘
         | 
| 6158 | 
            +
            昴
         | 
| 6159 | 
            +
            翏
         | 
| 6160 | 
            +
            鲱
         | 
| 6161 | 
            +
            圧
         | 
| 6162 | 
            +
            鄉
         | 
| 6163 | 
            +
            萭
         | 
| 6164 | 
            +
            頔
         | 
| 6165 | 
            +
            爐
         | 
| 6166 | 
            +
            嫚
         | 
| 6167 | 
            +
            г
         | 
| 6168 | 
            +
            貭
         | 
| 6169 | 
            +
            類
         | 
| 6170 | 
            +
            聯
         | 
| 6171 | 
            +
            幛
         | 
| 6172 | 
            +
            輕
         | 
| 6173 | 
            +
            訓
         | 
| 6174 | 
            +
            鑒
         | 
| 6175 | 
            +
            夋
         | 
| 6176 | 
            +
            锨
         | 
| 6177 | 
            +
            芃
         | 
| 6178 | 
            +
            珣
         | 
| 6179 | 
            +
            䝉
         | 
| 6180 | 
            +
            扙
         | 
| 6181 | 
            +
            嵐
         | 
| 6182 | 
            +
            銷
         | 
| 6183 | 
            +
            處
         | 
| 6184 | 
            +
            ㄱ
         | 
| 6185 | 
            +
            語
         | 
| 6186 | 
            +
            誘
         | 
| 6187 | 
            +
            苝
         | 
| 6188 | 
            +
            歸
         | 
| 6189 | 
            +
            儀
         | 
| 6190 | 
            +
            燒
         | 
| 6191 | 
            +
            楿
         | 
| 6192 | 
            +
            內
         | 
| 6193 | 
            +
            粢
         | 
| 6194 | 
            +
            葒
         | 
| 6195 | 
            +
            奧
         | 
| 6196 | 
            +
            麥
         | 
| 6197 | 
            +
            礻
         | 
| 6198 | 
            +
            滿
         | 
| 6199 | 
            +
            蠔
         | 
| 6200 | 
            +
            穵
         | 
| 6201 | 
            +
            瞭
         | 
| 6202 | 
            +
            態
         | 
| 6203 | 
            +
            鱬
         | 
| 6204 | 
            +
            榞
         | 
| 6205 | 
            +
            硂
         | 
| 6206 | 
            +
            鄭
         | 
| 6207 | 
            +
            黃
         | 
| 6208 | 
            +
            煙
         | 
| 6209 | 
            +
            祐
         | 
| 6210 | 
            +
            奓
         | 
| 6211 | 
            +
            逺
         | 
| 6212 | 
            +
            *
         | 
| 6213 | 
            +
            瑄
         | 
| 6214 | 
            +
            獲
         | 
| 6215 | 
            +
            聞
         | 
| 6216 | 
            +
            薦
         | 
| 6217 | 
            +
            讀
         | 
| 6218 | 
            +
            這
         | 
| 6219 | 
            +
            樣
         | 
| 6220 | 
            +
            決
         | 
| 6221 | 
            +
            問
         | 
| 6222 | 
            +
            啟
         | 
| 6223 | 
            +
            們
         | 
| 6224 | 
            +
            執
         | 
| 6225 | 
            +
            説
         | 
| 6226 | 
            +
            轉
         | 
| 6227 | 
            +
            單
         | 
| 6228 | 
            +
            隨
         | 
| 6229 | 
            +
            唘
         | 
| 6230 | 
            +
            帶
         | 
| 6231 | 
            +
            倉
         | 
| 6232 | 
            +
            庫
         | 
| 6233 | 
            +
            還
         | 
| 6234 | 
            +
            贈
         | 
| 6235 | 
            +
            尙
         | 
| 6236 | 
            +
            皺
         | 
| 6237 | 
            +
            ■
         | 
| 6238 | 
            +
            餅
         | 
| 6239 | 
            +
            產
         | 
| 6240 | 
            +
            ○
         | 
| 6241 | 
            +
            ∈
         | 
| 6242 | 
            +
            報
         | 
| 6243 | 
            +
            狀
         | 
| 6244 | 
            +
            楓
         | 
| 6245 | 
            +
            賠
         | 
| 6246 | 
            +
            琯
         | 
| 6247 | 
            +
            嗮
         | 
| 6248 | 
            +
            禮
         | 
| 6249 | 
            +
            `
         | 
| 6250 | 
            +
            傳
         | 
| 6251 | 
            +
            >
         | 
| 6252 | 
            +
            ≤
         | 
| 6253 | 
            +
            嗞
         | 
| 6254 | 
            +
            Φ
         | 
| 6255 | 
            +
            ≥
         | 
| 6256 | 
            +
            換
         | 
| 6257 | 
            +
            咭
         | 
| 6258 | 
            +
            ∣
         | 
| 6259 | 
            +
            ↓
         | 
| 6260 | 
            +
            曬
         | 
| 6261 | 
            +
            ε
         | 
| 6262 | 
            +
            応
         | 
| 6263 | 
            +
            寫
         | 
| 6264 | 
            +
            ″
         | 
| 6265 | 
            +
            終
         | 
| 6266 | 
            +
            様
         | 
| 6267 | 
            +
            純
         | 
| 6268 | 
            +
            費
         | 
| 6269 | 
            +
            療
         | 
| 6270 | 
            +
            聨
         | 
| 6271 | 
            +
            凍
         | 
| 6272 | 
            +
            壐
         | 
| 6273 | 
            +
            郵
         | 
| 6274 | 
            +
            ü
         | 
| 6275 | 
            +
            黒
         | 
| 6276 | 
            +
            ∫
         | 
| 6277 | 
            +
            製
         | 
| 6278 | 
            +
            塊
         | 
| 6279 | 
            +
            調
         | 
| 6280 | 
            +
            軽
         | 
| 6281 | 
            +
            確
         | 
| 6282 | 
            +
            撃
         | 
| 6283 | 
            +
            級
         | 
| 6284 | 
            +
            馴
         | 
| 6285 | 
            +
            Ⅲ
         | 
| 6286 | 
            +
            涇
         | 
| 6287 | 
            +
            繹
         | 
| 6288 | 
            +
            數
         | 
| 6289 | 
            +
            碼
         | 
| 6290 | 
            +
            證
         | 
| 6291 | 
            +
            狒
         | 
| 6292 | 
            +
            処
         | 
| 6293 | 
            +
            劑
         | 
| 6294 | 
            +
            <
         | 
| 6295 | 
            +
            晧
         | 
| 6296 | 
            +
            賀
         | 
| 6297 | 
            +
            衆
         | 
| 6298 | 
            +
            ]
         | 
| 6299 | 
            +
            櫥
         | 
| 6300 | 
            +
            兩
         | 
| 6301 | 
            +
            陰
         | 
| 6302 | 
            +
            絶
         | 
| 6303 | 
            +
            對
         | 
| 6304 | 
            +
            鯉
         | 
| 6305 | 
            +
            憶
         | 
| 6306 | 
            +
            ◎
         | 
| 6307 | 
            +
            p
         | 
| 6308 | 
            +
            e
         | 
| 6309 | 
            +
            Y
         | 
| 6310 | 
            +
            蕒
         | 
| 6311 | 
            +
            煖
         | 
| 6312 | 
            +
            頓
         | 
| 6313 | 
            +
            測
         | 
| 6314 | 
            +
            試
         | 
| 6315 | 
            +
            鼽
         | 
| 6316 | 
            +
            僑
         | 
| 6317 | 
            +
            碩
         | 
| 6318 | 
            +
            妝
         | 
| 6319 | 
            +
            帯
         | 
| 6320 | 
            +
            ≈
         | 
| 6321 | 
            +
            鐡
         | 
| 6322 | 
            +
            舖
         | 
| 6323 | 
            +
            權
         | 
| 6324 | 
            +
            喫
         | 
| 6325 | 
            +
            倆
         | 
| 6326 | 
            +
            ˋ
         | 
| 6327 | 
            +
            該
         | 
| 6328 | 
            +
            悅
         | 
| 6329 | 
            +
            ā
         | 
| 6330 | 
            +
            俫
         | 
| 6331 | 
            +
            .
         | 
| 6332 | 
            +
            f
         | 
| 6333 | 
            +
            s
         | 
| 6334 | 
            +
            b
         | 
| 6335 | 
            +
            m
         | 
| 6336 | 
            +
            k
         | 
| 6337 | 
            +
            g
         | 
| 6338 | 
            +
            u
         | 
| 6339 | 
            +
            j
         | 
| 6340 | 
            +
            貼
         | 
| 6341 | 
            +
            淨
         | 
| 6342 | 
            +
            濕
         | 
| 6343 | 
            +
            針
         | 
| 6344 | 
            +
            適
         | 
| 6345 | 
            +
            備
         | 
| 6346 | 
            +
            l
         | 
| 6347 | 
            +
            /
         | 
| 6348 | 
            +
            給
         | 
| 6349 | 
            +
            謢
         | 
| 6350 | 
            +
            強
         | 
| 6351 | 
            +
            觸
         | 
| 6352 | 
            +
            衛
         | 
| 6353 | 
            +
            與
         | 
| 6354 | 
            +
            ⊙
         | 
| 6355 | 
            +
            $
         | 
| 6356 | 
            +
            緯
         | 
| 6357 | 
            +
            變
         | 
| 6358 | 
            +
            ⑴
         | 
| 6359 | 
            +
            ⑵
         | 
| 6360 | 
            +
            ⑶
         | 
| 6361 | 
            +
            ㎏
         | 
| 6362 | 
            +
            殺
         | 
| 6363 | 
            +
            ∩
         | 
| 6364 | 
            +
            幚
         | 
| 6365 | 
            +
            ─
         | 
| 6366 | 
            +
            價
         | 
| 6367 | 
            +
            ▲
         | 
| 6368 | 
            +
            離
         | 
| 6369 | 
            +
            ú
         | 
| 6370 | 
            +
            ó
         | 
| 6371 | 
            +
            飄
         | 
| 6372 | 
            +
            烏
         | 
| 6373 | 
            +
            関
         | 
| 6374 | 
            +
            閟
         | 
| 6375 | 
            +
            ﹝
         | 
| 6376 | 
            +
            ﹞
         | 
| 6377 | 
            +
            邏
         | 
| 6378 | 
            +
            輯
         | 
| 6379 | 
            +
            鍵
         | 
| 6380 | 
            +
            驗
         | 
| 6381 | 
            +
            訣
         | 
| 6382 | 
            +
            導
         | 
| 6383 | 
            +
            歷
         | 
| 6384 | 
            +
            屆
         | 
| 6385 | 
            +
            層
         | 
| 6386 | 
            +
            ▼
         | 
| 6387 | 
            +
            儱
         | 
| 6388 | 
            +
            錄
         | 
| 6389 | 
            +
            熳
         | 
| 6390 | 
            +
            ē
         | 
| 6391 | 
            +
            艦
         | 
| 6392 | 
            +
            吋
         | 
| 6393 | 
            +
            錶
         | 
| 6394 | 
            +
            辧
         | 
| 6395 | 
            +
            飼
         | 
| 6396 | 
            +
            顯
         | 
| 6397 | 
            +
            ④
         | 
| 6398 | 
            +
            禦
         | 
| 6399 | 
            +
            販
         | 
| 6400 | 
            +
            気
         | 
| 6401 | 
            +
            対
         | 
| 6402 | 
            +
            枰
         | 
| 6403 | 
            +
            閩
         | 
| 6404 | 
            +
            紀
         | 
| 6405 | 
            +
            幹
         | 
| 6406 | 
            +
            瞓
         | 
| 6407 | 
            +
            貊
         | 
| 6408 | 
            +
            淚
         | 
| 6409 | 
            +
            △
         | 
| 6410 | 
            +
            眞
         | 
| 6411 | 
            +
            墊
         | 
| 6412 | 
            +
            Ω
         | 
| 6413 | 
            +
            獻
         | 
| 6414 | 
            +
            褲
         | 
| 6415 | 
            +
            縫
         | 
| 6416 | 
            +
            緑
         | 
| 6417 | 
            +
            亜
         | 
| 6418 | 
            +
            鉅
         | 
| 6419 | 
            +
            餠
         | 
| 6420 | 
            +
            {
         | 
| 6421 | 
            +
            }
         | 
| 6422 | 
            +
            ◆
         | 
| 6423 | 
            +
            蘆
         | 
| 6424 | 
            +
            薈
         | 
| 6425 | 
            +
            █
         | 
| 6426 | 
            +
            ◇
         | 
| 6427 | 
            +
            溫
         | 
| 6428 | 
            +
            彈
         | 
| 6429 | 
            +
            晳
         | 
| 6430 | 
            +
            粧
         | 
| 6431 | 
            +
            犸
         | 
| 6432 | 
            +
            穩
         | 
| 6433 | 
            +
            訊
         | 
| 6434 | 
            +
            崬
         | 
| 6435 | 
            +
            凖
         | 
| 6436 | 
            +
            熥
         | 
| 6437 | 
            +
            П
         | 
| 6438 | 
            +
            舊
         | 
| 6439 | 
            +
            條
         | 
| 6440 | 
            +
            紋
         | 
| 6441 | 
            +
            圍
         | 
| 6442 | 
            +
            Ⅳ
         | 
| 6443 | 
            +
            筆
         | 
| 6444 | 
            +
            尷
         | 
| 6445 | 
            +
            難
         | 
| 6446 | 
            +
            雜
         | 
| 6447 | 
            +
            錯
         | 
| 6448 | 
            +
            綁
         | 
| 6449 | 
            +
            識
         | 
| 6450 | 
            +
            頰
         | 
| 6451 | 
            +
            鎖
         | 
| 6452 | 
            +
            艶
         | 
| 6453 | 
            +
            □
         | 
| 6454 | 
            +
            殁
         | 
| 6455 | 
            +
            殼
         | 
| 6456 | 
            +
            ⑧
         | 
| 6457 | 
            +
            ├
         | 
| 6458 | 
            +
            ▕
         | 
| 6459 | 
            +
            鵬
         | 
| 6460 | 
            +
            ǐ
         | 
| 6461 | 
            +
            ō
         | 
| 6462 | 
            +
            ǒ
         | 
| 6463 | 
            +
            糝
         | 
| 6464 | 
            +
            綱
         | 
| 6465 | 
            +
            ▎
         | 
| 6466 | 
            +
            μ
         | 
| 6467 | 
            +
            盜
         | 
| 6468 | 
            +
            饅
         | 
| 6469 | 
            +
            醬
         | 
| 6470 | 
            +
            籤
         | 
| 6471 | 
            +
            蓋
         | 
| 6472 | 
            +
            釀
         | 
| 6473 | 
            +
            鹽
         | 
| 6474 | 
            +
            據
         | 
| 6475 | 
            +
            à
         | 
| 6476 | 
            +
            ɡ
         | 
| 6477 | 
            +
            辦
         | 
| 6478 | 
            +
            ◥
         | 
| 6479 | 
            +
            彐
         | 
| 6480 | 
            +
            ┌
         | 
| 6481 | 
            +
            婦
         | 
| 6482 | 
            +
            獸
         | 
| 6483 | 
            +
            鲩
         | 
| 6484 | 
            +
            伱
         | 
| 6485 | 
            +
            ī
         | 
| 6486 | 
            +
            蒟
         | 
| 6487 | 
            +
            蒻
         | 
| 6488 | 
            +
            齊
         | 
| 6489 | 
            +
            袆
         | 
| 6490 | 
            +
            腦
         | 
| 6491 | 
            +
            寧
         | 
| 6492 | 
            +
            凈
         | 
| 6493 | 
            +
            妳
         | 
| 6494 | 
            +
            煥
         | 
| 6495 | 
            +
            詢
         | 
| 6496 | 
            +
            偽
         | 
| 6497 | 
            +
            謹
         | 
| 6498 | 
            +
            啫
         | 
| 6499 | 
            +
            鯽
         | 
| 6500 | 
            +
            騷
         | 
| 6501 | 
            +
            鱸
         | 
| 6502 | 
            +
            損
         | 
| 6503 | 
            +
            傷
         | 
| 6504 | 
            +
            鎻
         | 
| 6505 | 
            +
            髮
         | 
| 6506 | 
            +
            買
         | 
| 6507 | 
            +
            冏
         | 
| 6508 | 
            +
            儥
         | 
| 6509 | 
            +
            両
         | 
| 6510 | 
            +
            ﹢
         | 
| 6511 | 
            +
            ∞
         | 
| 6512 | 
            +
            載
         | 
| 6513 | 
            +
            喰
         | 
| 6514 | 
            +
            z
         | 
| 6515 | 
            +
            羙
         | 
| 6516 | 
            +
            悵
         | 
| 6517 | 
            +
            燙
         | 
| 6518 | 
            +
            曉
         | 
| 6519 | 
            +
            員
         | 
| 6520 | 
            +
            組
         | 
| 6521 | 
            +
            徹
         | 
| 6522 | 
            +
            艷
         | 
| 6523 | 
            +
            痠
         | 
| 6524 | 
            +
            鋼
         | 
| 6525 | 
            +
            鼙
         | 
| 6526 | 
            +
            縮
         | 
| 6527 | 
            +
            細
         | 
| 6528 | 
            +
            嚒
         | 
| 6529 | 
            +
            爯
         | 
| 6530 | 
            +
            ≠
         | 
| 6531 | 
            +
            維
         | 
| 6532 | 
            +
            "
         | 
| 6533 | 
            +
            鱻
         | 
| 6534 | 
            +
            壇
         | 
| 6535 | 
            +
            厍
         | 
| 6536 | 
            +
            帰
         | 
| 6537 | 
            +
            浥
         | 
| 6538 | 
            +
            犇
         | 
| 6539 | 
            +
            薡
         | 
| 6540 | 
            +
            軎
         | 
| 6541 | 
            +
            ²
         | 
| 6542 | 
            +
            應
         | 
| 6543 | 
            +
            醜
         | 
| 6544 | 
            +
            刪
         | 
| 6545 | 
            +
            緻
         | 
| 6546 | 
            +
            鶴
         | 
| 6547 | 
            +
            賜
         | 
| 6548 | 
            +
            噁
         | 
| 6549 | 
            +
            軌
         | 
| 6550 | 
            +
            尨
         | 
| 6551 | 
            +
            镔
         | 
| 6552 | 
            +
            鷺
         | 
| 6553 | 
            +
            槗
         | 
| 6554 | 
            +
            彌
         | 
| 6555 | 
            +
            葚
         | 
| 6556 | 
            +
            濛
         | 
| 6557 | 
            +
            請
         | 
| 6558 | 
            +
            溇
         | 
| 6559 | 
            +
            緹
         | 
| 6560 | 
            +
            賢
         | 
| 6561 | 
            +
            訪
         | 
| 6562 | 
            +
            獴
         | 
| 6563 | 
            +
            瑅
         | 
| 6564 | 
            +
            資
         | 
| 6565 | 
            +
            縤
         | 
| 6566 | 
            +
            陣
         | 
| 6567 | 
            +
            蕟
         | 
| 6568 | 
            +
            栢
         | 
| 6569 | 
            +
            韻
         | 
| 6570 | 
            +
            祼
         | 
| 6571 | 
            +
            恁
         | 
| 6572 | 
            +
            伢
         | 
| 6573 | 
            +
            謝
         | 
| 6574 | 
            +
            劃
         | 
| 6575 | 
            +
            涑
         | 
| 6576 | 
            +
            總
         | 
| 6577 | 
            +
            衖
         | 
| 6578 | 
            +
            踺
         | 
| 6579 | 
            +
            砋
         | 
| 6580 | 
            +
            凉
         | 
| 6581 | 
            +
            籃
         | 
| 6582 | 
            +
            駿
         | 
| 6583 | 
            +
            苼
         | 
| 6584 | 
            +
            瘋
         | 
| 6585 | 
            +
            昽
         | 
| 6586 | 
            +
            紡
         | 
| 6587 | 
            +
            驊
         | 
| 6588 | 
            +
            腎
         | 
| 6589 | 
            +
            ﹗
         | 
| 6590 | 
            +
            響
         | 
| 6591 | 
            +
            杋
         | 
| 6592 | 
            +
            剛
         | 
| 6593 | 
            +
            嚴
         | 
| 6594 | 
            +
            禪
         | 
| 6595 | 
            +
            歓
         | 
| 6596 | 
            +
            槍
         | 
| 6597 | 
            +
            傘
         | 
| 6598 | 
            +
            檸
         | 
| 6599 | 
            +
            檫
         | 
| 6600 | 
            +
            炣
         | 
| 6601 | 
            +
            勢
         | 
| 6602 | 
            +
            鏜
         | 
| 6603 | 
            +
            鎢
         | 
| 6604 | 
            +
            銑
         | 
| 6605 | 
            +
            尐
         | 
| 6606 | 
            +
            減
         | 
| 6607 | 
            +
            奪
         | 
| 6608 | 
            +
            惡
         | 
| 6609 | 
            +
            θ
         | 
| 6610 | 
            +
            僮
         | 
| 6611 | 
            +
            婭
         | 
| 6612 | 
            +
            臘
         | 
| 6613 | 
            +
            ū
         | 
| 6614 | 
            +
            ì
         | 
| 6615 | 
            +
            殻
         | 
| 6616 | 
            +
            鉄
         | 
| 6617 | 
            +
            ∑
         | 
| 6618 | 
            +
            蛲
         | 
| 6619 | 
            +
            焼
         | 
| 6620 | 
            +
            緖
         | 
| 6621 | 
            +
            續
         | 
| 6622 | 
            +
            紹
         | 
| 6623 | 
            +
            懮
         | 
    	
        deepdoc/visual/operators.py
    ADDED
    
    | @@ -0,0 +1,710 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #
         | 
| 2 | 
            +
            #  Copyright 2024 The InfiniFlow Authors. All Rights Reserved.
         | 
| 3 | 
            +
            #
         | 
| 4 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 5 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 6 | 
            +
            #  You may obtain a copy of the License at
         | 
| 7 | 
            +
            #
         | 
| 8 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 9 | 
            +
            #
         | 
| 10 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 11 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 12 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 13 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 14 | 
            +
            #  limitations under the License.
         | 
| 15 | 
            +
            #
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            import sys
         | 
| 18 | 
            +
            import six
         | 
| 19 | 
            +
            import cv2
         | 
| 20 | 
            +
            import numpy as np
         | 
| 21 | 
            +
            import math
         | 
| 22 | 
            +
            from PIL import Image
         | 
| 23 | 
            +
             | 
| 24 | 
            +
             | 
| 25 | 
            +
            class DecodeImage(object):
         | 
| 26 | 
            +
                """ decode image """
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def __init__(self,
         | 
| 29 | 
            +
                             img_mode='RGB',
         | 
| 30 | 
            +
                             channel_first=False,
         | 
| 31 | 
            +
                             ignore_orientation=False,
         | 
| 32 | 
            +
                             **kwargs):
         | 
| 33 | 
            +
                    self.img_mode = img_mode
         | 
| 34 | 
            +
                    self.channel_first = channel_first
         | 
| 35 | 
            +
                    self.ignore_orientation = ignore_orientation
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def __call__(self, data):
         | 
| 38 | 
            +
                    img = data['image']
         | 
| 39 | 
            +
                    if six.PY2:
         | 
| 40 | 
            +
                        assert isinstance(img, str) and len(
         | 
| 41 | 
            +
                            img) > 0, "invalid input 'img' in DecodeImage"
         | 
| 42 | 
            +
                    else:
         | 
| 43 | 
            +
                        assert isinstance(img, bytes) and len(
         | 
| 44 | 
            +
                            img) > 0, "invalid input 'img' in DecodeImage"
         | 
| 45 | 
            +
                    img = np.frombuffer(img, dtype='uint8')
         | 
| 46 | 
            +
                    if self.ignore_orientation:
         | 
| 47 | 
            +
                        img = cv2.imdecode(img, cv2.IMREAD_IGNORE_ORIENTATION |
         | 
| 48 | 
            +
                                           cv2.IMREAD_COLOR)
         | 
| 49 | 
            +
                    else:
         | 
| 50 | 
            +
                        img = cv2.imdecode(img, 1)
         | 
| 51 | 
            +
                    if img is None:
         | 
| 52 | 
            +
                        return None
         | 
| 53 | 
            +
                    if self.img_mode == 'GRAY':
         | 
| 54 | 
            +
                        img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
         | 
| 55 | 
            +
                    elif self.img_mode == 'RGB':
         | 
| 56 | 
            +
                        assert img.shape[2] == 3, 'invalid shape of image[%s]' % (
         | 
| 57 | 
            +
                            img.shape)
         | 
| 58 | 
            +
                        img = img[:, :, ::-1]
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                    if self.channel_first:
         | 
| 61 | 
            +
                        img = img.transpose((2, 0, 1))
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    data['image'] = img
         | 
| 64 | 
            +
                    return data
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            class StandardizeImage(object):
         | 
| 67 | 
            +
                """normalize image
         | 
| 68 | 
            +
                Args:
         | 
| 69 | 
            +
                    mean (list): im - mean
         | 
| 70 | 
            +
                    std (list): im / std
         | 
| 71 | 
            +
                    is_scale (bool): whether need im / 255
         | 
| 72 | 
            +
                    norm_type (str): type in ['mean_std', 'none']
         | 
| 73 | 
            +
                """
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                def __init__(self, mean, std, is_scale=True, norm_type='mean_std'):
         | 
| 76 | 
            +
                    self.mean = mean
         | 
| 77 | 
            +
                    self.std = std
         | 
| 78 | 
            +
                    self.is_scale = is_scale
         | 
| 79 | 
            +
                    self.norm_type = norm_type
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                def __call__(self, im, im_info):
         | 
| 82 | 
            +
                    """
         | 
| 83 | 
            +
                    Args:
         | 
| 84 | 
            +
                        im (np.ndarray): image (np.ndarray)
         | 
| 85 | 
            +
                        im_info (dict): info of image
         | 
| 86 | 
            +
                    Returns:
         | 
| 87 | 
            +
                        im (np.ndarray):  processed image (np.ndarray)
         | 
| 88 | 
            +
                        im_info (dict): info of processed image
         | 
| 89 | 
            +
                    """
         | 
| 90 | 
            +
                    im = im.astype(np.float32, copy=False)
         | 
| 91 | 
            +
                    if self.is_scale:
         | 
| 92 | 
            +
                        scale = 1.0 / 255.0
         | 
| 93 | 
            +
                        im *= scale
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                    if self.norm_type == 'mean_std':
         | 
| 96 | 
            +
                        mean = np.array(self.mean)[np.newaxis, np.newaxis, :]
         | 
| 97 | 
            +
                        std = np.array(self.std)[np.newaxis, np.newaxis, :]
         | 
| 98 | 
            +
                        im -= mean
         | 
| 99 | 
            +
                        im /= std
         | 
| 100 | 
            +
                    return im, im_info
         | 
| 101 | 
            +
             | 
| 102 | 
            +
             | 
| 103 | 
            +
            class NormalizeImage(object):
         | 
| 104 | 
            +
                """ normalize image such as substract mean, divide std
         | 
| 105 | 
            +
                """
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                def __init__(self, scale=None, mean=None, std=None, order='chw', **kwargs):
         | 
| 108 | 
            +
                    if isinstance(scale, str):
         | 
| 109 | 
            +
                        scale = eval(scale)
         | 
| 110 | 
            +
                    self.scale = np.float32(scale if scale is not None else 1.0 / 255.0)
         | 
| 111 | 
            +
                    mean = mean if mean is not None else [0.485, 0.456, 0.406]
         | 
| 112 | 
            +
                    std = std if std is not None else [0.229, 0.224, 0.225]
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    shape = (3, 1, 1) if order == 'chw' else (1, 1, 3)
         | 
| 115 | 
            +
                    self.mean = np.array(mean).reshape(shape).astype('float32')
         | 
| 116 | 
            +
                    self.std = np.array(std).reshape(shape).astype('float32')
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                def __call__(self, data):
         | 
| 119 | 
            +
                    img = data['image']
         | 
| 120 | 
            +
                    from PIL import Image
         | 
| 121 | 
            +
                    if isinstance(img, Image.Image):
         | 
| 122 | 
            +
                        img = np.array(img)
         | 
| 123 | 
            +
                    assert isinstance(img,
         | 
| 124 | 
            +
                                      np.ndarray), "invalid input 'img' in NormalizeImage"
         | 
| 125 | 
            +
                    data['image'] = (
         | 
| 126 | 
            +
                        img.astype('float32') * self.scale - self.mean) / self.std
         | 
| 127 | 
            +
                    return data
         | 
| 128 | 
            +
             | 
| 129 | 
            +
             | 
| 130 | 
            +
            class ToCHWImage(object):
         | 
| 131 | 
            +
                """ convert hwc image to chw image
         | 
| 132 | 
            +
                """
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                def __init__(self, **kwargs):
         | 
| 135 | 
            +
                    pass
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                def __call__(self, data):
         | 
| 138 | 
            +
                    img = data['image']
         | 
| 139 | 
            +
                    from PIL import Image
         | 
| 140 | 
            +
                    if isinstance(img, Image.Image):
         | 
| 141 | 
            +
                        img = np.array(img)
         | 
| 142 | 
            +
                    data['image'] = img.transpose((2, 0, 1))
         | 
| 143 | 
            +
                    return data
         | 
| 144 | 
            +
             | 
| 145 | 
            +
             | 
| 146 | 
            +
            class Fasttext(object):
         | 
| 147 | 
            +
                def __init__(self, path="None", **kwargs):
         | 
| 148 | 
            +
                    import fasttext
         | 
| 149 | 
            +
                    self.fast_model = fasttext.load_model(path)
         | 
| 150 | 
            +
             | 
| 151 | 
            +
                def __call__(self, data):
         | 
| 152 | 
            +
                    label = data['label']
         | 
| 153 | 
            +
                    fast_label = self.fast_model[label]
         | 
| 154 | 
            +
                    data['fast_label'] = fast_label
         | 
| 155 | 
            +
                    return data
         | 
| 156 | 
            +
             | 
| 157 | 
            +
             | 
| 158 | 
            +
            class KeepKeys(object):
         | 
| 159 | 
            +
                def __init__(self, keep_keys, **kwargs):
         | 
| 160 | 
            +
                    self.keep_keys = keep_keys
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                def __call__(self, data):
         | 
| 163 | 
            +
                    data_list = []
         | 
| 164 | 
            +
                    for key in self.keep_keys:
         | 
| 165 | 
            +
                        data_list.append(data[key])
         | 
| 166 | 
            +
                    return data_list
         | 
| 167 | 
            +
             | 
| 168 | 
            +
             | 
| 169 | 
            +
            class Pad(object):
         | 
| 170 | 
            +
                def __init__(self, size=None, size_div=32, **kwargs):
         | 
| 171 | 
            +
                    if size is not None and not isinstance(size, (int, list, tuple)):
         | 
| 172 | 
            +
                        raise TypeError("Type of target_size is invalid. Now is {}".format(
         | 
| 173 | 
            +
                            type(size)))
         | 
| 174 | 
            +
                    if isinstance(size, int):
         | 
| 175 | 
            +
                        size = [size, size]
         | 
| 176 | 
            +
                    self.size = size
         | 
| 177 | 
            +
                    self.size_div = size_div
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                def __call__(self, data):
         | 
| 180 | 
            +
             | 
| 181 | 
            +
                    img = data['image']
         | 
| 182 | 
            +
                    img_h, img_w = img.shape[0], img.shape[1]
         | 
| 183 | 
            +
                    if self.size:
         | 
| 184 | 
            +
                        resize_h2, resize_w2 = self.size
         | 
| 185 | 
            +
                        assert (
         | 
| 186 | 
            +
                            img_h < resize_h2 and img_w < resize_w2
         | 
| 187 | 
            +
                        ), '(h, w) of target size should be greater than (img_h, img_w)'
         | 
| 188 | 
            +
                    else:
         | 
| 189 | 
            +
                        resize_h2 = max(
         | 
| 190 | 
            +
                            int(math.ceil(img.shape[0] / self.size_div) * self.size_div),
         | 
| 191 | 
            +
                            self.size_div)
         | 
| 192 | 
            +
                        resize_w2 = max(
         | 
| 193 | 
            +
                            int(math.ceil(img.shape[1] / self.size_div) * self.size_div),
         | 
| 194 | 
            +
                            self.size_div)
         | 
| 195 | 
            +
                    img = cv2.copyMakeBorder(
         | 
| 196 | 
            +
                        img,
         | 
| 197 | 
            +
                        0,
         | 
| 198 | 
            +
                        resize_h2 - img_h,
         | 
| 199 | 
            +
                        0,
         | 
| 200 | 
            +
                        resize_w2 - img_w,
         | 
| 201 | 
            +
                        cv2.BORDER_CONSTANT,
         | 
| 202 | 
            +
                        value=0)
         | 
| 203 | 
            +
                    data['image'] = img
         | 
| 204 | 
            +
                    return data
         | 
| 205 | 
            +
             | 
| 206 | 
            +
             | 
| 207 | 
            +
            class LinearResize(object):
         | 
| 208 | 
            +
                """resize image by target_size and max_size
         | 
| 209 | 
            +
                Args:
         | 
| 210 | 
            +
                    target_size (int): the target size of image
         | 
| 211 | 
            +
                    keep_ratio (bool): whether keep_ratio or not, default true
         | 
| 212 | 
            +
                    interp (int): method of resize
         | 
| 213 | 
            +
                """
         | 
| 214 | 
            +
             | 
| 215 | 
            +
                def __init__(self, target_size, keep_ratio=True, interp=cv2.INTER_LINEAR):
         | 
| 216 | 
            +
                    if isinstance(target_size, int):
         | 
| 217 | 
            +
                        target_size = [target_size, target_size]
         | 
| 218 | 
            +
                    self.target_size = target_size
         | 
| 219 | 
            +
                    self.keep_ratio = keep_ratio
         | 
| 220 | 
            +
                    self.interp = interp
         | 
| 221 | 
            +
             | 
| 222 | 
            +
                def __call__(self, im, im_info):
         | 
| 223 | 
            +
                    """
         | 
| 224 | 
            +
                    Args:
         | 
| 225 | 
            +
                        im (np.ndarray): image (np.ndarray)
         | 
| 226 | 
            +
                        im_info (dict): info of image
         | 
| 227 | 
            +
                    Returns:
         | 
| 228 | 
            +
                        im (np.ndarray):  processed image (np.ndarray)
         | 
| 229 | 
            +
                        im_info (dict): info of processed image
         | 
| 230 | 
            +
                    """
         | 
| 231 | 
            +
                    assert len(self.target_size) == 2
         | 
| 232 | 
            +
                    assert self.target_size[0] > 0 and self.target_size[1] > 0
         | 
| 233 | 
            +
                    im_channel = im.shape[2]
         | 
| 234 | 
            +
                    im_scale_y, im_scale_x = self.generate_scale(im)
         | 
| 235 | 
            +
                    im = cv2.resize(
         | 
| 236 | 
            +
                        im,
         | 
| 237 | 
            +
                        None,
         | 
| 238 | 
            +
                        None,
         | 
| 239 | 
            +
                        fx=im_scale_x,
         | 
| 240 | 
            +
                        fy=im_scale_y,
         | 
| 241 | 
            +
                        interpolation=self.interp)
         | 
| 242 | 
            +
                    im_info['im_shape'] = np.array(im.shape[:2]).astype('float32')
         | 
| 243 | 
            +
                    im_info['scale_factor'] = np.array(
         | 
| 244 | 
            +
                        [im_scale_y, im_scale_x]).astype('float32')
         | 
| 245 | 
            +
                    return im, im_info
         | 
| 246 | 
            +
             | 
| 247 | 
            +
                def generate_scale(self, im):
         | 
| 248 | 
            +
                    """
         | 
| 249 | 
            +
                    Args:
         | 
| 250 | 
            +
                        im (np.ndarray): image (np.ndarray)
         | 
| 251 | 
            +
                    Returns:
         | 
| 252 | 
            +
                        im_scale_x: the resize ratio of X
         | 
| 253 | 
            +
                        im_scale_y: the resize ratio of Y
         | 
| 254 | 
            +
                    """
         | 
| 255 | 
            +
                    origin_shape = im.shape[:2]
         | 
| 256 | 
            +
                    im_c = im.shape[2]
         | 
| 257 | 
            +
                    if self.keep_ratio:
         | 
| 258 | 
            +
                        im_size_min = np.min(origin_shape)
         | 
| 259 | 
            +
                        im_size_max = np.max(origin_shape)
         | 
| 260 | 
            +
                        target_size_min = np.min(self.target_size)
         | 
| 261 | 
            +
                        target_size_max = np.max(self.target_size)
         | 
| 262 | 
            +
                        im_scale = float(target_size_min) / float(im_size_min)
         | 
| 263 | 
            +
                        if np.round(im_scale * im_size_max) > target_size_max:
         | 
| 264 | 
            +
                            im_scale = float(target_size_max) / float(im_size_max)
         | 
| 265 | 
            +
                        im_scale_x = im_scale
         | 
| 266 | 
            +
                        im_scale_y = im_scale
         | 
| 267 | 
            +
                    else:
         | 
| 268 | 
            +
                        resize_h, resize_w = self.target_size
         | 
| 269 | 
            +
                        im_scale_y = resize_h / float(origin_shape[0])
         | 
| 270 | 
            +
                        im_scale_x = resize_w / float(origin_shape[1])
         | 
| 271 | 
            +
                    return im_scale_y, im_scale_x
         | 
| 272 | 
            +
             | 
| 273 | 
            +
             | 
| 274 | 
            +
            class Resize(object):
         | 
| 275 | 
            +
                def __init__(self, size=(640, 640), **kwargs):
         | 
| 276 | 
            +
                    self.size = size
         | 
| 277 | 
            +
             | 
| 278 | 
            +
                def resize_image(self, img):
         | 
| 279 | 
            +
                    resize_h, resize_w = self.size
         | 
| 280 | 
            +
                    ori_h, ori_w = img.shape[:2]  # (h, w, c)
         | 
| 281 | 
            +
                    ratio_h = float(resize_h) / ori_h
         | 
| 282 | 
            +
                    ratio_w = float(resize_w) / ori_w
         | 
| 283 | 
            +
                    img = cv2.resize(img, (int(resize_w), int(resize_h)))
         | 
| 284 | 
            +
                    return img, [ratio_h, ratio_w]
         | 
| 285 | 
            +
             | 
| 286 | 
            +
                def __call__(self, data):
         | 
| 287 | 
            +
                    img = data['image']
         | 
| 288 | 
            +
                    if 'polys' in data:
         | 
| 289 | 
            +
                        text_polys = data['polys']
         | 
| 290 | 
            +
             | 
| 291 | 
            +
                    img_resize, [ratio_h, ratio_w] = self.resize_image(img)
         | 
| 292 | 
            +
                    if 'polys' in data:
         | 
| 293 | 
            +
                        new_boxes = []
         | 
| 294 | 
            +
                        for box in text_polys:
         | 
| 295 | 
            +
                            new_box = []
         | 
| 296 | 
            +
                            for cord in box:
         | 
| 297 | 
            +
                                new_box.append([cord[0] * ratio_w, cord[1] * ratio_h])
         | 
| 298 | 
            +
                            new_boxes.append(new_box)
         | 
| 299 | 
            +
                        data['polys'] = np.array(new_boxes, dtype=np.float32)
         | 
| 300 | 
            +
                    data['image'] = img_resize
         | 
| 301 | 
            +
                    return data
         | 
| 302 | 
            +
             | 
| 303 | 
            +
             | 
| 304 | 
            +
            class DetResizeForTest(object):
         | 
| 305 | 
            +
                def __init__(self, **kwargs):
         | 
| 306 | 
            +
                    super(DetResizeForTest, self).__init__()
         | 
| 307 | 
            +
                    self.resize_type = 0
         | 
| 308 | 
            +
                    self.keep_ratio = False
         | 
| 309 | 
            +
                    if 'image_shape' in kwargs:
         | 
| 310 | 
            +
                        self.image_shape = kwargs['image_shape']
         | 
| 311 | 
            +
                        self.resize_type = 1
         | 
| 312 | 
            +
                        if 'keep_ratio' in kwargs:
         | 
| 313 | 
            +
                            self.keep_ratio = kwargs['keep_ratio']
         | 
| 314 | 
            +
                    elif 'limit_side_len' in kwargs:
         | 
| 315 | 
            +
                        self.limit_side_len = kwargs['limit_side_len']
         | 
| 316 | 
            +
                        self.limit_type = kwargs.get('limit_type', 'min')
         | 
| 317 | 
            +
                    elif 'resize_long' in kwargs:
         | 
| 318 | 
            +
                        self.resize_type = 2
         | 
| 319 | 
            +
                        self.resize_long = kwargs.get('resize_long', 960)
         | 
| 320 | 
            +
                    else:
         | 
| 321 | 
            +
                        self.limit_side_len = 736
         | 
| 322 | 
            +
                        self.limit_type = 'min'
         | 
| 323 | 
            +
             | 
| 324 | 
            +
                def __call__(self, data):
         | 
| 325 | 
            +
                    img = data['image']
         | 
| 326 | 
            +
                    src_h, src_w, _ = img.shape
         | 
| 327 | 
            +
                    if sum([src_h, src_w]) < 64:
         | 
| 328 | 
            +
                        img = self.image_padding(img)
         | 
| 329 | 
            +
             | 
| 330 | 
            +
                    if self.resize_type == 0:
         | 
| 331 | 
            +
                        # img, shape = self.resize_image_type0(img)
         | 
| 332 | 
            +
                        img, [ratio_h, ratio_w] = self.resize_image_type0(img)
         | 
| 333 | 
            +
                    elif self.resize_type == 2:
         | 
| 334 | 
            +
                        img, [ratio_h, ratio_w] = self.resize_image_type2(img)
         | 
| 335 | 
            +
                    else:
         | 
| 336 | 
            +
                        # img, shape = self.resize_image_type1(img)
         | 
| 337 | 
            +
                        img, [ratio_h, ratio_w] = self.resize_image_type1(img)
         | 
| 338 | 
            +
                    data['image'] = img
         | 
| 339 | 
            +
                    data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w])
         | 
| 340 | 
            +
                    return data
         | 
| 341 | 
            +
             | 
| 342 | 
            +
                def image_padding(self, im, value=0):
         | 
| 343 | 
            +
                    h, w, c = im.shape
         | 
| 344 | 
            +
                    im_pad = np.zeros((max(32, h), max(32, w), c), np.uint8) + value
         | 
| 345 | 
            +
                    im_pad[:h, :w, :] = im
         | 
| 346 | 
            +
                    return im_pad
         | 
| 347 | 
            +
             | 
| 348 | 
            +
                def resize_image_type1(self, img):
         | 
| 349 | 
            +
                    resize_h, resize_w = self.image_shape
         | 
| 350 | 
            +
                    ori_h, ori_w = img.shape[:2]  # (h, w, c)
         | 
| 351 | 
            +
                    if self.keep_ratio is True:
         | 
| 352 | 
            +
                        resize_w = ori_w * resize_h / ori_h
         | 
| 353 | 
            +
                        N = math.ceil(resize_w / 32)
         | 
| 354 | 
            +
                        resize_w = N * 32
         | 
| 355 | 
            +
                    ratio_h = float(resize_h) / ori_h
         | 
| 356 | 
            +
                    ratio_w = float(resize_w) / ori_w
         | 
| 357 | 
            +
                    img = cv2.resize(img, (int(resize_w), int(resize_h)))
         | 
| 358 | 
            +
                    # return img, np.array([ori_h, ori_w])
         | 
| 359 | 
            +
                    return img, [ratio_h, ratio_w]
         | 
| 360 | 
            +
             | 
| 361 | 
            +
                def resize_image_type0(self, img):
         | 
| 362 | 
            +
                    """
         | 
| 363 | 
            +
                    resize image to a size multiple of 32 which is required by the network
         | 
| 364 | 
            +
                    args:
         | 
| 365 | 
            +
                        img(array): array with shape [h, w, c]
         | 
| 366 | 
            +
                    return(tuple):
         | 
| 367 | 
            +
                        img, (ratio_h, ratio_w)
         | 
| 368 | 
            +
                    """
         | 
| 369 | 
            +
                    limit_side_len = self.limit_side_len
         | 
| 370 | 
            +
                    h, w, c = img.shape
         | 
| 371 | 
            +
             | 
| 372 | 
            +
                    # limit the max side
         | 
| 373 | 
            +
                    if self.limit_type == 'max':
         | 
| 374 | 
            +
                        if max(h, w) > limit_side_len:
         | 
| 375 | 
            +
                            if h > w:
         | 
| 376 | 
            +
                                ratio = float(limit_side_len) / h
         | 
| 377 | 
            +
                            else:
         | 
| 378 | 
            +
                                ratio = float(limit_side_len) / w
         | 
| 379 | 
            +
                        else:
         | 
| 380 | 
            +
                            ratio = 1.
         | 
| 381 | 
            +
                    elif self.limit_type == 'min':
         | 
| 382 | 
            +
                        if min(h, w) < limit_side_len:
         | 
| 383 | 
            +
                            if h < w:
         | 
| 384 | 
            +
                                ratio = float(limit_side_len) / h
         | 
| 385 | 
            +
                            else:
         | 
| 386 | 
            +
                                ratio = float(limit_side_len) / w
         | 
| 387 | 
            +
                        else:
         | 
| 388 | 
            +
                            ratio = 1.
         | 
| 389 | 
            +
                    elif self.limit_type == 'resize_long':
         | 
| 390 | 
            +
                        ratio = float(limit_side_len) / max(h, w)
         | 
| 391 | 
            +
                    else:
         | 
| 392 | 
            +
                        raise Exception('not support limit type, image ')
         | 
| 393 | 
            +
                    resize_h = int(h * ratio)
         | 
| 394 | 
            +
                    resize_w = int(w * ratio)
         | 
| 395 | 
            +
             | 
| 396 | 
            +
                    resize_h = max(int(round(resize_h / 32) * 32), 32)
         | 
| 397 | 
            +
                    resize_w = max(int(round(resize_w / 32) * 32), 32)
         | 
| 398 | 
            +
             | 
| 399 | 
            +
                    try:
         | 
| 400 | 
            +
                        if int(resize_w) <= 0 or int(resize_h) <= 0:
         | 
| 401 | 
            +
                            return None, (None, None)
         | 
| 402 | 
            +
                        img = cv2.resize(img, (int(resize_w), int(resize_h)))
         | 
| 403 | 
            +
                    except BaseException:
         | 
| 404 | 
            +
                        print(img.shape, resize_w, resize_h)
         | 
| 405 | 
            +
                        sys.exit(0)
         | 
| 406 | 
            +
                    ratio_h = resize_h / float(h)
         | 
| 407 | 
            +
                    ratio_w = resize_w / float(w)
         | 
| 408 | 
            +
                    return img, [ratio_h, ratio_w]
         | 
| 409 | 
            +
             | 
| 410 | 
            +
                def resize_image_type2(self, img):
         | 
| 411 | 
            +
                    h, w, _ = img.shape
         | 
| 412 | 
            +
             | 
| 413 | 
            +
                    resize_w = w
         | 
| 414 | 
            +
                    resize_h = h
         | 
| 415 | 
            +
             | 
| 416 | 
            +
                    if resize_h > resize_w:
         | 
| 417 | 
            +
                        ratio = float(self.resize_long) / resize_h
         | 
| 418 | 
            +
                    else:
         | 
| 419 | 
            +
                        ratio = float(self.resize_long) / resize_w
         | 
| 420 | 
            +
             | 
| 421 | 
            +
                    resize_h = int(resize_h * ratio)
         | 
| 422 | 
            +
                    resize_w = int(resize_w * ratio)
         | 
| 423 | 
            +
             | 
| 424 | 
            +
                    max_stride = 128
         | 
| 425 | 
            +
                    resize_h = (resize_h + max_stride - 1) // max_stride * max_stride
         | 
| 426 | 
            +
                    resize_w = (resize_w + max_stride - 1) // max_stride * max_stride
         | 
| 427 | 
            +
                    img = cv2.resize(img, (int(resize_w), int(resize_h)))
         | 
| 428 | 
            +
                    ratio_h = resize_h / float(h)
         | 
| 429 | 
            +
                    ratio_w = resize_w / float(w)
         | 
| 430 | 
            +
             | 
| 431 | 
            +
                    return img, [ratio_h, ratio_w]
         | 
| 432 | 
            +
             | 
| 433 | 
            +
             | 
| 434 | 
            +
            class E2EResizeForTest(object):
         | 
| 435 | 
            +
                def __init__(self, **kwargs):
         | 
| 436 | 
            +
                    super(E2EResizeForTest, self).__init__()
         | 
| 437 | 
            +
                    self.max_side_len = kwargs['max_side_len']
         | 
| 438 | 
            +
                    self.valid_set = kwargs['valid_set']
         | 
| 439 | 
            +
             | 
| 440 | 
            +
                def __call__(self, data):
         | 
| 441 | 
            +
                    img = data['image']
         | 
| 442 | 
            +
                    src_h, src_w, _ = img.shape
         | 
| 443 | 
            +
                    if self.valid_set == 'totaltext':
         | 
| 444 | 
            +
                        im_resized, [ratio_h, ratio_w] = self.resize_image_for_totaltext(
         | 
| 445 | 
            +
                            img, max_side_len=self.max_side_len)
         | 
| 446 | 
            +
                    else:
         | 
| 447 | 
            +
                        im_resized, (ratio_h, ratio_w) = self.resize_image(
         | 
| 448 | 
            +
                            img, max_side_len=self.max_side_len)
         | 
| 449 | 
            +
                    data['image'] = im_resized
         | 
| 450 | 
            +
                    data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w])
         | 
| 451 | 
            +
                    return data
         | 
| 452 | 
            +
             | 
| 453 | 
            +
                def resize_image_for_totaltext(self, im, max_side_len=512):
         | 
| 454 | 
            +
             | 
| 455 | 
            +
                    h, w, _ = im.shape
         | 
| 456 | 
            +
                    resize_w = w
         | 
| 457 | 
            +
                    resize_h = h
         | 
| 458 | 
            +
                    ratio = 1.25
         | 
| 459 | 
            +
                    if h * ratio > max_side_len:
         | 
| 460 | 
            +
                        ratio = float(max_side_len) / resize_h
         | 
| 461 | 
            +
                    resize_h = int(resize_h * ratio)
         | 
| 462 | 
            +
                    resize_w = int(resize_w * ratio)
         | 
| 463 | 
            +
             | 
| 464 | 
            +
                    max_stride = 128
         | 
| 465 | 
            +
                    resize_h = (resize_h + max_stride - 1) // max_stride * max_stride
         | 
| 466 | 
            +
                    resize_w = (resize_w + max_stride - 1) // max_stride * max_stride
         | 
| 467 | 
            +
                    im = cv2.resize(im, (int(resize_w), int(resize_h)))
         | 
| 468 | 
            +
                    ratio_h = resize_h / float(h)
         | 
| 469 | 
            +
                    ratio_w = resize_w / float(w)
         | 
| 470 | 
            +
                    return im, (ratio_h, ratio_w)
         | 
| 471 | 
            +
             | 
| 472 | 
            +
                def resize_image(self, im, max_side_len=512):
         | 
| 473 | 
            +
                    """
         | 
| 474 | 
            +
                    resize image to a size multiple of max_stride which is required by the network
         | 
| 475 | 
            +
                    :param im: the resized image
         | 
| 476 | 
            +
                    :param max_side_len: limit of max image size to avoid out of memory in gpu
         | 
| 477 | 
            +
                    :return: the resized image and the resize ratio
         | 
| 478 | 
            +
                    """
         | 
| 479 | 
            +
                    h, w, _ = im.shape
         | 
| 480 | 
            +
             | 
| 481 | 
            +
                    resize_w = w
         | 
| 482 | 
            +
                    resize_h = h
         | 
| 483 | 
            +
             | 
| 484 | 
            +
                    # Fix the longer side
         | 
| 485 | 
            +
                    if resize_h > resize_w:
         | 
| 486 | 
            +
                        ratio = float(max_side_len) / resize_h
         | 
| 487 | 
            +
                    else:
         | 
| 488 | 
            +
                        ratio = float(max_side_len) / resize_w
         | 
| 489 | 
            +
             | 
| 490 | 
            +
                    resize_h = int(resize_h * ratio)
         | 
| 491 | 
            +
                    resize_w = int(resize_w * ratio)
         | 
| 492 | 
            +
             | 
| 493 | 
            +
                    max_stride = 128
         | 
| 494 | 
            +
                    resize_h = (resize_h + max_stride - 1) // max_stride * max_stride
         | 
| 495 | 
            +
                    resize_w = (resize_w + max_stride - 1) // max_stride * max_stride
         | 
| 496 | 
            +
                    im = cv2.resize(im, (int(resize_w), int(resize_h)))
         | 
| 497 | 
            +
                    ratio_h = resize_h / float(h)
         | 
| 498 | 
            +
                    ratio_w = resize_w / float(w)
         | 
| 499 | 
            +
             | 
| 500 | 
            +
                    return im, (ratio_h, ratio_w)
         | 
| 501 | 
            +
             | 
| 502 | 
            +
             | 
| 503 | 
            +
            class KieResize(object):
         | 
| 504 | 
            +
                def __init__(self, **kwargs):
         | 
| 505 | 
            +
                    super(KieResize, self).__init__()
         | 
| 506 | 
            +
                    self.max_side, self.min_side = kwargs['img_scale'][0], kwargs[
         | 
| 507 | 
            +
                        'img_scale'][1]
         | 
| 508 | 
            +
             | 
| 509 | 
            +
                def __call__(self, data):
         | 
| 510 | 
            +
                    img = data['image']
         | 
| 511 | 
            +
                    points = data['points']
         | 
| 512 | 
            +
                    src_h, src_w, _ = img.shape
         | 
| 513 | 
            +
                    im_resized, scale_factor, [ratio_h, ratio_w
         | 
| 514 | 
            +
                                               ], [new_h, new_w] = self.resize_image(img)
         | 
| 515 | 
            +
                    resize_points = self.resize_boxes(img, points, scale_factor)
         | 
| 516 | 
            +
                    data['ori_image'] = img
         | 
| 517 | 
            +
                    data['ori_boxes'] = points
         | 
| 518 | 
            +
                    data['points'] = resize_points
         | 
| 519 | 
            +
                    data['image'] = im_resized
         | 
| 520 | 
            +
                    data['shape'] = np.array([new_h, new_w])
         | 
| 521 | 
            +
                    return data
         | 
| 522 | 
            +
             | 
| 523 | 
            +
                def resize_image(self, img):
         | 
| 524 | 
            +
                    norm_img = np.zeros([1024, 1024, 3], dtype='float32')
         | 
| 525 | 
            +
                    scale = [512, 1024]
         | 
| 526 | 
            +
                    h, w = img.shape[:2]
         | 
| 527 | 
            +
                    max_long_edge = max(scale)
         | 
| 528 | 
            +
                    max_short_edge = min(scale)
         | 
| 529 | 
            +
                    scale_factor = min(max_long_edge / max(h, w),
         | 
| 530 | 
            +
                                       max_short_edge / min(h, w))
         | 
| 531 | 
            +
                    resize_w, resize_h = int(w * float(scale_factor) + 0.5), int(h * float(
         | 
| 532 | 
            +
                        scale_factor) + 0.5)
         | 
| 533 | 
            +
                    max_stride = 32
         | 
| 534 | 
            +
                    resize_h = (resize_h + max_stride - 1) // max_stride * max_stride
         | 
| 535 | 
            +
                    resize_w = (resize_w + max_stride - 1) // max_stride * max_stride
         | 
| 536 | 
            +
                    im = cv2.resize(img, (resize_w, resize_h))
         | 
| 537 | 
            +
                    new_h, new_w = im.shape[:2]
         | 
| 538 | 
            +
                    w_scale = new_w / w
         | 
| 539 | 
            +
                    h_scale = new_h / h
         | 
| 540 | 
            +
                    scale_factor = np.array(
         | 
| 541 | 
            +
                        [w_scale, h_scale, w_scale, h_scale], dtype=np.float32)
         | 
| 542 | 
            +
                    norm_img[:new_h, :new_w, :] = im
         | 
| 543 | 
            +
                    return norm_img, scale_factor, [h_scale, w_scale], [new_h, new_w]
         | 
| 544 | 
            +
             | 
| 545 | 
            +
                def resize_boxes(self, im, points, scale_factor):
         | 
| 546 | 
            +
                    points = points * scale_factor
         | 
| 547 | 
            +
                    img_shape = im.shape[:2]
         | 
| 548 | 
            +
                    points[:, 0::2] = np.clip(points[:, 0::2], 0, img_shape[1])
         | 
| 549 | 
            +
                    points[:, 1::2] = np.clip(points[:, 1::2], 0, img_shape[0])
         | 
| 550 | 
            +
                    return points
         | 
| 551 | 
            +
             | 
| 552 | 
            +
             | 
| 553 | 
            +
            class SRResize(object):
         | 
| 554 | 
            +
                def __init__(self,
         | 
| 555 | 
            +
                             imgH=32,
         | 
| 556 | 
            +
                             imgW=128,
         | 
| 557 | 
            +
                             down_sample_scale=4,
         | 
| 558 | 
            +
                             keep_ratio=False,
         | 
| 559 | 
            +
                             min_ratio=1,
         | 
| 560 | 
            +
                             mask=False,
         | 
| 561 | 
            +
                             infer_mode=False,
         | 
| 562 | 
            +
                             **kwargs):
         | 
| 563 | 
            +
                    self.imgH = imgH
         | 
| 564 | 
            +
                    self.imgW = imgW
         | 
| 565 | 
            +
                    self.keep_ratio = keep_ratio
         | 
| 566 | 
            +
                    self.min_ratio = min_ratio
         | 
| 567 | 
            +
                    self.down_sample_scale = down_sample_scale
         | 
| 568 | 
            +
                    self.mask = mask
         | 
| 569 | 
            +
                    self.infer_mode = infer_mode
         | 
| 570 | 
            +
             | 
| 571 | 
            +
                def __call__(self, data):
         | 
| 572 | 
            +
                    imgH = self.imgH
         | 
| 573 | 
            +
                    imgW = self.imgW
         | 
| 574 | 
            +
                    images_lr = data["image_lr"]
         | 
| 575 | 
            +
                    transform2 = ResizeNormalize(
         | 
| 576 | 
            +
                        (imgW // self.down_sample_scale, imgH // self.down_sample_scale))
         | 
| 577 | 
            +
                    images_lr = transform2(images_lr)
         | 
| 578 | 
            +
                    data["img_lr"] = images_lr
         | 
| 579 | 
            +
                    if self.infer_mode:
         | 
| 580 | 
            +
                        return data
         | 
| 581 | 
            +
             | 
| 582 | 
            +
                    images_HR = data["image_hr"]
         | 
| 583 | 
            +
                    label_strs = data["label"]
         | 
| 584 | 
            +
                    transform = ResizeNormalize((imgW, imgH))
         | 
| 585 | 
            +
                    images_HR = transform(images_HR)
         | 
| 586 | 
            +
                    data["img_hr"] = images_HR
         | 
| 587 | 
            +
                    return data
         | 
| 588 | 
            +
             | 
| 589 | 
            +
             | 
| 590 | 
            +
            class ResizeNormalize(object):
         | 
| 591 | 
            +
                def __init__(self, size, interpolation=Image.BICUBIC):
         | 
| 592 | 
            +
                    self.size = size
         | 
| 593 | 
            +
                    self.interpolation = interpolation
         | 
| 594 | 
            +
             | 
| 595 | 
            +
                def __call__(self, img):
         | 
| 596 | 
            +
                    img = img.resize(self.size, self.interpolation)
         | 
| 597 | 
            +
                    img_numpy = np.array(img).astype("float32")
         | 
| 598 | 
            +
                    img_numpy = img_numpy.transpose((2, 0, 1)) / 255
         | 
| 599 | 
            +
                    return img_numpy
         | 
| 600 | 
            +
             | 
| 601 | 
            +
             | 
| 602 | 
            +
            class GrayImageChannelFormat(object):
         | 
| 603 | 
            +
                """
         | 
| 604 | 
            +
                format gray scale image's channel: (3,h,w) -> (1,h,w)
         | 
| 605 | 
            +
                Args:
         | 
| 606 | 
            +
                    inverse: inverse gray image
         | 
| 607 | 
            +
                """
         | 
| 608 | 
            +
             | 
| 609 | 
            +
                def __init__(self, inverse=False, **kwargs):
         | 
| 610 | 
            +
                    self.inverse = inverse
         | 
| 611 | 
            +
             | 
| 612 | 
            +
                def __call__(self, data):
         | 
| 613 | 
            +
                    img = data['image']
         | 
| 614 | 
            +
                    img_single_channel = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
         | 
| 615 | 
            +
                    img_expanded = np.expand_dims(img_single_channel, 0)
         | 
| 616 | 
            +
             | 
| 617 | 
            +
                    if self.inverse:
         | 
| 618 | 
            +
                        data['image'] = np.abs(img_expanded - 1)
         | 
| 619 | 
            +
                    else:
         | 
| 620 | 
            +
                        data['image'] = img_expanded
         | 
| 621 | 
            +
             | 
| 622 | 
            +
                    data['src_image'] = img
         | 
| 623 | 
            +
                    return data
         | 
| 624 | 
            +
             | 
| 625 | 
            +
             | 
| 626 | 
            +
            class Permute(object):
         | 
| 627 | 
            +
                """permute image
         | 
| 628 | 
            +
                Args:
         | 
| 629 | 
            +
                    to_bgr (bool): whether convert RGB to BGR
         | 
| 630 | 
            +
                    channel_first (bool): whether convert HWC to CHW
         | 
| 631 | 
            +
                """
         | 
| 632 | 
            +
             | 
| 633 | 
            +
                def __init__(self, ):
         | 
| 634 | 
            +
                    super(Permute, self).__init__()
         | 
| 635 | 
            +
             | 
| 636 | 
            +
                def __call__(self, im, im_info):
         | 
| 637 | 
            +
                    """
         | 
| 638 | 
            +
                    Args:
         | 
| 639 | 
            +
                        im (np.ndarray): image (np.ndarray)
         | 
| 640 | 
            +
                        im_info (dict): info of image
         | 
| 641 | 
            +
                    Returns:
         | 
| 642 | 
            +
                        im (np.ndarray):  processed image (np.ndarray)
         | 
| 643 | 
            +
                        im_info (dict): info of processed image
         | 
| 644 | 
            +
                    """
         | 
| 645 | 
            +
                    im = im.transpose((2, 0, 1)).copy()
         | 
| 646 | 
            +
                    return im, im_info
         | 
| 647 | 
            +
             | 
| 648 | 
            +
             | 
| 649 | 
            +
            class PadStride(object):
         | 
| 650 | 
            +
                """ padding image for model with FPN, instead PadBatch(pad_to_stride) in original config
         | 
| 651 | 
            +
                Args:
         | 
| 652 | 
            +
                    stride (bool): model with FPN need image shape % stride == 0
         | 
| 653 | 
            +
                """
         | 
| 654 | 
            +
             | 
| 655 | 
            +
                def __init__(self, stride=0):
         | 
| 656 | 
            +
                    self.coarsest_stride = stride
         | 
| 657 | 
            +
             | 
| 658 | 
            +
                def __call__(self, im, im_info):
         | 
| 659 | 
            +
                    """
         | 
| 660 | 
            +
                    Args:
         | 
| 661 | 
            +
                        im (np.ndarray): image (np.ndarray)
         | 
| 662 | 
            +
                        im_info (dict): info of image
         | 
| 663 | 
            +
                    Returns:
         | 
| 664 | 
            +
                        im (np.ndarray):  processed image (np.ndarray)
         | 
| 665 | 
            +
                        im_info (dict): info of processed image
         | 
| 666 | 
            +
                    """
         | 
| 667 | 
            +
                    coarsest_stride = self.coarsest_stride
         | 
| 668 | 
            +
                    if coarsest_stride <= 0:
         | 
| 669 | 
            +
                        return im, im_info
         | 
| 670 | 
            +
                    im_c, im_h, im_w = im.shape
         | 
| 671 | 
            +
                    pad_h = int(np.ceil(float(im_h) / coarsest_stride) * coarsest_stride)
         | 
| 672 | 
            +
                    pad_w = int(np.ceil(float(im_w) / coarsest_stride) * coarsest_stride)
         | 
| 673 | 
            +
                    padding_im = np.zeros((im_c, pad_h, pad_w), dtype=np.float32)
         | 
| 674 | 
            +
                    padding_im[:, :im_h, :im_w] = im
         | 
| 675 | 
            +
                    return padding_im, im_info
         | 
| 676 | 
            +
             | 
| 677 | 
            +
             | 
| 678 | 
            +
            def decode_image(im_file, im_info):
         | 
| 679 | 
            +
                """read rgb image
         | 
| 680 | 
            +
                Args:
         | 
| 681 | 
            +
                    im_file (str|np.ndarray): input can be image path or np.ndarray
         | 
| 682 | 
            +
                    im_info (dict): info of image
         | 
| 683 | 
            +
                Returns:
         | 
| 684 | 
            +
                    im (np.ndarray):  processed image (np.ndarray)
         | 
| 685 | 
            +
                    im_info (dict): info of processed image
         | 
| 686 | 
            +
                """
         | 
| 687 | 
            +
                if isinstance(im_file, str):
         | 
| 688 | 
            +
                    with open(im_file, 'rb') as f:
         | 
| 689 | 
            +
                        im_read = f.read()
         | 
| 690 | 
            +
                    data = np.frombuffer(im_read, dtype='uint8')
         | 
| 691 | 
            +
                    im = cv2.imdecode(data, 1)  # BGR mode, but need RGB mode
         | 
| 692 | 
            +
                    im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
         | 
| 693 | 
            +
                else:
         | 
| 694 | 
            +
                    im = im_file
         | 
| 695 | 
            +
                im_info['im_shape'] = np.array(im.shape[:2], dtype=np.float32)
         | 
| 696 | 
            +
                im_info['scale_factor'] = np.array([1., 1.], dtype=np.float32)
         | 
| 697 | 
            +
                return im, im_info
         | 
| 698 | 
            +
             | 
| 699 | 
            +
             | 
| 700 | 
            +
            def preprocess(im, preprocess_ops):
         | 
| 701 | 
            +
                # process image by preprocess_ops
         | 
| 702 | 
            +
                im_info = {
         | 
| 703 | 
            +
                    'scale_factor': np.array(
         | 
| 704 | 
            +
                        [1., 1.], dtype=np.float32),
         | 
| 705 | 
            +
                    'im_shape': None,
         | 
| 706 | 
            +
                }
         | 
| 707 | 
            +
                im, im_info = decode_image(im, im_info)
         | 
| 708 | 
            +
                for operator in preprocess_ops:
         | 
| 709 | 
            +
                    im, im_info = operator(im, im_info)
         | 
| 710 | 
            +
                return im, im_info
         | 
    	
        deepdoc/visual/postprocess.py
    ADDED
    
    | @@ -0,0 +1,354 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            import copy
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            import numpy as np
         | 
| 4 | 
            +
            import cv2
         | 
| 5 | 
            +
            import paddle
         | 
| 6 | 
            +
            from shapely.geometry import Polygon
         | 
| 7 | 
            +
            import pyclipper
         | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
            def build_post_process(config, global_config=None):
         | 
| 11 | 
            +
                support_dict = ['DBPostProcess', 'CTCLabelDecode']
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                config = copy.deepcopy(config)
         | 
| 14 | 
            +
                module_name = config.pop('name')
         | 
| 15 | 
            +
                if module_name == "None":
         | 
| 16 | 
            +
                    return
         | 
| 17 | 
            +
                if global_config is not None:
         | 
| 18 | 
            +
                    config.update(global_config)
         | 
| 19 | 
            +
                assert module_name in support_dict, Exception(
         | 
| 20 | 
            +
                    'post process only support {}'.format(support_dict))
         | 
| 21 | 
            +
                module_class = eval(module_name)(**config)
         | 
| 22 | 
            +
                return module_class
         | 
| 23 | 
            +
             | 
| 24 | 
            +
             | 
| 25 | 
            +
            class DBPostProcess(object):
         | 
| 26 | 
            +
                """
         | 
| 27 | 
            +
                The post process for Differentiable Binarization (DB).
         | 
| 28 | 
            +
                """
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def __init__(self,
         | 
| 31 | 
            +
                             thresh=0.3,
         | 
| 32 | 
            +
                             box_thresh=0.7,
         | 
| 33 | 
            +
                             max_candidates=1000,
         | 
| 34 | 
            +
                             unclip_ratio=2.0,
         | 
| 35 | 
            +
                             use_dilation=False,
         | 
| 36 | 
            +
                             score_mode="fast",
         | 
| 37 | 
            +
                             box_type='quad',
         | 
| 38 | 
            +
                             **kwargs):
         | 
| 39 | 
            +
                    self.thresh = thresh
         | 
| 40 | 
            +
                    self.box_thresh = box_thresh
         | 
| 41 | 
            +
                    self.max_candidates = max_candidates
         | 
| 42 | 
            +
                    self.unclip_ratio = unclip_ratio
         | 
| 43 | 
            +
                    self.min_size = 3
         | 
| 44 | 
            +
                    self.score_mode = score_mode
         | 
| 45 | 
            +
                    self.box_type = box_type
         | 
| 46 | 
            +
                    assert score_mode in [
         | 
| 47 | 
            +
                        "slow", "fast"
         | 
| 48 | 
            +
                    ], "Score mode must be in [slow, fast] but got: {}".format(score_mode)
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                    self.dilation_kernel = None if not use_dilation else np.array(
         | 
| 51 | 
            +
                        [[1, 1], [1, 1]])
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                def polygons_from_bitmap(self, pred, _bitmap, dest_width, dest_height):
         | 
| 54 | 
            +
                    '''
         | 
| 55 | 
            +
                    _bitmap: single map with shape (1, H, W),
         | 
| 56 | 
            +
                        whose values are binarized as {0, 1}
         | 
| 57 | 
            +
                    '''
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    bitmap = _bitmap
         | 
| 60 | 
            +
                    height, width = bitmap.shape
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                    boxes = []
         | 
| 63 | 
            +
                    scores = []
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    contours, _ = cv2.findContours((bitmap * 255).astype(np.uint8),
         | 
| 66 | 
            +
                                                   cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                    for contour in contours[:self.max_candidates]:
         | 
| 69 | 
            +
                        epsilon = 0.002 * cv2.arcLength(contour, True)
         | 
| 70 | 
            +
                        approx = cv2.approxPolyDP(contour, epsilon, True)
         | 
| 71 | 
            +
                        points = approx.reshape((-1, 2))
         | 
| 72 | 
            +
                        if points.shape[0] < 4:
         | 
| 73 | 
            +
                            continue
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                        score = self.box_score_fast(pred, points.reshape(-1, 2))
         | 
| 76 | 
            +
                        if self.box_thresh > score:
         | 
| 77 | 
            +
                            continue
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                        if points.shape[0] > 2:
         | 
| 80 | 
            +
                            box = self.unclip(points, self.unclip_ratio)
         | 
| 81 | 
            +
                            if len(box) > 1:
         | 
| 82 | 
            +
                                continue
         | 
| 83 | 
            +
                        else:
         | 
| 84 | 
            +
                            continue
         | 
| 85 | 
            +
                        box = box.reshape(-1, 2)
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                        _, sside = self.get_mini_boxes(box.reshape((-1, 1, 2)))
         | 
| 88 | 
            +
                        if sside < self.min_size + 2:
         | 
| 89 | 
            +
                            continue
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                        box = np.array(box)
         | 
| 92 | 
            +
                        box[:, 0] = np.clip(
         | 
| 93 | 
            +
                            np.round(box[:, 0] / width * dest_width), 0, dest_width)
         | 
| 94 | 
            +
                        box[:, 1] = np.clip(
         | 
| 95 | 
            +
                            np.round(box[:, 1] / height * dest_height), 0, dest_height)
         | 
| 96 | 
            +
                        boxes.append(box.tolist())
         | 
| 97 | 
            +
                        scores.append(score)
         | 
| 98 | 
            +
                    return boxes, scores
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                def boxes_from_bitmap(self, pred, _bitmap, dest_width, dest_height):
         | 
| 101 | 
            +
                    '''
         | 
| 102 | 
            +
                    _bitmap: single map with shape (1, H, W),
         | 
| 103 | 
            +
                            whose values are binarized as {0, 1}
         | 
| 104 | 
            +
                    '''
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                    bitmap = _bitmap
         | 
| 107 | 
            +
                    height, width = bitmap.shape
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                    outs = cv2.findContours((bitmap * 255).astype(np.uint8), cv2.RETR_LIST,
         | 
| 110 | 
            +
                                            cv2.CHAIN_APPROX_SIMPLE)
         | 
| 111 | 
            +
                    if len(outs) == 3:
         | 
| 112 | 
            +
                        img, contours, _ = outs[0], outs[1], outs[2]
         | 
| 113 | 
            +
                    elif len(outs) == 2:
         | 
| 114 | 
            +
                        contours, _ = outs[0], outs[1]
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                    num_contours = min(len(contours), self.max_candidates)
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                    boxes = []
         | 
| 119 | 
            +
                    scores = []
         | 
| 120 | 
            +
                    for index in range(num_contours):
         | 
| 121 | 
            +
                        contour = contours[index]
         | 
| 122 | 
            +
                        points, sside = self.get_mini_boxes(contour)
         | 
| 123 | 
            +
                        if sside < self.min_size:
         | 
| 124 | 
            +
                            continue
         | 
| 125 | 
            +
                        points = np.array(points)
         | 
| 126 | 
            +
                        if self.score_mode == "fast":
         | 
| 127 | 
            +
                            score = self.box_score_fast(pred, points.reshape(-1, 2))
         | 
| 128 | 
            +
                        else:
         | 
| 129 | 
            +
                            score = self.box_score_slow(pred, contour)
         | 
| 130 | 
            +
                        if self.box_thresh > score:
         | 
| 131 | 
            +
                            continue
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                        box = self.unclip(points, self.unclip_ratio).reshape(-1, 1, 2)
         | 
| 134 | 
            +
                        box, sside = self.get_mini_boxes(box)
         | 
| 135 | 
            +
                        if sside < self.min_size + 2:
         | 
| 136 | 
            +
                            continue
         | 
| 137 | 
            +
                        box = np.array(box)
         | 
| 138 | 
            +
             | 
| 139 | 
            +
                        box[:, 0] = np.clip(
         | 
| 140 | 
            +
                            np.round(box[:, 0] / width * dest_width), 0, dest_width)
         | 
| 141 | 
            +
                        box[:, 1] = np.clip(
         | 
| 142 | 
            +
                            np.round(box[:, 1] / height * dest_height), 0, dest_height)
         | 
| 143 | 
            +
                        boxes.append(box.astype("int32"))
         | 
| 144 | 
            +
                        scores.append(score)
         | 
| 145 | 
            +
                    return np.array(boxes, dtype="int32"), scores
         | 
| 146 | 
            +
             | 
| 147 | 
            +
                def unclip(self, box, unclip_ratio):
         | 
| 148 | 
            +
                    poly = Polygon(box)
         | 
| 149 | 
            +
                    distance = poly.area * unclip_ratio / poly.length
         | 
| 150 | 
            +
                    offset = pyclipper.PyclipperOffset()
         | 
| 151 | 
            +
                    offset.AddPath(box, pyclipper.JT_ROUND, pyclipper.ET_CLOSEDPOLYGON)
         | 
| 152 | 
            +
                    expanded = np.array(offset.Execute(distance))
         | 
| 153 | 
            +
                    return expanded
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                def get_mini_boxes(self, contour):
         | 
| 156 | 
            +
                    bounding_box = cv2.minAreaRect(contour)
         | 
| 157 | 
            +
                    points = sorted(list(cv2.boxPoints(bounding_box)), key=lambda x: x[0])
         | 
| 158 | 
            +
             | 
| 159 | 
            +
                    index_1, index_2, index_3, index_4 = 0, 1, 2, 3
         | 
| 160 | 
            +
                    if points[1][1] > points[0][1]:
         | 
| 161 | 
            +
                        index_1 = 0
         | 
| 162 | 
            +
                        index_4 = 1
         | 
| 163 | 
            +
                    else:
         | 
| 164 | 
            +
                        index_1 = 1
         | 
| 165 | 
            +
                        index_4 = 0
         | 
| 166 | 
            +
                    if points[3][1] > points[2][1]:
         | 
| 167 | 
            +
                        index_2 = 2
         | 
| 168 | 
            +
                        index_3 = 3
         | 
| 169 | 
            +
                    else:
         | 
| 170 | 
            +
                        index_2 = 3
         | 
| 171 | 
            +
                        index_3 = 2
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                    box = [
         | 
| 174 | 
            +
                        points[index_1], points[index_2], points[index_3], points[index_4]
         | 
| 175 | 
            +
                    ]
         | 
| 176 | 
            +
                    return box, min(bounding_box[1])
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                def box_score_fast(self, bitmap, _box):
         | 
| 179 | 
            +
                    '''
         | 
| 180 | 
            +
                    box_score_fast: use bbox mean score as the mean score
         | 
| 181 | 
            +
                    '''
         | 
| 182 | 
            +
                    h, w = bitmap.shape[:2]
         | 
| 183 | 
            +
                    box = _box.copy()
         | 
| 184 | 
            +
                    xmin = np.clip(np.floor(box[:, 0].min()).astype("int32"), 0, w - 1)
         | 
| 185 | 
            +
                    xmax = np.clip(np.ceil(box[:, 0].max()).astype("int32"), 0, w - 1)
         | 
| 186 | 
            +
                    ymin = np.clip(np.floor(box[:, 1].min()).astype("int32"), 0, h - 1)
         | 
| 187 | 
            +
                    ymax = np.clip(np.ceil(box[:, 1].max()).astype("int32"), 0, h - 1)
         | 
| 188 | 
            +
             | 
| 189 | 
            +
                    mask = np.zeros((ymax - ymin + 1, xmax - xmin + 1), dtype=np.uint8)
         | 
| 190 | 
            +
                    box[:, 0] = box[:, 0] - xmin
         | 
| 191 | 
            +
                    box[:, 1] = box[:, 1] - ymin
         | 
| 192 | 
            +
                    cv2.fillPoly(mask, box.reshape(1, -1, 2).astype("int32"), 1)
         | 
| 193 | 
            +
                    return cv2.mean(bitmap[ymin:ymax + 1, xmin:xmax + 1], mask)[0]
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                def box_score_slow(self, bitmap, contour):
         | 
| 196 | 
            +
                    '''
         | 
| 197 | 
            +
                    box_score_slow: use polyon mean score as the mean score
         | 
| 198 | 
            +
                    '''
         | 
| 199 | 
            +
                    h, w = bitmap.shape[:2]
         | 
| 200 | 
            +
                    contour = contour.copy()
         | 
| 201 | 
            +
                    contour = np.reshape(contour, (-1, 2))
         | 
| 202 | 
            +
             | 
| 203 | 
            +
                    xmin = np.clip(np.min(contour[:, 0]), 0, w - 1)
         | 
| 204 | 
            +
                    xmax = np.clip(np.max(contour[:, 0]), 0, w - 1)
         | 
| 205 | 
            +
                    ymin = np.clip(np.min(contour[:, 1]), 0, h - 1)
         | 
| 206 | 
            +
                    ymax = np.clip(np.max(contour[:, 1]), 0, h - 1)
         | 
| 207 | 
            +
             | 
| 208 | 
            +
                    mask = np.zeros((ymax - ymin + 1, xmax - xmin + 1), dtype=np.uint8)
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                    contour[:, 0] = contour[:, 0] - xmin
         | 
| 211 | 
            +
                    contour[:, 1] = contour[:, 1] - ymin
         | 
| 212 | 
            +
             | 
| 213 | 
            +
                    cv2.fillPoly(mask, contour.reshape(1, -1, 2).astype("int32"), 1)
         | 
| 214 | 
            +
                    return cv2.mean(bitmap[ymin:ymax + 1, xmin:xmax + 1], mask)[0]
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                def __call__(self, outs_dict, shape_list):
         | 
| 217 | 
            +
                    pred = outs_dict['maps']
         | 
| 218 | 
            +
                    if isinstance(pred, paddle.Tensor):
         | 
| 219 | 
            +
                        pred = pred.numpy()
         | 
| 220 | 
            +
                    pred = pred[:, 0, :, :]
         | 
| 221 | 
            +
                    segmentation = pred > self.thresh
         | 
| 222 | 
            +
             | 
| 223 | 
            +
                    boxes_batch = []
         | 
| 224 | 
            +
                    for batch_index in range(pred.shape[0]):
         | 
| 225 | 
            +
                        src_h, src_w, ratio_h, ratio_w = shape_list[batch_index]
         | 
| 226 | 
            +
                        if self.dilation_kernel is not None:
         | 
| 227 | 
            +
                            mask = cv2.dilate(
         | 
| 228 | 
            +
                                np.array(segmentation[batch_index]).astype(np.uint8),
         | 
| 229 | 
            +
                                self.dilation_kernel)
         | 
| 230 | 
            +
                        else:
         | 
| 231 | 
            +
                            mask = segmentation[batch_index]
         | 
| 232 | 
            +
                        if self.box_type == 'poly':
         | 
| 233 | 
            +
                            boxes, scores = self.polygons_from_bitmap(pred[batch_index],
         | 
| 234 | 
            +
                                                                      mask, src_w, src_h)
         | 
| 235 | 
            +
                        elif self.box_type == 'quad':
         | 
| 236 | 
            +
                            boxes, scores = self.boxes_from_bitmap(pred[batch_index], mask,
         | 
| 237 | 
            +
                                                                   src_w, src_h)
         | 
| 238 | 
            +
                        else:
         | 
| 239 | 
            +
                            raise ValueError(
         | 
| 240 | 
            +
                                "box_type can only be one of ['quad', 'poly']")
         | 
| 241 | 
            +
             | 
| 242 | 
            +
                        boxes_batch.append({'points': boxes})
         | 
| 243 | 
            +
                    return boxes_batch
         | 
| 244 | 
            +
             | 
| 245 | 
            +
             | 
| 246 | 
            +
            class BaseRecLabelDecode(object):
         | 
| 247 | 
            +
                """ Convert between text-label and text-index """
         | 
| 248 | 
            +
             | 
| 249 | 
            +
                def __init__(self, character_dict_path=None, use_space_char=False):
         | 
| 250 | 
            +
                    self.beg_str = "sos"
         | 
| 251 | 
            +
                    self.end_str = "eos"
         | 
| 252 | 
            +
                    self.reverse = False
         | 
| 253 | 
            +
                    self.character_str = []
         | 
| 254 | 
            +
             | 
| 255 | 
            +
                    if character_dict_path is None:
         | 
| 256 | 
            +
                        self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz"
         | 
| 257 | 
            +
                        dict_character = list(self.character_str)
         | 
| 258 | 
            +
                    else:
         | 
| 259 | 
            +
                        with open(character_dict_path, "rb") as fin:
         | 
| 260 | 
            +
                            lines = fin.readlines()
         | 
| 261 | 
            +
                            for line in lines:
         | 
| 262 | 
            +
                                line = line.decode('utf-8').strip("\n").strip("\r\n")
         | 
| 263 | 
            +
                                self.character_str.append(line)
         | 
| 264 | 
            +
                        if use_space_char:
         | 
| 265 | 
            +
                            self.character_str.append(" ")
         | 
| 266 | 
            +
                        dict_character = list(self.character_str)
         | 
| 267 | 
            +
                        if 'arabic' in character_dict_path:
         | 
| 268 | 
            +
                            self.reverse = True
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                    dict_character = self.add_special_char(dict_character)
         | 
| 271 | 
            +
                    self.dict = {}
         | 
| 272 | 
            +
                    for i, char in enumerate(dict_character):
         | 
| 273 | 
            +
                        self.dict[char] = i
         | 
| 274 | 
            +
                    self.character = dict_character
         | 
| 275 | 
            +
             | 
| 276 | 
            +
                def pred_reverse(self, pred):
         | 
| 277 | 
            +
                    pred_re = []
         | 
| 278 | 
            +
                    c_current = ''
         | 
| 279 | 
            +
                    for c in pred:
         | 
| 280 | 
            +
                        if not bool(re.search('[a-zA-Z0-9 :*./%+-]', c)):
         | 
| 281 | 
            +
                            if c_current != '':
         | 
| 282 | 
            +
                                pred_re.append(c_current)
         | 
| 283 | 
            +
                            pred_re.append(c)
         | 
| 284 | 
            +
                            c_current = ''
         | 
| 285 | 
            +
                        else:
         | 
| 286 | 
            +
                            c_current += c
         | 
| 287 | 
            +
                    if c_current != '':
         | 
| 288 | 
            +
                        pred_re.append(c_current)
         | 
| 289 | 
            +
             | 
| 290 | 
            +
                    return ''.join(pred_re[::-1])
         | 
| 291 | 
            +
             | 
| 292 | 
            +
                def add_special_char(self, dict_character):
         | 
| 293 | 
            +
                    return dict_character
         | 
| 294 | 
            +
             | 
| 295 | 
            +
                def decode(self, text_index, text_prob=None, is_remove_duplicate=False):
         | 
| 296 | 
            +
                    """ convert text-index into text-label. """
         | 
| 297 | 
            +
                    result_list = []
         | 
| 298 | 
            +
                    ignored_tokens = self.get_ignored_tokens()
         | 
| 299 | 
            +
                    batch_size = len(text_index)
         | 
| 300 | 
            +
                    for batch_idx in range(batch_size):
         | 
| 301 | 
            +
                        selection = np.ones(len(text_index[batch_idx]), dtype=bool)
         | 
| 302 | 
            +
                        if is_remove_duplicate:
         | 
| 303 | 
            +
                            selection[1:] = text_index[batch_idx][1:] != text_index[
         | 
| 304 | 
            +
                                batch_idx][:-1]
         | 
| 305 | 
            +
                        for ignored_token in ignored_tokens:
         | 
| 306 | 
            +
                            selection &= text_index[batch_idx] != ignored_token
         | 
| 307 | 
            +
             | 
| 308 | 
            +
                        char_list = [
         | 
| 309 | 
            +
                            self.character[text_id]
         | 
| 310 | 
            +
                            for text_id in text_index[batch_idx][selection]
         | 
| 311 | 
            +
                        ]
         | 
| 312 | 
            +
                        if text_prob is not None:
         | 
| 313 | 
            +
                            conf_list = text_prob[batch_idx][selection]
         | 
| 314 | 
            +
                        else:
         | 
| 315 | 
            +
                            conf_list = [1] * len(selection)
         | 
| 316 | 
            +
                        if len(conf_list) == 0:
         | 
| 317 | 
            +
                            conf_list = [0]
         | 
| 318 | 
            +
             | 
| 319 | 
            +
                        text = ''.join(char_list)
         | 
| 320 | 
            +
             | 
| 321 | 
            +
                        if self.reverse:  # for arabic rec
         | 
| 322 | 
            +
                            text = self.pred_reverse(text)
         | 
| 323 | 
            +
             | 
| 324 | 
            +
                        result_list.append((text, np.mean(conf_list).tolist()))
         | 
| 325 | 
            +
                    return result_list
         | 
| 326 | 
            +
             | 
| 327 | 
            +
                def get_ignored_tokens(self):
         | 
| 328 | 
            +
                    return [0]  # for ctc blank
         | 
| 329 | 
            +
             | 
| 330 | 
            +
             | 
| 331 | 
            +
            class CTCLabelDecode(BaseRecLabelDecode):
         | 
| 332 | 
            +
                """ Convert between text-label and text-index """
         | 
| 333 | 
            +
             | 
| 334 | 
            +
                def __init__(self, character_dict_path=None, use_space_char=False,
         | 
| 335 | 
            +
                             **kwargs):
         | 
| 336 | 
            +
                    super(CTCLabelDecode, self).__init__(character_dict_path,
         | 
| 337 | 
            +
                                                         use_space_char)
         | 
| 338 | 
            +
             | 
| 339 | 
            +
                def __call__(self, preds, label=None, *args, **kwargs):
         | 
| 340 | 
            +
                    if isinstance(preds, tuple) or isinstance(preds, list):
         | 
| 341 | 
            +
                        preds = preds[-1]
         | 
| 342 | 
            +
                    if isinstance(preds, paddle.Tensor):
         | 
| 343 | 
            +
                        preds = preds.numpy()
         | 
| 344 | 
            +
                    preds_idx = preds.argmax(axis=2)
         | 
| 345 | 
            +
                    preds_prob = preds.max(axis=2)
         | 
| 346 | 
            +
                    text = self.decode(preds_idx, preds_prob, is_remove_duplicate=True)
         | 
| 347 | 
            +
                    if label is None:
         | 
| 348 | 
            +
                        return text
         | 
| 349 | 
            +
                    label = self.decode(label)
         | 
| 350 | 
            +
                    return text, label
         | 
| 351 | 
            +
             | 
| 352 | 
            +
                def add_special_char(self, dict_character):
         | 
| 353 | 
            +
                    dict_character = ['blank'] + dict_character
         | 
| 354 | 
            +
                    return dict_character
         | 
    	
        deepdoc/visual/recognizer.py
    ADDED
    
    | @@ -0,0 +1,139 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            import os
         | 
| 15 | 
            +
            import onnxruntime as ort
         | 
| 16 | 
            +
            from huggingface_hub import snapshot_download
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            from .operators import *
         | 
| 19 | 
            +
            from rag.settings import cron_logger
         | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 22 | 
            +
            class Recognizer(object):
         | 
| 23 | 
            +
                def __init__(self, label_list, task_name, model_dir=None):
         | 
| 24 | 
            +
                    """
         | 
| 25 | 
            +
                    If you have trouble downloading HuggingFace models, -_^ this might help!!
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    For Linux:
         | 
| 28 | 
            +
                    export HF_ENDPOINT=https://hf-mirror.com
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                    For Windows:
         | 
| 31 | 
            +
                    Good luck
         | 
| 32 | 
            +
                    ^_-
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                    """
         | 
| 35 | 
            +
                    if not model_dir:
         | 
| 36 | 
            +
                        model_dir = snapshot_download(repo_id="InfiniFlow/ocr")
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    model_file_path = os.path.join(model_dir, task_name + ".onnx")
         | 
| 39 | 
            +
                    if not os.path.exists(model_file_path):
         | 
| 40 | 
            +
                        raise ValueError("not find model file path {}".format(
         | 
| 41 | 
            +
                            model_file_path))
         | 
| 42 | 
            +
                    if ort.get_device() == "GPU":
         | 
| 43 | 
            +
                        self.ort_sess = ort.InferenceSession(model_file_path, providers=['CUDAExecutionProvider'])
         | 
| 44 | 
            +
                    else:
         | 
| 45 | 
            +
                        self.ort_sess = ort.InferenceSession(model_file_path, providers=['CPUExecutionProvider'])
         | 
| 46 | 
            +
                    self.label_list = label_list
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def create_inputs(self, imgs, im_info):
         | 
| 49 | 
            +
                    """generate input for different model type
         | 
| 50 | 
            +
                    Args:
         | 
| 51 | 
            +
                        imgs (list(numpy)): list of images (np.ndarray)
         | 
| 52 | 
            +
                        im_info (list(dict)): list of image info
         | 
| 53 | 
            +
                    Returns:
         | 
| 54 | 
            +
                        inputs (dict): input of model
         | 
| 55 | 
            +
                    """
         | 
| 56 | 
            +
                    inputs = {}
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                    im_shape = []
         | 
| 59 | 
            +
                    scale_factor = []
         | 
| 60 | 
            +
                    if len(imgs) == 1:
         | 
| 61 | 
            +
                        inputs['image'] = np.array((imgs[0],)).astype('float32')
         | 
| 62 | 
            +
                        inputs['im_shape'] = np.array(
         | 
| 63 | 
            +
                            (im_info[0]['im_shape'],)).astype('float32')
         | 
| 64 | 
            +
                        inputs['scale_factor'] = np.array(
         | 
| 65 | 
            +
                            (im_info[0]['scale_factor'],)).astype('float32')
         | 
| 66 | 
            +
                        return inputs
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                    for e in im_info:
         | 
| 69 | 
            +
                        im_shape.append(np.array((e['im_shape'],)).astype('float32'))
         | 
| 70 | 
            +
                        scale_factor.append(np.array((e['scale_factor'],)).astype('float32'))
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                    inputs['im_shape'] = np.concatenate(im_shape, axis=0)
         | 
| 73 | 
            +
                    inputs['scale_factor'] = np.concatenate(scale_factor, axis=0)
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                    imgs_shape = [[e.shape[1], e.shape[2]] for e in imgs]
         | 
| 76 | 
            +
                    max_shape_h = max([e[0] for e in imgs_shape])
         | 
| 77 | 
            +
                    max_shape_w = max([e[1] for e in imgs_shape])
         | 
| 78 | 
            +
                    padding_imgs = []
         | 
| 79 | 
            +
                    for img in imgs:
         | 
| 80 | 
            +
                        im_c, im_h, im_w = img.shape[:]
         | 
| 81 | 
            +
                        padding_im = np.zeros(
         | 
| 82 | 
            +
                            (im_c, max_shape_h, max_shape_w), dtype=np.float32)
         | 
| 83 | 
            +
                        padding_im[:, :im_h, :im_w] = img
         | 
| 84 | 
            +
                        padding_imgs.append(padding_im)
         | 
| 85 | 
            +
                    inputs['image'] = np.stack(padding_imgs, axis=0)
         | 
| 86 | 
            +
                    return inputs
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                def preprocess(self, image_list):
         | 
| 89 | 
            +
                    preprocess_ops = []
         | 
| 90 | 
            +
                    for op_info in [
         | 
| 91 | 
            +
                        {'interp': 2, 'keep_ratio': False, 'target_size': [800, 608], 'type': 'LinearResize'},
         | 
| 92 | 
            +
                        {'is_scale': True, 'mean': [0.485, 0.456, 0.406], 'std': [0.229, 0.224, 0.225], 'type': 'StandardizeImage'},
         | 
| 93 | 
            +
                        {'type': 'Permute'},
         | 
| 94 | 
            +
                        {'stride': 32, 'type': 'PadStride'}
         | 
| 95 | 
            +
                    ]:
         | 
| 96 | 
            +
                        new_op_info = op_info.copy()
         | 
| 97 | 
            +
                        op_type = new_op_info.pop('type')
         | 
| 98 | 
            +
                        preprocess_ops.append(eval(op_type)(**new_op_info))
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    inputs = []
         | 
| 101 | 
            +
                    for im_path in image_list:
         | 
| 102 | 
            +
                        im, im_info = preprocess(im_path, preprocess_ops)
         | 
| 103 | 
            +
                        inputs.append({"image": np.array((im,)).astype('float32'), "scale_factor": np.array((im_info["scale_factor"],)).astype('float32')})
         | 
| 104 | 
            +
                    return inputs
         | 
| 105 | 
            +
             | 
| 106 | 
            +
             | 
| 107 | 
            +
                def __call__(self, image_list, thr=0.7, batch_size=16):
         | 
| 108 | 
            +
                    res = []
         | 
| 109 | 
            +
                    imgs = []
         | 
| 110 | 
            +
                    for i in range(len(image_list)):
         | 
| 111 | 
            +
                        if not isinstance(image_list[i], np.ndarray):
         | 
| 112 | 
            +
                            imgs.append(np.array(image_list[i]))
         | 
| 113 | 
            +
                        else: imgs.append(image_list[i])
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                    batch_loop_cnt = math.ceil(float(len(imgs)) / batch_size)
         | 
| 116 | 
            +
                    for i in range(batch_loop_cnt):
         | 
| 117 | 
            +
                        start_index = i * batch_size
         | 
| 118 | 
            +
                        end_index = min((i + 1) * batch_size, len(imgs))
         | 
| 119 | 
            +
                        batch_image_list = imgs[start_index:end_index]
         | 
| 120 | 
            +
                        inputs = self.preprocess(batch_image_list)
         | 
| 121 | 
            +
                        for ins in inputs:
         | 
| 122 | 
            +
                            bb = []
         | 
| 123 | 
            +
                            for b in self.ort_sess.run(None, ins)[0]:
         | 
| 124 | 
            +
                                clsid, bbox, score = int(b[0]), b[2:], b[1]
         | 
| 125 | 
            +
                                if score < thr:
         | 
| 126 | 
            +
                                    continue
         | 
| 127 | 
            +
                                if clsid >= len(self.label_list):
         | 
| 128 | 
            +
                                    cron_logger.warning(f"bad category id")
         | 
| 129 | 
            +
                                    continue
         | 
| 130 | 
            +
                                bb.append({
         | 
| 131 | 
            +
                                    "type": self.label_list[clsid].lower(),
         | 
| 132 | 
            +
                                    "bbox": [float(t) for t in bbox.tolist()],
         | 
| 133 | 
            +
                                    "score": float(score)
         | 
| 134 | 
            +
                                })
         | 
| 135 | 
            +
                            res.append(bb)
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                    #seeit.save_results(image_list, res, self.label_list, threshold=thr)
         | 
| 138 | 
            +
             | 
| 139 | 
            +
                    return res
         | 
    	
        deepdoc/visual/seeit.py
    ADDED
    
    | @@ -0,0 +1,83 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            import os
         | 
| 15 | 
            +
            import PIL
         | 
| 16 | 
            +
            from PIL import ImageDraw
         | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
            def save_results(image_list, results, labels, output_dir='output/', threshold=0.5):
         | 
| 20 | 
            +
                if not os.path.exists(output_dir):
         | 
| 21 | 
            +
                    os.makedirs(output_dir)
         | 
| 22 | 
            +
                for idx, im in enumerate(image_list):
         | 
| 23 | 
            +
                    im = draw_box(im, results[idx], labels, threshold=threshold)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    out_path = os.path.join(output_dir, f"{idx}.jpg")
         | 
| 26 | 
            +
                    im.save(out_path, quality=95)
         | 
| 27 | 
            +
                    print("save result to: " + out_path)
         | 
| 28 | 
            +
             | 
| 29 | 
            +
             | 
| 30 | 
            +
            def draw_box(im, result, lables, threshold=0.5):
         | 
| 31 | 
            +
                draw_thickness = min(im.size) // 320
         | 
| 32 | 
            +
                draw = ImageDraw.Draw(im)
         | 
| 33 | 
            +
                color_list = get_color_map_list(len(lables))
         | 
| 34 | 
            +
                clsid2color = {n.lower():color_list[i] for i,n in enumerate(lables)}
         | 
| 35 | 
            +
                result = [r for r in result if r["score"] >= threshold]
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                for dt in result:
         | 
| 38 | 
            +
                    color = tuple(clsid2color[dt["type"]])
         | 
| 39 | 
            +
                    xmin, ymin, xmax, ymax = dt["bbox"]
         | 
| 40 | 
            +
                    draw.line(
         | 
| 41 | 
            +
                        [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin),
         | 
| 42 | 
            +
                         (xmin, ymin)],
         | 
| 43 | 
            +
                        width=draw_thickness,
         | 
| 44 | 
            +
                        fill=color)
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                    # draw label
         | 
| 47 | 
            +
                    text = "{} {:.4f}".format(dt["type"], dt["score"])
         | 
| 48 | 
            +
                    tw, th = imagedraw_textsize_c(draw, text)
         | 
| 49 | 
            +
                    draw.rectangle(
         | 
| 50 | 
            +
                        [(xmin + 1, ymin - th), (xmin + tw + 1, ymin)], fill=color)
         | 
| 51 | 
            +
                    draw.text((xmin + 1, ymin - th), text, fill=(255, 255, 255))
         | 
| 52 | 
            +
                return im
         | 
| 53 | 
            +
             | 
| 54 | 
            +
             | 
| 55 | 
            +
            def get_color_map_list(num_classes):
         | 
| 56 | 
            +
                """
         | 
| 57 | 
            +
                Args:
         | 
| 58 | 
            +
                    num_classes (int): number of class
         | 
| 59 | 
            +
                Returns:
         | 
| 60 | 
            +
                    color_map (list): RGB color list
         | 
| 61 | 
            +
                """
         | 
| 62 | 
            +
                color_map = num_classes * [0, 0, 0]
         | 
| 63 | 
            +
                for i in range(0, num_classes):
         | 
| 64 | 
            +
                    j = 0
         | 
| 65 | 
            +
                    lab = i
         | 
| 66 | 
            +
                    while lab:
         | 
| 67 | 
            +
                        color_map[i * 3] |= (((lab >> 0) & 1) << (7 - j))
         | 
| 68 | 
            +
                        color_map[i * 3 + 1] |= (((lab >> 1) & 1) << (7 - j))
         | 
| 69 | 
            +
                        color_map[i * 3 + 2] |= (((lab >> 2) & 1) << (7 - j))
         | 
| 70 | 
            +
                        j += 1
         | 
| 71 | 
            +
                        lab >>= 3
         | 
| 72 | 
            +
                color_map = [color_map[i:i + 3] for i in range(0, len(color_map), 3)]
         | 
| 73 | 
            +
                return color_map
         | 
| 74 | 
            +
             | 
| 75 | 
            +
             | 
| 76 | 
            +
            def imagedraw_textsize_c(draw, text):
         | 
| 77 | 
            +
                if int(PIL.__version__.split('.')[0]) < 10:
         | 
| 78 | 
            +
                    tw, th = draw.textsize(text)
         | 
| 79 | 
            +
                else:
         | 
| 80 | 
            +
                    left, top, right, bottom = draw.textbbox((0, 0), text)
         | 
| 81 | 
            +
                    tw, th = right - left, bottom - top
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                return tw, th
         | 
    	
        rag/app/book.py
    CHANGED
    
    | @@ -1,15 +1,24 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
            -
            import random
         | 
| 3 | 
             
            import re
         | 
| 4 | 
            -
            import  | 
| 5 | 
            -
            from rag.parser import bullets_category, BULLET_PATTERN, is_english, tokenize, remove_contents_table, \
         | 
| 6 | 
             
                hierarchical_merge, make_colon_as_title, naive_merge, random_choices
         | 
| 7 | 
             
            from rag.nlp import huqie
         | 
| 8 | 
            -
            from  | 
| 9 | 
            -
            from rag.parser.pdf_parser import HuParser
         | 
| 10 |  | 
| 11 |  | 
| 12 | 
            -
            class Pdf( | 
| 13 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 14 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 15 | 
             
                    self.__images__(
         | 
| @@ -21,7 +30,7 @@ class Pdf(HuParser): | |
| 21 |  | 
| 22 | 
             
                    from timeit import default_timer as timer
         | 
| 23 | 
             
                    start = timer()
         | 
| 24 | 
            -
                    self. | 
| 25 | 
             
                    callback(0.47, "Layout analysis finished")
         | 
| 26 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 27 | 
             
                    self._table_transformer_job(zoomin)
         | 
| @@ -53,7 +62,7 @@ def chunk(filename, binary=None, from_page=0, to_page=100000, callback=None, **k | |
| 53 | 
             
                sections,tbls = [], []
         | 
| 54 | 
             
                if re.search(r"\.docx?$", filename, re.IGNORECASE):
         | 
| 55 | 
             
                    callback(0.1, "Start to parse.")
         | 
| 56 | 
            -
                    doc_parser =  | 
| 57 | 
             
                    # TODO: table of contents need to be removed
         | 
| 58 | 
             
                    sections, tbls = doc_parser(binary if binary else filename, from_page=from_page, to_page=to_page)
         | 
| 59 | 
             
                    remove_contents_table(sections, eng=is_english(random_choices([t for t,_ in sections], k=200)))
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
|  | |
| 14 | 
             
            import re
         | 
| 15 | 
            +
            from deepdoc.parser import bullets_category, is_english, tokenize, remove_contents_table, \
         | 
|  | |
| 16 | 
             
                hierarchical_merge, make_colon_as_title, naive_merge, random_choices
         | 
| 17 | 
             
            from rag.nlp import huqie
         | 
| 18 | 
            +
            from deepdoc.parser import PdfParser, DocxParser
         | 
|  | |
| 19 |  | 
| 20 |  | 
| 21 | 
            +
            class Pdf(PdfParser):
         | 
| 22 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 23 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 24 | 
             
                    self.__images__(
         | 
|  | |
| 30 |  | 
| 31 | 
             
                    from timeit import default_timer as timer
         | 
| 32 | 
             
                    start = timer()
         | 
| 33 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 34 | 
             
                    callback(0.47, "Layout analysis finished")
         | 
| 35 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 36 | 
             
                    self._table_transformer_job(zoomin)
         | 
|  | |
| 62 | 
             
                sections,tbls = [], []
         | 
| 63 | 
             
                if re.search(r"\.docx?$", filename, re.IGNORECASE):
         | 
| 64 | 
             
                    callback(0.1, "Start to parse.")
         | 
| 65 | 
            +
                    doc_parser = DocxParser()
         | 
| 66 | 
             
                    # TODO: table of contents need to be removed
         | 
| 67 | 
             
                    sections, tbls = doc_parser(binary if binary else filename, from_page=from_page, to_page=to_page)
         | 
| 68 | 
             
                    remove_contents_table(sections, eng=is_english(random_choices([t for t,_ in sections], k=200)))
         | 
    	
        rag/app/laws.py
    CHANGED
    
    | @@ -1,16 +1,27 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
             
            from io import BytesIO
         | 
| 4 | 
             
            from docx import Document
         | 
| 5 | 
            -
            from  | 
| 6 | 
             
                make_colon_as_title
         | 
| 7 | 
             
            from rag.nlp import huqie
         | 
| 8 | 
            -
            from  | 
| 9 | 
            -
            from rag.parser.pdf_parser import HuParser
         | 
| 10 | 
             
            from rag.settings import cron_logger
         | 
| 11 |  | 
| 12 |  | 
| 13 | 
            -
            class Docx( | 
| 14 | 
             
                def __init__(self):
         | 
| 15 | 
             
                    pass
         | 
| 16 |  | 
| @@ -35,7 +46,7 @@ class Docx(HuDocxParser): | |
| 35 | 
             
                    return [l for l in lines if l]
         | 
| 36 |  | 
| 37 |  | 
| 38 | 
            -
            class Pdf( | 
| 39 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 40 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 41 | 
             
                    self.__images__(
         | 
| @@ -47,7 +58,7 @@ class Pdf(HuParser): | |
| 47 |  | 
| 48 | 
             
                    from timeit import default_timer as timer
         | 
| 49 | 
             
                    start = timer()
         | 
| 50 | 
            -
                    self. | 
| 51 | 
             
                    callback(0.77, "Layout analysis finished")
         | 
| 52 | 
             
                    cron_logger.info("paddle layouts:".format((timer()-start)/(self.total_page+0.1)))
         | 
| 53 | 
             
                    self._naive_vertical_merge()
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
| 14 | 
             
            import re
         | 
| 15 | 
             
            from io import BytesIO
         | 
| 16 | 
             
            from docx import Document
         | 
| 17 | 
            +
            from deepdoc.parser import bullets_category, is_english, tokenize, remove_contents_table, hierarchical_merge, \
         | 
| 18 | 
             
                make_colon_as_title
         | 
| 19 | 
             
            from rag.nlp import huqie
         | 
| 20 | 
            +
            from deepdoc.parser import PdfParser, DocxParser
         | 
|  | |
| 21 | 
             
            from rag.settings import cron_logger
         | 
| 22 |  | 
| 23 |  | 
| 24 | 
            +
            class Docx(DocxParser):
         | 
| 25 | 
             
                def __init__(self):
         | 
| 26 | 
             
                    pass
         | 
| 27 |  | 
|  | |
| 46 | 
             
                    return [l for l in lines if l]
         | 
| 47 |  | 
| 48 |  | 
| 49 | 
            +
            class Pdf(PdfParser):
         | 
| 50 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 51 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 52 | 
             
                    self.__images__(
         | 
|  | |
| 58 |  | 
| 59 | 
             
                    from timeit import default_timer as timer
         | 
| 60 | 
             
                    start = timer()
         | 
| 61 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 62 | 
             
                    callback(0.77, "Layout analysis finished")
         | 
| 63 | 
             
                    cron_logger.info("paddle layouts:".format((timer()-start)/(self.total_page+0.1)))
         | 
| 64 | 
             
                    self._naive_vertical_merge()
         | 
    	
        rag/app/manual.py
    CHANGED
    
    | @@ -1,12 +1,12 @@ | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
            -
            from  | 
| 4 | 
             
            from rag.nlp import huqie
         | 
| 5 | 
            -
            from  | 
| 6 | 
             
            from rag.utils import num_tokens_from_string
         | 
| 7 |  | 
| 8 |  | 
| 9 | 
            -
            class Pdf( | 
| 10 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 11 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 12 | 
             
                    self.__images__(
         | 
| @@ -18,7 +18,7 @@ class Pdf(HuParser): | |
| 18 |  | 
| 19 | 
             
                    from timeit import default_timer as timer
         | 
| 20 | 
             
                    start = timer()
         | 
| 21 | 
            -
                    self. | 
| 22 | 
             
                    callback(0.5, "Layout analysis finished.")
         | 
| 23 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 24 | 
             
                    self._table_transformer_job(zoomin)
         | 
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
            +
            from deepdoc.parser import tokenize
         | 
| 4 | 
             
            from rag.nlp import huqie
         | 
| 5 | 
            +
            from deepdoc.parser import PdfParser
         | 
| 6 | 
             
            from rag.utils import num_tokens_from_string
         | 
| 7 |  | 
| 8 |  | 
| 9 | 
            +
            class Pdf(PdfParser):
         | 
| 10 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 11 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 12 | 
             
                    self.__images__(
         | 
|  | |
| 18 |  | 
| 19 | 
             
                    from timeit import default_timer as timer
         | 
| 20 | 
             
                    start = timer()
         | 
| 21 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 22 | 
             
                    callback(0.5, "Layout analysis finished.")
         | 
| 23 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 24 | 
             
                    self._table_transformer_job(zoomin)
         | 
    	
        rag/app/naive.py
    CHANGED
    
    | @@ -1,13 +1,25 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
             
            from rag.app import laws
         | 
| 4 | 
            -
            from  | 
| 5 | 
             
            from rag.nlp import huqie
         | 
| 6 | 
            -
            from  | 
| 7 | 
             
            from rag.settings import cron_logger
         | 
| 8 |  | 
| 9 |  | 
| 10 | 
            -
            class Pdf( | 
| 11 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 12 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 13 | 
             
                    self.__images__(
         | 
| @@ -19,7 +31,7 @@ class Pdf(HuParser): | |
| 19 |  | 
| 20 | 
             
                    from timeit import default_timer as timer
         | 
| 21 | 
             
                    start = timer()
         | 
| 22 | 
            -
                    self. | 
| 23 | 
             
                    callback(0.77, "Layout analysis finished")
         | 
| 24 | 
             
                    cron_logger.info("paddle layouts:".format((timer() - start) / (self.total_page + 0.1)))
         | 
| 25 | 
             
                    self._naive_vertical_merge()
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
| 14 | 
             
            import re
         | 
| 15 | 
             
            from rag.app import laws
         | 
| 16 | 
            +
            from deepdoc.parser import is_english, tokenize, naive_merge
         | 
| 17 | 
             
            from rag.nlp import huqie
         | 
| 18 | 
            +
            from deepdoc.parser import PdfParser
         | 
| 19 | 
             
            from rag.settings import cron_logger
         | 
| 20 |  | 
| 21 |  | 
| 22 | 
            +
            class Pdf(PdfParser):
         | 
| 23 | 
             
                def __call__(self, filename, binary=None, from_page=0,
         | 
| 24 | 
             
                             to_page=100000, zoomin=3, callback=None):
         | 
| 25 | 
             
                    self.__images__(
         | 
|  | |
| 31 |  | 
| 32 | 
             
                    from timeit import default_timer as timer
         | 
| 33 | 
             
                    start = timer()
         | 
| 34 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 35 | 
             
                    callback(0.77, "Layout analysis finished")
         | 
| 36 | 
             
                    cron_logger.info("paddle layouts:".format((timer() - start) / (self.total_page + 0.1)))
         | 
| 37 | 
             
                    self._naive_vertical_merge()
         | 
    	
        rag/app/paper.py
    CHANGED
    
    | @@ -1,16 +1,28 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
             
            from collections import Counter
         | 
| 4 |  | 
| 5 | 
             
            from api.db import ParserType
         | 
| 6 | 
            -
            from  | 
| 7 | 
             
            from rag.nlp import huqie
         | 
| 8 | 
            -
            from  | 
| 9 | 
             
            import numpy as np
         | 
| 10 | 
             
            from rag.utils import num_tokens_from_string
         | 
| 11 |  | 
| 12 |  | 
| 13 | 
            -
            class Pdf( | 
| 14 | 
             
                def __init__(self):
         | 
| 15 | 
             
                    self.model_speciess = ParserType.PAPER.value
         | 
| 16 | 
             
                    super().__init__()
         | 
| @@ -26,7 +38,7 @@ class Pdf(HuParser): | |
| 26 |  | 
| 27 | 
             
                    from timeit import default_timer as timer
         | 
| 28 | 
             
                    start = timer()
         | 
| 29 | 
            -
                    self. | 
| 30 | 
             
                    callback(0.47, "Layout analysis finished")
         | 
| 31 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 32 | 
             
                    self._table_transformer_job(zoomin)
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
| 14 | 
             
            import re
         | 
| 15 | 
             
            from collections import Counter
         | 
| 16 |  | 
| 17 | 
             
            from api.db import ParserType
         | 
| 18 | 
            +
            from deepdoc.parser import tokenize
         | 
| 19 | 
             
            from rag.nlp import huqie
         | 
| 20 | 
            +
            from deepdoc.parser import PdfParser
         | 
| 21 | 
             
            import numpy as np
         | 
| 22 | 
             
            from rag.utils import num_tokens_from_string
         | 
| 23 |  | 
| 24 |  | 
| 25 | 
            +
            class Pdf(PdfParser):
         | 
| 26 | 
             
                def __init__(self):
         | 
| 27 | 
             
                    self.model_speciess = ParserType.PAPER.value
         | 
| 28 | 
             
                    super().__init__()
         | 
|  | |
| 38 |  | 
| 39 | 
             
                    from timeit import default_timer as timer
         | 
| 40 | 
             
                    start = timer()
         | 
| 41 | 
            +
                    self._layouts_rec(zoomin)
         | 
| 42 | 
             
                    callback(0.47, "Layout analysis finished")
         | 
| 43 | 
             
                    print("paddle layouts:", timer() - start)
         | 
| 44 | 
             
                    self._table_transformer_job(zoomin)
         | 
    	
        rag/app/presentation.py
    CHANGED
    
    | @@ -1,11 +1,22 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
             
            from io import BytesIO
         | 
| 4 | 
             
            from pptx import Presentation
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            from rag.parser import tokenize, is_english
         | 
| 7 | 
             
            from rag.nlp import huqie
         | 
| 8 | 
            -
            from  | 
| 9 |  | 
| 10 |  | 
| 11 | 
             
            class Ppt(object):
         | 
| @@ -58,7 +69,7 @@ class Ppt(object): | |
| 58 | 
             
                    return [(txts[i], imgs[i]) for i in range(len(txts))]
         | 
| 59 |  | 
| 60 |  | 
| 61 | 
            -
            class Pdf( | 
| 62 | 
             
                def __init__(self):
         | 
| 63 | 
             
                    super().__init__()
         | 
| 64 |  | 
| @@ -74,7 +85,7 @@ class Pdf(HuParser): | |
| 74 | 
             
                    assert len(self.boxes) == len(self.page_images), "{} vs. {}".format(len(self.boxes), len(self.page_images))
         | 
| 75 | 
             
                    res = []
         | 
| 76 | 
             
                    #################### More precisely ###################
         | 
| 77 | 
            -
                    # self. | 
| 78 | 
             
                    # self._text_merge()
         | 
| 79 | 
             
                    # pages = {}
         | 
| 80 | 
             
                    # for b in self.boxes:
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
| 14 | 
             
            import re
         | 
| 15 | 
             
            from io import BytesIO
         | 
| 16 | 
             
            from pptx import Presentation
         | 
| 17 | 
            +
            from deepdoc.parser import tokenize, is_english
         | 
|  | |
| 18 | 
             
            from rag.nlp import huqie
         | 
| 19 | 
            +
            from deepdoc.parser import PdfParser
         | 
| 20 |  | 
| 21 |  | 
| 22 | 
             
            class Ppt(object):
         | 
|  | |
| 69 | 
             
                    return [(txts[i], imgs[i]) for i in range(len(txts))]
         | 
| 70 |  | 
| 71 |  | 
| 72 | 
            +
            class Pdf(PdfParser):
         | 
| 73 | 
             
                def __init__(self):
         | 
| 74 | 
             
                    super().__init__()
         | 
| 75 |  | 
|  | |
| 85 | 
             
                    assert len(self.boxes) == len(self.page_images), "{} vs. {}".format(len(self.boxes), len(self.page_images))
         | 
| 86 | 
             
                    res = []
         | 
| 87 | 
             
                    #################### More precisely ###################
         | 
| 88 | 
            +
                    # self._layouts_rec(zoomin)
         | 
| 89 | 
             
                    # self._text_merge()
         | 
| 90 | 
             
                    # pages = {}
         | 
| 91 | 
             
                    # for b in self.boxes:
         | 
    	
        rag/app/qa.py
    CHANGED
    
    | @@ -1,13 +1,25 @@ | |
| 1 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 2 | 
             
            import re
         | 
| 3 | 
             
            from io import BytesIO
         | 
| 4 | 
             
            from nltk import word_tokenize
         | 
| 5 | 
             
            from openpyxl import load_workbook
         | 
| 6 | 
            -
            from  | 
| 7 | 
             
            from rag.nlp import huqie, stemmer
         | 
|  | |
| 8 |  | 
| 9 |  | 
| 10 | 
            -
            class Excel( | 
| 11 | 
             
                def __call__(self, fnm, binary=None, callback=None):
         | 
| 12 | 
             
                    if not binary:
         | 
| 13 | 
             
                        wb = load_workbook(fnm)
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import re
         | 
| 14 | 
             
            from io import BytesIO
         | 
| 15 | 
             
            from nltk import word_tokenize
         | 
| 16 | 
             
            from openpyxl import load_workbook
         | 
| 17 | 
            +
            from deepdoc.parser import is_english, random_choices
         | 
| 18 | 
             
            from rag.nlp import huqie, stemmer
         | 
| 19 | 
            +
            from deepdoc.parser import ExcelParser
         | 
| 20 |  | 
| 21 |  | 
| 22 | 
            +
            class Excel(ExcelParser):
         | 
| 23 | 
             
                def __call__(self, fnm, binary=None, callback=None):
         | 
| 24 | 
             
                    if not binary:
         | 
| 25 | 
             
                        wb = load_workbook(fnm)
         | 
    	
        rag/app/resume.py
    CHANGED
    
    | @@ -1,59 +1,82 @@ | |
| 1 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 2 | 
             
            import json
         | 
| 3 | 
            -
            import os
         | 
| 4 | 
             
            import re
         | 
|  | |
|  | |
| 5 | 
             
            import requests
         | 
| 6 | 
             
            from api.db.services.knowledgebase_service import KnowledgebaseService
         | 
| 7 | 
            -
            from api.settings import stat_logger
         | 
| 8 | 
             
            from rag.nlp import huqie
         | 
| 9 | 
            -
             | 
|  | |
| 10 | 
             
            from rag.settings import cron_logger
         | 
| 11 | 
             
            from rag.utils import rmSpace
         | 
| 12 |  | 
| 13 | 
             
            forbidden_select_fields4resume = [
         | 
| 14 | 
             
                "name_pinyin_kwd", "edu_first_fea_kwd", "degree_kwd", "sch_rank_kwd", "edu_fea_kwd"
         | 
| 15 | 
             
            ]
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 16 |  | 
| 17 | 
             
            def chunk(filename, binary=None, callback=None, **kwargs):
         | 
| 18 | 
             
                """
         | 
| 19 | 
             
                The supported file formats are pdf, docx and txt.
         | 
| 20 | 
            -
                To maximize the effectiveness, parse the resume correctly,
         | 
| 21 | 
            -
                please visit https://github.com/infiniflow/ragflow, and sign in the our demo web-site
         | 
| 22 | 
            -
                to get token. It's FREE!
         | 
| 23 | 
            -
                Set INFINIFLOW_SERVER and INFINIFLOW_TOKEN in '.env' file or
         | 
| 24 | 
            -
                using 'export' to set both environment variables: INFINIFLOW_SERVER and INFINIFLOW_TOKEN in docker container.
         | 
| 25 | 
             
                """
         | 
| 26 | 
             
                if not re.search(r"\.(pdf|doc|docx|txt)$", filename, flags=re.IGNORECASE):
         | 
| 27 | 
             
                    raise NotImplementedError("file type not supported yet(pdf supported)")
         | 
| 28 |  | 
| 29 | 
            -
                url = os.environ.get("INFINIFLOW_SERVER")
         | 
| 30 | 
            -
                token = os.environ.get("INFINIFLOW_TOKEN")
         | 
| 31 | 
            -
                if not url or not token:
         | 
| 32 | 
            -
                    stat_logger.warning(
         | 
| 33 | 
            -
                        "INFINIFLOW_SERVER is not specified. To maximize the effectiveness, please visit https://github.com/infiniflow/ragflow, and sign in the our demo web site to get token. It's FREE! Using 'export' to set both environment variables: INFINIFLOW_SERVER and INFINIFLOW_TOKEN.")
         | 
| 34 | 
            -
                    return []
         | 
| 35 | 
            -
             | 
| 36 | 
             
                if not binary:
         | 
| 37 | 
             
                    with open(filename, "rb") as f:
         | 
| 38 | 
             
                        binary = f.read()
         | 
| 39 |  | 
| 40 | 
            -
                def remote_call():
         | 
| 41 | 
            -
                    nonlocal filename, binary
         | 
| 42 | 
            -
                    for _ in range(3):
         | 
| 43 | 
            -
                        try:
         | 
| 44 | 
            -
                            res = requests.post(url + "/v1/layout/resume/", files=[(filename, binary)],
         | 
| 45 | 
            -
                                                headers={"Authorization": token}, timeout=180)
         | 
| 46 | 
            -
                            res = res.json()
         | 
| 47 | 
            -
                            if res["retcode"] != 0:
         | 
| 48 | 
            -
                                raise RuntimeError(res["retmsg"])
         | 
| 49 | 
            -
                            return res["data"]
         | 
| 50 | 
            -
                        except RuntimeError as e:
         | 
| 51 | 
            -
                            raise e
         | 
| 52 | 
            -
                        except Exception as e:
         | 
| 53 | 
            -
                            cron_logger.error("resume parsing:" + str(e))
         | 
| 54 | 
            -
             | 
| 55 | 
             
                callback(0.2, "Resume parsing is going on...")
         | 
| 56 | 
            -
                resume = remote_call()
         | 
| 57 | 
             
                if len(resume.keys()) < 7:
         | 
| 58 | 
             
                    callback(-1, "Resume is not successfully parsed.")
         | 
| 59 | 
             
                    return []
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
            +
            import base64
         | 
| 14 | 
            +
            import datetime
         | 
| 15 | 
             
            import json
         | 
|  | |
| 16 | 
             
            import re
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            import pandas as pd
         | 
| 19 | 
             
            import requests
         | 
| 20 | 
             
            from api.db.services.knowledgebase_service import KnowledgebaseService
         | 
|  | |
| 21 | 
             
            from rag.nlp import huqie
         | 
| 22 | 
            +
            from deepdoc.parser.resume import refactor
         | 
| 23 | 
            +
            from deepdoc.parser.resume import step_one, step_two
         | 
| 24 | 
             
            from rag.settings import cron_logger
         | 
| 25 | 
             
            from rag.utils import rmSpace
         | 
| 26 |  | 
| 27 | 
             
            forbidden_select_fields4resume = [
         | 
| 28 | 
             
                "name_pinyin_kwd", "edu_first_fea_kwd", "degree_kwd", "sch_rank_kwd", "edu_fea_kwd"
         | 
| 29 | 
             
            ]
         | 
| 30 | 
            +
            def remote_call(filename, binary):
         | 
| 31 | 
            +
                q = {
         | 
| 32 | 
            +
                    "header": {
         | 
| 33 | 
            +
                        "uid": 1,
         | 
| 34 | 
            +
                        "user": "kevinhu",
         | 
| 35 | 
            +
                        "log_id": filename
         | 
| 36 | 
            +
                    },
         | 
| 37 | 
            +
                    "request": {
         | 
| 38 | 
            +
                        "p": {
         | 
| 39 | 
            +
                            "request_id": "1",
         | 
| 40 | 
            +
                            "encrypt_type": "base64",
         | 
| 41 | 
            +
                            "filename": filename,
         | 
| 42 | 
            +
                            "langtype": '',
         | 
| 43 | 
            +
                            "fileori": base64.b64encode(binary.stream.read()).decode('utf-8')
         | 
| 44 | 
            +
                        },
         | 
| 45 | 
            +
                        "c": "resume_parse_module",
         | 
| 46 | 
            +
                        "m": "resume_parse"
         | 
| 47 | 
            +
                    }
         | 
| 48 | 
            +
                }
         | 
| 49 | 
            +
                for _ in range(3):
         | 
| 50 | 
            +
                    try:
         | 
| 51 | 
            +
                        resume = requests.post("http://127.0.0.1:61670/tog", data=json.dumps(q))
         | 
| 52 | 
            +
                        resume = resume.json()["response"]["results"]
         | 
| 53 | 
            +
                        resume = refactor(resume)
         | 
| 54 | 
            +
                        for k in ["education", "work", "project", "training", "skill", "certificate", "language"]:
         | 
| 55 | 
            +
                            if not resume.get(k) and k in resume: del resume[k]
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                        resume = step_one.refactor(pd.DataFrame([{"resume_content": json.dumps(resume), "tob_resume_id": "x",
         | 
| 58 | 
            +
                                                            "updated_at": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]))
         | 
| 59 | 
            +
                        resume = step_two.parse(resume)
         | 
| 60 | 
            +
                        return resume
         | 
| 61 | 
            +
                    except Exception as e:
         | 
| 62 | 
            +
                        cron_logger.error("Resume parser error: "+str(e))
         | 
| 63 | 
            +
                return {}
         | 
| 64 | 
            +
             | 
| 65 |  | 
| 66 | 
             
            def chunk(filename, binary=None, callback=None, **kwargs):
         | 
| 67 | 
             
                """
         | 
| 68 | 
             
                The supported file formats are pdf, docx and txt.
         | 
| 69 | 
            +
                To maximize the effectiveness, parse the resume correctly, please concat us: https://github.com/infiniflow/ragflow
         | 
|  | |
|  | |
|  | |
|  | |
| 70 | 
             
                """
         | 
| 71 | 
             
                if not re.search(r"\.(pdf|doc|docx|txt)$", filename, flags=re.IGNORECASE):
         | 
| 72 | 
             
                    raise NotImplementedError("file type not supported yet(pdf supported)")
         | 
| 73 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 74 | 
             
                if not binary:
         | 
| 75 | 
             
                    with open(filename, "rb") as f:
         | 
| 76 | 
             
                        binary = f.read()
         | 
| 77 |  | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 78 | 
             
                callback(0.2, "Resume parsing is going on...")
         | 
| 79 | 
            +
                resume = remote_call(filename, binary)
         | 
| 80 | 
             
                if len(resume.keys()) < 7:
         | 
| 81 | 
             
                    callback(-1, "Resume is not successfully parsed.")
         | 
| 82 | 
             
                    return []
         | 
    	
        rag/app/table.py
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import copy
         | 
| 2 | 
             
            import re
         | 
| 3 | 
             
            from io import BytesIO
         | 
| @@ -8,11 +20,12 @@ from openpyxl import load_workbook | |
| 8 | 
             
            from dateutil.parser import parse as datetime_parse
         | 
| 9 |  | 
| 10 | 
             
            from api.db.services.knowledgebase_service import KnowledgebaseService
         | 
| 11 | 
            -
            from  | 
| 12 | 
            -
            from rag.nlp import huqie | 
|  | |
| 13 |  | 
| 14 |  | 
| 15 | 
            -
            class Excel( | 
| 16 | 
             
                def __call__(self, fnm, binary=None, callback=None):
         | 
| 17 | 
             
                    if not binary:
         | 
| 18 | 
             
                        wb = load_workbook(fnm)
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import copy
         | 
| 14 | 
             
            import re
         | 
| 15 | 
             
            from io import BytesIO
         | 
|  | |
| 20 | 
             
            from dateutil.parser import parse as datetime_parse
         | 
| 21 |  | 
| 22 | 
             
            from api.db.services.knowledgebase_service import KnowledgebaseService
         | 
| 23 | 
            +
            from deepdoc.parser import is_english, tokenize
         | 
| 24 | 
            +
            from rag.nlp import huqie
         | 
| 25 | 
            +
            from deepdoc.parser import ExcelParser
         | 
| 26 |  | 
| 27 |  | 
| 28 | 
            +
            class Excel(ExcelParser):
         | 
| 29 | 
             
                def __call__(self, fnm, binary=None, callback=None):
         | 
| 30 | 
             
                    if not binary:
         | 
| 31 | 
             
                        wb = load_workbook(fnm)
         | 
    	
        rag/nlp/huchunk.py
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 1 | 
             
            import re
         | 
| 2 | 
             
            import os
         | 
| 3 | 
             
            import copy
         | 
| @@ -443,13 +455,13 @@ if __name__ == "__main__": | |
| 443 | 
             
                import sys
         | 
| 444 | 
             
                sys.path.append(os.path.dirname(__file__) + "/../")
         | 
| 445 | 
             
                if sys.argv[1].split(".")[-1].lower() == "pdf":
         | 
| 446 | 
            -
                    from parser import PdfParser
         | 
| 447 | 
             
                    ckr = PdfChunker(PdfParser())
         | 
| 448 | 
             
                if sys.argv[1].split(".")[-1].lower().find("doc") >= 0:
         | 
| 449 | 
            -
                    from parser import DocxParser
         | 
| 450 | 
             
                    ckr = DocxChunker(DocxParser())
         | 
| 451 | 
             
                if sys.argv[1].split(".")[-1].lower().find("xlsx") >= 0:
         | 
| 452 | 
            -
                    from parser import ExcelParser
         | 
| 453 | 
             
                    ckr = ExcelChunker(ExcelParser())
         | 
| 454 |  | 
| 455 | 
             
                # ckr.html(sys.argv[1])
         | 
|  | |
| 1 | 
            +
            #  Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 2 | 
            +
            #  you may not use this file except in compliance with the License.
         | 
| 3 | 
            +
            #  You may obtain a copy of the License at
         | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            #      http://www.apache.org/licenses/LICENSE-2.0
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            #  Unless required by applicable law or agreed to in writing, software
         | 
| 8 | 
            +
            #  distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 9 | 
            +
            #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 10 | 
            +
            #  See the License for the specific language governing permissions and
         | 
| 11 | 
            +
            #  limitations under the License.
         | 
| 12 | 
            +
            #
         | 
| 13 | 
             
            import re
         | 
| 14 | 
             
            import os
         | 
| 15 | 
             
            import copy
         | 
|  | |
| 455 | 
             
                import sys
         | 
| 456 | 
             
                sys.path.append(os.path.dirname(__file__) + "/../")
         | 
| 457 | 
             
                if sys.argv[1].split(".")[-1].lower() == "pdf":
         | 
| 458 | 
            +
                    from deepdoc.parser import PdfParser
         | 
| 459 | 
             
                    ckr = PdfChunker(PdfParser())
         | 
| 460 | 
             
                if sys.argv[1].split(".")[-1].lower().find("doc") >= 0:
         | 
| 461 | 
            +
                    from deepdoc.parser import DocxParser
         | 
| 462 | 
             
                    ckr = DocxChunker(DocxParser())
         | 
| 463 | 
             
                if sys.argv[1].split(".")[-1].lower().find("xlsx") >= 0:
         | 
| 464 | 
            +
                    from deepdoc.parser import ExcelParser
         | 
| 465 | 
             
                    ckr = ExcelChunker(ExcelParser())
         | 
| 466 |  | 
| 467 | 
             
                # ckr.html(sys.argv[1])
         | 
    	
        rag/svr/task_broker.py
    CHANGED
    
    | @@ -21,7 +21,7 @@ from datetime import datetime | |
| 21 | 
             
            from api.db.db_models import Task
         | 
| 22 | 
             
            from api.db.db_utils import bulk_insert_into_db
         | 
| 23 | 
             
            from api.db.services.task_service import TaskService
         | 
| 24 | 
            -
            from  | 
| 25 | 
             
            from rag.settings import cron_logger
         | 
| 26 | 
             
            from rag.utils import MINIO
         | 
| 27 | 
             
            from rag.utils import findMaxTm
         | 
|  | |
| 21 | 
             
            from api.db.db_models import Task
         | 
| 22 | 
             
            from api.db.db_utils import bulk_insert_into_db
         | 
| 23 | 
             
            from api.db.services.task_service import TaskService
         | 
| 24 | 
            +
            from deepdoc.parser import HuParser
         | 
| 25 | 
             
            from rag.settings import cron_logger
         | 
| 26 | 
             
            from rag.utils import MINIO
         | 
| 27 | 
             
            from rag.utils import findMaxTm
         |